ZGlmZiAtLWdpdCBhL2RsL2FybUNPTU0uYyBiL2RsL2FybUNPTU0uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTE4NzQ0Ci0tLSAvZGV2L251bGwKKysrIGIvZGwvYXJtQ09NTS5jCkBAIC0wLDAgKzEsOTQ5IEBACisvKgorICogIENvcHlyaWdodCAoYykgMjAxMyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKgorICogIFRoaXMgZmlsZSB3YXMgb3JpZ2luYWxseSBsaWNlbnNlZCBhcyBmb2xsb3dzLiBJdCBoYXMgYmVlbgorICogIHJlbGljZW5zZWQgd2l0aCBwZXJtaXNzaW9uIGZyb20gdGhlIGNvcHlyaWdodCBob2xkZXJzLgorICovCisKKy8qKgorICogCisgKiBGaWxlIE5hbWU6ICBhcm1DT01NLmMKKyAqIE9wZW5NQVggREw6IHYxLjAuMgorICogUmV2aXNpb246ICAgMTA1ODYKKyAqIERhdGU6ICAgICAgIFdlZG5lc2RheSwgTWFyY2ggNSwgMjAwOAorICogCisgKiAoYykgQ29weXJpZ2h0IDIwMDctMjAwOCBBUk0gTGltaXRlZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIAorICogCisgKgorICogRGVmaW5lcyBDb21tb24gQVBJcyB1c2VkIGFjcm9zcyBPcGVuTUFYIEFQSSdzCisgKi8KKworI2luY2x1ZGUgIm9teHR5cGVzLmgiCisjaW5jbHVkZSAiYXJtQ09NTS5oIgorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisgICAgICAgICAgICAgICAgLyogTWlzY2VsbGFuZW91cyBBcml0aG1ldGljIG9wZXJhdGlvbnMgKi8KKworLyoqCisgKiBGdW5jdGlvbjogYXJtUm91bmRGbG9hdFRvUzE2CisgKgorICogRGVzY3JpcHRpb246CisgKiBDb252ZXJ0cyBhIGRvdWJsZSBwcmVjaXNpb24gdmFsdWUgaW50byBhIHNob3J0IGludCBhZnRlciByb3VuZGluZworICoKKyAqIFBhcmFtZXRlcnM6CisgKiBbaW5dICBWYWx1ZSAgICAgICAgICAgICAgICAgRmxvYXQgdmFsdWUgdG8gYmUgY29udmVydGVkCisgKgorICogUmV0dXJuIFZhbHVlOgorICogW291dF0gY29udmVydGVkIHZhbHVlIGluIE9NWF9TMTYgZm9ybWF0CisgKgorICovCisKK09NWF9TMTYgYXJtUm91bmRGbG9hdFRvUzE2IChPTVhfRjY0IFZhbHVlKQoreworICAgIGlmIChWYWx1ZSA+IDApCisgICAgeworICAgICAgICByZXR1cm4gKE9NWF9TMTYpKFZhbHVlICsgLjUpOworICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICByZXR1cm4gKE9NWF9TMTYpKFZhbHVlIC0gLjUpOworICAgIH0KK30KKworLyoqCisgKiBGdW5jdGlvbjogYXJtUm91bmRGbG9hdFRvUzMyCisgKgorICogRGVzY3JpcHRpb246CisgKiBDb252ZXJ0cyBhIGRvdWJsZSBwcmVjaXNpb24gdmFsdWUgaW50byBhIGludCBhZnRlciByb3VuZGluZworICoKKyAqIFBhcmFtZXRlcnM6CisgKiBbaW5dICBWYWx1ZSAgICAgICAgICAgICAgICAgRmxvYXQgdmFsdWUgdG8gYmUgY29udmVydGVkCisgKgorICogUmV0dXJuIFZhbHVlOgorICogW291dF0gY29udmVydGVkIHZhbHVlIGluIE9NWF9TMzIgZm9ybWF0CisgKgorICovCisKK09NWF9TMzIgYXJtUm91bmRGbG9hdFRvUzMyIChPTVhfRjY0IFZhbHVlKQoreworICAgIGlmIChWYWx1ZSA+IDApCisgICAgeworICAgICAgICByZXR1cm4gKE9NWF9TMzIpKFZhbHVlICsgLjUpOworICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICByZXR1cm4gKE9NWF9TMzIpKFZhbHVlIC0gLjUpOworICAgIH0KK30KKy8qKgorICogRnVuY3Rpb246IGFybVNhdFJvdW5kRmxvYXRUb1MxNgorICoKKyAqIERlc2NyaXB0aW9uOgorICogQ29udmVydHMgYSBkb3VibGUgcHJlY2lzaW9uIHZhbHVlIGludG8gYSBzaG9ydCBpbnQgYWZ0ZXIgcm91bmRpbmcgYW5kIHNhdHVyYXRpb24KKyAqCisgKiBQYXJhbWV0ZXJzOgorICogW2luXSAgVmFsdWUgICAgICAgICAgICAgICAgIEZsb2F0IHZhbHVlIHRvIGJlIGNvbnZlcnRlZAorICoKKyAqIFJldHVybiBWYWx1ZToKKyAqIFtvdXRdIGNvbnZlcnRlZCB2YWx1ZSBpbiBPTVhfUzE2IGZvcm1hdAorICoKKyAqLworCitPTVhfUzE2IGFybVNhdFJvdW5kRmxvYXRUb1MxNiAoT01YX0Y2NCBWYWx1ZSkKK3sKKyAgICBpZiAoVmFsdWUgPiAwKQorICAgIHsKKyAgICAgICAgVmFsdWUgKz0gMC41OworICAgICAgICAKKyAgICAgICAgaWYoVmFsdWUgPiAoT01YX1MxNilPTVhfTUFYX1MxNiApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAoT01YX1MxNilPTVhfTUFYX1MxNjsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAoT01YX1MxNilWYWx1ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICBWYWx1ZSAtPSAwLjU7CisKKyAgICAgICAgaWYoVmFsdWUgPCAoT01YX1MxNilPTVhfTUlOX1MxNiApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAoT01YX1MxNilPTVhfTUlOX1MxNjsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAoT01YX1MxNilWYWx1ZTsKKyAgICAgICAgfQorICAgIH0KK30KKworLyoqCisgKiBGdW5jdGlvbjogYXJtU2F0Um91bmRGbG9hdFRvUzMyCisgKgorICogRGVzY3JpcHRpb246CisgKiBDb252ZXJ0cyBhIGRvdWJsZSBwcmVjaXNpb24gdmFsdWUgaW50byBhIGludCBhZnRlciByb3VuZGluZyBhbmQgc2F0dXJhdGlvbgorICoKKyAqIFBhcmFtZXRlcnM6CisgKiBbaW5dICBWYWx1ZSAgICAgICAgICAgICAgICAgRmxvYXQgdmFsdWUgdG8gYmUgY29udmVydGVkCisgKgorICogUmV0dXJuIFZhbHVlOgorICogW291dF0gY29udmVydGVkIHZhbHVlIGluIE9NWF9TMzIgZm9ybWF0CisgKgorICovCisKK09NWF9TMzIgYXJtU2F0Um91bmRGbG9hdFRvUzMyIChPTVhfRjY0IFZhbHVlKQoreworICAgIGlmIChWYWx1ZSA+IDApCisgICAgeworICAgICAgICBWYWx1ZSArPSAwLjU7CisgICAgICAgIAorICAgICAgICBpZihWYWx1ZSA+IChPTVhfUzMyKU9NWF9NQVhfUzMyICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIChPTVhfUzMyKU9NWF9NQVhfUzMyOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIChPTVhfUzMyKVZhbHVlOworICAgICAgICB9CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIFZhbHVlIC09IDAuNTsKKworICAgICAgICBpZihWYWx1ZSA8IChPTVhfUzMyKU9NWF9NSU5fUzMyICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIChPTVhfUzMyKU9NWF9NSU5fUzMyOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIChPTVhfUzMyKVZhbHVlOworICAgICAgICB9CisgICAgfQorfQorCisvKioKKyAqIEZ1bmN0aW9uOiBhcm1TYXRSb3VuZEZsb2F0VG9VMTYKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIENvbnZlcnRzIGEgZG91YmxlIHByZWNpc2lvbiB2YWx1ZSBpbnRvIGEgdW5zaWduZWQgc2hvcnQgaW50IGFmdGVyIHJvdW5kaW5nIGFuZCBzYXR1cmF0aW9uCisgKgorICogUGFyYW1ldGVyczoKKyAqIFtpbl0gIFZhbHVlICAgICAgICAgICAgICAgICBGbG9hdCB2YWx1ZSB0byBiZSBjb252ZXJ0ZWQKKyAqCisgKiBSZXR1cm4gVmFsdWU6CisgKiBbb3V0XSBjb252ZXJ0ZWQgdmFsdWUgaW4gT01YX1UxNiBmb3JtYXQKKyAqCisgKi8KKworT01YX1UxNiBhcm1TYXRSb3VuZEZsb2F0VG9VMTYgKE9NWF9GNjQgVmFsdWUpCit7CisgICAgVmFsdWUgKz0gMC41OworICAgIAorICAgIGlmKFZhbHVlID4gKE9NWF9VMTYpT01YX01BWF9VMTYgKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChPTVhfVTE2KU9NWF9NQVhfVTE2OworICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICByZXR1cm4gKE9NWF9VMTYpVmFsdWU7CisgICAgfQorfQorCisvKioKKyAqIEZ1bmN0aW9uOiBhcm1TYXRSb3VuZEZsb2F0VG9VMzIKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIENvbnZlcnRzIGEgZG91YmxlIHByZWNpc2lvbiB2YWx1ZSBpbnRvIGEgdW5zaWduZWQgaW50IGFmdGVyIHJvdW5kaW5nIGFuZCBzYXR1cmF0aW9uCisgKgorICogUGFyYW1ldGVyczoKKyAqIFtpbl0gIFZhbHVlICAgICAgICAgICAgICAgICBGbG9hdCB2YWx1ZSB0byBiZSBjb252ZXJ0ZWQKKyAqCisgKiBSZXR1cm4gVmFsdWU6CisgKiBbb3V0XSBjb252ZXJ0ZWQgdmFsdWUgaW4gT01YX1UzMiBmb3JtYXQKKyAqCisgKi8KKworT01YX1UzMiBhcm1TYXRSb3VuZEZsb2F0VG9VMzIgKE9NWF9GNjQgVmFsdWUpCit7CisgICAgVmFsdWUgKz0gMC41OworICAgIAorICAgIGlmKFZhbHVlID4gKE9NWF9VMzIpT01YX01BWF9VMzIgKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChPTVhfVTMyKU9NWF9NQVhfVTMyOworICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICByZXR1cm4gKE9NWF9VMzIpVmFsdWU7CisgICAgfQorfQorCisvKioKKyAqIEZ1bmN0aW9uOiBhcm1Sb3VuZEZsb2F0VG9TNjQKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIENvbnZlcnRzIGEgZG91YmxlIHByZWNpc2lvbiB2YWx1ZSBpbnRvIGEgNjQgYml0IGludCBhZnRlciByb3VuZGluZworICoKKyAqIFBhcmFtZXRlcnM6CisgKiBbaW5dICBWYWx1ZSAgICAgICAgICAgICAgICAgRmxvYXQgdmFsdWUgdG8gYmUgY29udmVydGVkCisgKgorICogUmV0dXJuIFZhbHVlOgorICogW291dF0gY29udmVydGVkIHZhbHVlIGluIE9NWF9TNjQgZm9ybWF0CisgKgorICovCisKK09NWF9TNjQgYXJtUm91bmRGbG9hdFRvUzY0IChPTVhfRjY0IFZhbHVlKQoreworICAgIGlmIChWYWx1ZSA+IDApCisgICAgeworICAgICAgICByZXR1cm4gKE9NWF9TNjQpKFZhbHVlICsgLjUpOworICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICByZXR1cm4gKE9NWF9TNjQpKFZhbHVlIC0gLjUpOworICAgIH0KK30KKworLyoqCisgKiBGdW5jdGlvbjogYXJtU2lnbkNoZWNrCisgKgorICogRGVzY3JpcHRpb246CisgKiBDaGVja3MgdGhlIHNpZ24gb2YgYSB2YXJpYWJsZToKKyAqIHJldHVybnMgMSBpZiBpdCBpcyBQb3NpdGl2ZQorICogcmV0dXJucyAwIGlmIGl0IGlzIDAKKyAqIHJldHVybnMgLTEgaWYgaXQgaXMgTmVnYXRpdmUgCisgKgorICogUmVtYXJrczoKKyAqCisgKiBQYXJhbWV0ZXJzOgorICogW2luXQkgICAgdmFyICAgICBWYXJpYWJsZSB0byBiZSBjaGVja2VkCisgKgorICogUmV0dXJuIFZhbHVlOgorICogT01YX0lOVCAtLSAgIHJldHVybnMgMSBpZiBpdCBpcyBQb3NpdGl2ZQorICogICAgICAgICAgICAgIHJldHVybnMgMCBpZiBpdCBpcyAwCisgKiAgICAgICAgICAgICAgcmV0dXJucyAtMSBpZiBpdCBpcyBOZWdhdGl2ZSAKKyAqLyAKKworT01YX0lOVCBhcm1TaWduQ2hlY2sgKAorICAgIE9NWF9TMTYgdmFyCispCisKK3sKKyAgICBPTVhfSU5UIFNpZ247CisgICAgCisgICAgaWYgKHZhciA8IDApCisgICAgeworICAgICAgICBTaWduID0gLTE7CisgICAgfQorICAgIGVsc2UgaWYgKCB2YXIgPiAwKQorICAgIHsKKyAgICAgICAgU2lnbiA9IDE7CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIFNpZ24gPSAwOworICAgIH0KKyAgICAKKyAgICByZXR1cm4gU2lnbjsKK30KKworLyoqCisgKiBGdW5jdGlvbjogYXJtQ2xpcAorICoKKyAqIERlc2NyaXB0aW9uOiBDbGlwcyB0aGUgaW5wdXQgYmV0d2VlbiBNQVggYW5kIE1JTiB2YWx1ZQorICogCisgKgorICogUmVtYXJrczoKKyAqCisgKiBQYXJhbWV0ZXJzOgorICogW2luXSBNaW4gICAgIGxvd2VyIGJvdW5kCisgKiBbaW5dIE1heCAgICAgdXBwZXIgYm91bmQKKyAqIFtpbl0gc3JjICAgICB2YXJpYWJsZSB0byB0aGUgY2xpcHBlZAorICoKKyAqIFJldHVybiBWYWx1ZToKKyAqIE9NWF9TMzIgLS0gICByZXR1cm5zIGNsaXBwZWQgdmFsdWUKKyAqLyAKKyAKK09NWF9TMzIgYXJtQ2xpcCAoCisgICAgT01YX0lOVCBtaW4sCisgICAgT01YX0lOVCBtYXgsIAorICAgIE9NWF9TMzIgc3JjIAorKQorIAoreworICAgIGlmIChzcmMgPiBtYXgpCisgICAgeworICAgICAgICBzcmMgPSBtYXg7CisgICAgfQorICAgIGVsc2UgaWYgKHNyYyA8IG1pbikKKyAgICB7CisgICAgICAgIHNyYyA9IG1pbjsKKyAgICB9CisgICAgCisgICAgcmV0dXJuIHNyYzsKK30KKworLyoqCisgKiBGdW5jdGlvbjogYXJtQ2xpcF9GMzIKKyAqCisgKiBEZXNjcmlwdGlvbjogQ2xpcHMgdGhlIGlucHV0IGJldHdlZW4gTUFYIGFuZCBNSU4gdmFsdWUKKyAqIAorICoKKyAqIFJlbWFya3M6CisgKgorICogUGFyYW1ldGVyczoKKyAqIFtpbl0gTWluICAgICBsb3dlciBib3VuZAorICogW2luXSBNYXggICAgIHVwcGVyIGJvdW5kCisgKiBbaW5dIHNyYyAgICAgdmFyaWFibGUgdG8gdGhlIGNsaXBwZWQKKyAqCisgKiBSZXR1cm4gVmFsdWU6CisgKiBPTVhfRjMyIC0tICAgcmV0dXJucyBjbGlwcGVkIHZhbHVlCisgKi8gCisgCitPTVhfRjMyIGFybUNsaXBfRjMyICgKKyAgICBPTVhfRjMyIG1pbiwKKyAgICBPTVhfRjMyIG1heCwgCisgICAgT01YX0YzMiBzcmMgCispCisgCit7CisgICAgaWYgKHNyYyA+IG1heCkKKyAgICB7CisgICAgICAgIHNyYyA9IG1heDsKKyAgICB9CisgICAgZWxzZSBpZiAoc3JjIDwgbWluKQorICAgIHsKKyAgICAgICAgc3JjID0gbWluOworICAgIH0KKyAgICAKKyAgICByZXR1cm4gc3JjOworfQorCisvKioKKyAqIEZ1bmN0aW9uOiBhcm1TaGlmdFNhdF9GMzIKKyAqCisgKiBEZXNjcmlwdGlvbjogRGl2aWRlcyBhIGZsb2F0IHZhbHVlIGJ5IDJec2hpZnQgYW5kIAorICogc2F0dXJhdGVzIGl0IGZvciB1bnNpZ25lZCB2YWx1ZSByYW5nZSBmb3Igc2F0Qml0cy4KKyAqIFNlY29uZCBwYXJhbWV0ZXIgaXMgbGlrZSAic2hpZnRpbmciIHRoZSBjb3JyZXNwb25kaW5nIAorICogaW50ZWdlciB2YWx1ZS4gVGFrZXMgY2FyZSBvZiByb3VuZGluZyB3aGlsZSBjbGlwcGluZyB0aGUgZmluYWwgCisgKiB2YWx1ZS4KKyAqCisgKiBQYXJhbWV0ZXJzOgorICogW2luXSB2ICAgICAgICAgIE51bWJlciB0byBiZSBvcGVyYXRlZCB1cG9uCisgKiBbaW5dIHNoaWZ0ICAgICAgRGl2aWRlcyB0aGUgaW5wdXQgInYiIGJ5ICIyXnNoaWZ0IgorICogW2luXSBzYXRCaXRzICAgIEZpbmFsIHJhbmdlIGlzIFswLCAyXnNhdEJpdHMpCisgKgorICogUmV0dXJuIFZhbHVlOgorICogT01YX1MzMiAtLSAgIHJldHVybnMgInNoaWZ0ZWQiIHNhdHVyYXRlZCB2YWx1ZQorICovIAorIAorT01YX1UzMiBhcm1TaGlmdFNhdF9GMzIoT01YX0YzMiB2LCBPTVhfSU5UIHNoaWZ0LCBPTVhfSU5UIHNhdEJpdHMpIAoreworICAgIE9NWF9VMzIgYWxsT25lcyA9IChPTVhfVTMyKSgtMSk7CisgICAgT01YX1UzMiBtYXhWID0gYWxsT25lcyA+PiAoMzItc2F0Qml0cyk7CisgICAgT01YX0YzMiB2U2hpZnRlZCwgdlJvdW5kZWQsIHNoaWZ0RGl2ID0gKE9NWF9GMzIpKDEgPDwgc2hpZnQpOworICAgIE9NWF9VMzIgdkludDsKKyAgICBPTVhfVTMyIHZJbnRTYXQ7CisgICAgCisgICAgaWYodiA8PSAwKQorICAgICAgICByZXR1cm4gMDsKKyAgICAKKyAgICB2U2hpZnRlZCA9IHYgLyBzaGlmdERpdjsKKyAgICB2Um91bmRlZCA9IChPTVhfRjMyKSh2U2hpZnRlZCArIDAuNSk7CisgICAgdkludCA9IChPTVhfVTMyKXZSb3VuZGVkOworICAgIHZJbnRTYXQgPSB2SW50OworICAgIGlmKHZJbnRTYXQgPiBtYXhWKSAKKyAgICAgICAgdkludFNhdCA9IG1heFY7CisgICAgcmV0dXJuIHZJbnRTYXQ7Cit9CisKKy8qKgorICogRnVuY3Rpb25zOiBhcm1Td2FwRWxlbQorICoKKyAqIERlc2NyaXB0aW9uOgorICogVGhlc2UgZnVuY3Rpb24gc3dhcHMgdHdvIGVsZW1lbnRzIGF0IHRoZSBzcGVjaWZpZWQgcG9pbnRlciBsb2NhdGlvbnMuCisgKiBUaGUgc2l6ZSBvZiBlYWNoIGVsZW1lbnQgY291bGQgYmUgYW55dGhpbmcgYXMgc3BlY2lmaWVkIGJ5IDxlbGVtU2l6ZT4KKyAqCisgKiBSZXR1cm4gVmFsdWU6CisgKiBPTVhSZXN1bHQgLS0gRXJyb3Igc3RhdHVzIGZyb20gdGhlIGZ1bmN0aW9uCisgKi8KK09NWFJlc3VsdCBhcm1Td2FwRWxlbSgKKyAgICAgICAgT01YX1U4ICpwQnVmMSwKKyAgICAgICAgT01YX1U4ICpwQnVmMiwKKyAgICAgICAgT01YX0lOVCBlbGVtU2l6ZQorICAgICAgICkKK3sKKyAgICBPTVhfSU5UIGk7CisgICAgT01YX1U4IHRlbXA7CisgICAgYXJtUmV0QXJnRXJySWYoIXBCdWYxIHx8ICFwQnVmMiwgT01YX1N0c19CYWRBcmdFcnIpOworICAgIAorICAgIGZvcihpID0gMDsgaSA8IGVsZW1TaXplOyBpKyspCisgICAgeworICAgICAgICB0ZW1wID0gKihwQnVmMSArIGkpOworICAgICAgICAqKHBCdWYxICsgaSkgPSAqKHBCdWYyICsgaSk7CisgICAgICAgICoocEJ1ZjIgKyBpKSA9IHRlbXA7CisgICAgfQorICAgIHJldHVybiBPTVhfU3RzX05vRXJyOworfQorCisvKioKKyAqIEZ1bmN0aW9uOiBhcm1NZWRpYW5PZjMKKyAqCisgKiBEZXNjcmlwdGlvbjogRmluZHMgdGhlIG1lZGlhbiBvZiB0aHJlZSBudW1iZXJzCisgKiAKKyAqIFJlbWFya3M6CisgKgorICogUGFyYW1ldGVyczoKKyAqIFtpbl0gZkVudHJ5ICAgICBGaXJzdCBlbnRyeQorICogW2luXSBzRW50cnkgICAgIHNlY29uZCBlbnRyeQorICogW2luXSB0RW50cnkgICAgIFRoaXJkIGVudHJ5CisgKgorICogUmV0dXJuIFZhbHVlOgorICogT01YX1MzMiAtLSAgIHJldHVybnMgdGhlIG1lZGlhbiB2YWx1ZQorICovIAorIAorT01YX1MzMiBhcm1NZWRpYW5PZjMgKAorICAgIE9NWF9TMzIgZkVudHJ5LAorICAgIE9NWF9TMzIgc0VudHJ5LCAKKyAgICBPTVhfUzMyIHRFbnRyeSAKKykKK3sKKyAgICBPTVhfUzMyIGEsIGIsIGM7CisgICAgCisgICAgYSA9IGFybU1pbiAoZkVudHJ5LCBzRW50cnkpOworICAgIGIgPSBhcm1NYXggKGZFbnRyeSwgc0VudHJ5KTsKKyAgICBjID0gYXJtTWluIChiLCB0RW50cnkpOworICAgIHJldHVybiAoYXJtTWF4IChhLCBjKSk7Cit9CisKKy8qKgorICogRnVuY3Rpb246IGFybUxvZ1NpemUKKyAqCisgKiBEZXNjcmlwdGlvbjogRmluZHMgdGhlIHNpemUgb2YgYSBwb3NpdGl2ZSB2YWx1ZSBhbmQgcmV0dXJucyB0aGUgc2FtZQorICogCisgKiBSZW1hcmtzOgorICoKKyAqIFBhcmFtZXRlcnM6CisgKiBbaW5dIHZhbHVlICAgIFBvc2l0aXZlIHZhbHVlCisgKgorICogUmV0dXJuIFZhbHVlOgorICogT01YX1U4IC0tICAgICBSZXR1cm5zIHRoZSBtaW5pbXVtIG51bWJlciBvZiBiaXRzIHJlcXVpcmVkIHRvIHJlcHJlc2VudCB0aGUgcG9zaXRpdmUgdmFsdWUuIAorICAgICAgICAgICAgICAgICBUaGlzIGlzIHRoZSBzbWFsbGVzdCBrPj0wIHN1Y2ggdGhhdCB0aGF0IHZhbHVlIGlzIGxlc3MgdGhhbiAoMTw8aykuCisgKi8gCisgCitPTVhfVTggYXJtTG9nU2l6ZSAoCisgICAgT01YX1UxNiB2YWx1ZSAKKykKK3sKKyAgICBPTVhfVTggaTsgICAgCisgICAgZm9yICggaSA9IDA7IHZhbHVlID4gMDsgdmFsdWUgPSB2YWx1ZSA+PiAxKSAKKyAgICB7CisgICAgICAgIGkrKzsKKyAgICB9CisgICAgcmV0dXJuIGk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyAgICAgICAgICAgICAgICAvKiBTYXR1cmF0aW5nIEFyaXRobWV0aWMgb3BlcmF0aW9ucyAqLworCisvKioKKyAqIEZ1bmN0aW9uIDphcm1TYXRBZGRfUzMyKCkKKyAqCisgKiBEZXNjcmlwdGlvbiA6CisgKiAgIFJldHVybnMgdGhlIHJlc3VsdCBvZiBzYXR1cmF0ZWQgYWRkaXRpb24gb2YgdGhlIHR3byBpbnB1dHMgVmFsdWUxLCBWYWx1ZTIKKyAqCisgKiBQYXJhbWV0cnM6CisgKiBbaW5dIFZhbHVlMSAgICAgICBGaXJzdCBPcGVyYW5kCisgKiBbaW5dIFZhbHVlMiAgICAgICBTZWNvbmQgT3BlcmFuZAorICoKKyAqIFJldHVybjoKKyAqIFtvdXRdICAgICAgICAgICAgIFJlc3VsdCBvZiBvcGVyYXRpb24KKyAqIAorICogICAgCisgKiovCisgCitPTVhfUzMyIGFybVNhdEFkZF9TMzIoT01YX1MzMiBWYWx1ZTEsT01YX1MzMiBWYWx1ZTIpCit7CisgICAgT01YX1MzMiBSZXN1bHQ7CisgICAgCisgICAgUmVzdWx0ID0gVmFsdWUxICsgVmFsdWUyOworCisgICAgaWYoIChWYWx1ZTFeVmFsdWUyKSA+PSAwKQorICAgIHsKKyAgICAgICAgLypTYW1lIHNpZ24qLworICAgICAgICBpZiggKFJlc3VsdF5WYWx1ZTEpID49IDApCisgICAgICAgIHsKKyAgICAgICAgICAgIC8qUmVzdWx0IGhhcyBub3Qgc2F0dXJhdGVkKi8KKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAgICBpZihWYWx1ZTEgPj0gMCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvKlJlc3VsdCBoYXMgc2F0dXJhdGVkIGluIHBvc2l0aXZlIHNpZGUqLworICAgICAgICAgICAgICAgIHJldHVybiBPTVhfTUFYX1MzMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvKlJlc3VsdCBoYXMgc2F0dXJhdGVkIGluIG5lZ2F0aXZlIHNpZGUqLworICAgICAgICAgICAgICAgIHJldHVybiBPTVhfTUlOX1MzMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIH0KKyAgIAorICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICByZXR1cm4gUmVzdWx0OworICAgIH0KKyAgICAKK30KKworLyoqCisgKiBGdW5jdGlvbiA6YXJtU2F0QWRkX1M2NCgpCisgKgorICogRGVzY3JpcHRpb24gOgorICogICBSZXR1cm5zIHRoZSByZXN1bHQgb2Ygc2F0dXJhdGVkIGFkZGl0aW9uIG9mIHRoZSB0d28gaW5wdXRzIFZhbHVlMSwgVmFsdWUyCisgKgorICogUGFyYW1ldHJzOgorICogW2luXSBWYWx1ZTEgICAgICAgRmlyc3QgT3BlcmFuZAorICogW2luXSBWYWx1ZTIgICAgICAgU2Vjb25kIE9wZXJhbmQKKyAqCisgKiBSZXR1cm46CisgKiBbb3V0XSAgICAgICAgICAgICBSZXN1bHQgb2Ygb3BlcmF0aW9uCisgKiAKKyAqICAgIAorICoqLworIAorT01YX1M2NCBhcm1TYXRBZGRfUzY0KE9NWF9TNjQgVmFsdWUxLE9NWF9TNjQgVmFsdWUyKQoreworICAgIE9NWF9TNjQgUmVzdWx0OworICAgIAorICAgIFJlc3VsdCA9IFZhbHVlMSArIFZhbHVlMjsKKworICAgIGlmKCAoVmFsdWUxXlZhbHVlMikgPj0gMCkKKyAgICB7CisgICAgICAgIC8qU2FtZSBzaWduKi8KKyAgICAgICAgaWYoIChSZXN1bHReVmFsdWUxKSA+PSAwKQorICAgICAgICB7CisgICAgICAgICAgICAvKlJlc3VsdCBoYXMgbm90IHNhdHVyYXRlZCovCisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgaWYoVmFsdWUxID49IDApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLypSZXN1bHQgaGFzIHNhdHVyYXRlZCBpbiBwb3NpdGl2ZSBzaWRlKi8KKyAgICAgICAgICAgICAgICBSZXN1bHQgPSBPTVhfTUFYX1M2NDsKKyAgICAgICAgICAgICAgICByZXR1cm4gUmVzdWx0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8qUmVzdWx0IGhhcyBzYXR1cmF0ZWQgaW4gbmVnYXRpdmUgc2lkZSovCisgICAgICAgICAgICAgICAgcmV0dXJuIE9NWF9NSU5fUzY0OworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgfQorICAgCisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIHJldHVybiBSZXN1bHQ7CisgICAgfQorICAgIAorfQorCisvKiogRnVuY3Rpb24gOmFybVNhdFN1Yl9TMzIoKQorICogCisgKiBEZXNjcmlwdGlvbiA6CisgKiAgICAgUmV0dXJucyB0aGUgcmVzdWx0IG9mIHNhdHVyYXRlZCBzdWJzdHJhY3Rpb24gb2YgdGhlIHR3byBpbnB1dHMgVmFsdWUxLCBWYWx1ZTIKKyAqCisgKiBQYXJhbWV0cnM6CisgKiBbaW5dIFZhbHVlMSAgICAgICBGaXJzdCBPcGVyYW5kCisgKiBbaW5dIFZhbHVlMiAgICAgICBTZWNvbmQgT3BlcmFuZAorICoKKyAqIFJldHVybjoKKyAqIFtvdXRdICAgICAgICAgICAgIFJlc3VsdCBvZiBvcGVyYXRpb24KKyAqIAorICoqLworCitPTVhfUzMyIGFybVNhdFN1Yl9TMzIoT01YX1MzMiBWYWx1ZTEsT01YX1MzMiBWYWx1ZTIpCit7CisgICAgT01YX1MzMiBSZXN1bHQ7CisgICAgCisgICAgUmVzdWx0ID0gVmFsdWUxIC0gVmFsdWUyOworCisgICAgaWYoIChWYWx1ZTFeVmFsdWUyKSA8IDApCisgICAgeworICAgICAgICAvKk9wcG9zaXRlIHNpZ24qLworICAgICAgICBpZiggKFJlc3VsdF5WYWx1ZTEpID49IDApCisgICAgICAgIHsKKyAgICAgICAgICAgIC8qUmVzdWx0IGhhcyBub3Qgc2F0dXJhdGVkKi8KKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAgICBpZihWYWx1ZTEgPj0gMCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvKlJlc3VsdCBoYXMgc2F0dXJhdGVkIGluIHBvc2l0aXZlIHNpZGUqLworICAgICAgICAgICAgICAgIHJldHVybiBPTVhfTUFYX1MzMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvKlJlc3VsdCBoYXMgc2F0dXJhdGVkIGluIG5lZ2F0aXZlIHNpZGUqLworICAgICAgICAgICAgICAgIHJldHVybiBPTVhfTUlOX1MzMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIH0KKyAgIAorICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICByZXR1cm4gUmVzdWx0OworICAgIH0KKyAgICAKK30KKworLyoqCisgKiBGdW5jdGlvbiA6YXJtU2F0TWFjX1MzMigpCisgKgorICogRGVzY3JpcHRpb24gOgorICogICAgIFJldHVybnMgdGhlIHJlc3VsdCBvZiBNdWx0aXBsaWNhdGlvbiBvZiBWYWx1ZTEgYW5kIFZhbHVlMiBhbmQgc3ViZXNxdWVudCBzYXR1cmF0ZWQKKyAqICAgICBhY2N1bXVsYXRpb24gd2l0aCBNYWMKKyAqCisgKiBQYXJhbWV0cnM6CisgKiBbaW5dIFZhbHVlMSAgICAgICBGaXJzdCBPcGVyYW5kCisgKiBbaW5dIFZhbHVlMiAgICAgICBTZWNvbmQgT3BlcmFuZAorICogW2luXSBNYWMgICAgICAgICAgQWNjdW11bGF0b3IKKyAqCisgKiBSZXR1cm46CisgKiBbb3V0XSAgICAgICAgICAgICBSZXN1bHQgb2Ygb3BlcmF0aW9uCisgKiovCisKK09NWF9TMzIgYXJtU2F0TWFjX1MzMihPTVhfUzMyIE1hYyxPTVhfUzE2IFZhbHVlMSxPTVhfUzE2IFZhbHVlMikKK3sKKyAgICBPTVhfUzMyIFJlc3VsdDsKKyAgICAKKyAgICBSZXN1bHQgPSAoT01YX1MzMikoVmFsdWUxKlZhbHVlMik7CisgICAgUmVzdWx0ID0gYXJtU2F0QWRkX1MzMiggTWFjICwgUmVzdWx0ICk7CisKKyAgICByZXR1cm4gUmVzdWx0OyAgICAKK30KKworLyoqCisgKiBGdW5jdGlvbiA6YXJtU2F0TWFjX1MxNlMzMl9TMzIKKyAqCisgKiBEZXNjcmlwdGlvbiA6CisgKiAgIFJldHVybnMgdGhlIHJlc3VsdCBvZiBzYXR1cmF0ZWQgTUFDIG9wZXJhdGlvbiBvZiB0aGUgdGhyZWUgaW5wdXRzIGRlbGF5RWxlbSwgZmlsVGFwICwgbWFjCisgKgorICogICBtYWMgPSBtYWMgKyBTYXR1cmF0ZV9pbl8zMkJpdHMoZGVsYXlFbGVtICogZmlsVGFwKQorICoKKyAqIFBhcmFtZXRyczoKKyAqIFtpbl0gZGVsYXlFbGVtICAgIEZpcnN0IDMyIGJpdCBPcGVyYW5kCisgKiBbaW5dIGZpbFRhcCAgICAgICBTZWNvbmQgMTYgYml0IE9wZXJhbmQKKyAqIFtpbl0gbWFjICAgICAgICAgIFJlc3VsdCBvZiBNQUMgb3BlcmF0aW9uCisgKgorICogUmV0dXJuOgorICogW291dF0gIG1hYyAgICAgICAgUmVzdWx0IG9mIG9wZXJhdGlvbgorICogICAgCisgKiovCisgCitPTVhfUzMyIGFybVNhdE1hY19TMTZTMzJfUzMyKE9NWF9TMzIgbWFjLCBPTVhfUzMyIGRlbGF5RWxlbSwgT01YX1MxNiBmaWxUYXAgKQoreworICAgIAorICAgIE9NWF9TMzIgcmVzdWx0OworCisgICAgcmVzdWx0ID0gYXJtU2F0TXVsUzE2UzMyX1MzMihmaWxUYXAsZGVsYXlFbGVtKTsgCisKKyAgICBpZiAoIHJlc3VsdCA+IE9NWF9NQVhfUzE2ICkKKyAgICB7CisgICAgICAgIHJlc3VsdCA9IE9NWF9NQVhfUzMyOworICAgIH0KKyAgICBlbHNlIGlmKCByZXN1bHQgPCBPTVhfTUlOX1MxNiApCisgICAgeworICAgICAgICByZXN1bHQgPSBPTVhfTUlOX1MzMjsKKyAgICB9CisgICAgZWxzZQorICAgIHsKKyAgICAgICAgcmVzdWx0ID0gZGVsYXlFbGVtICogZmlsVGFwOworICAgIH0KKworICAgIG1hYyA9IGFybVNhdEFkZF9TMzIobWFjLHJlc3VsdCk7CisgICAgCisgICAgcmV0dXJuIG1hYzsKK30KKworCisvKioKKyAqIEZ1bmN0aW9uIDphcm1TYXRSb3VuZFJpZ2h0U2hpZnRfUzMyX1MxNgorICoKKyAqIERlc2NyaXB0aW9uIDoKKyAqICAgUmV0dXJucyB0aGUgcmVzdWx0IG9mIHJvdW5kZWQgcmlnaHQgc2hpZnQgb3BlcmF0aW9uIG9mIGlucHV0IGJ5IHRoZSBzY2FsZWZhY3RvcgorICoKKyAqICAgb3V0cHV0ID0gU2F0dXJhdGVfaW5fMTZCaXRzKCAoIFJpZ2h0L0xlZnRTaGlmdCggKFJvdW5kKGlucHV0KSAsIHNoaWZ0ICkgKQorICoKKyAqIFBhcmFtZXRyczoKKyAqIFtpbl0gaW5wdXQgICAgICAgVGhlIGlucHV0IHRvIGJlIG9wZXJhdGVkIG9uCisgKiBbaW5dIHNoaWZ0IFRoZSBzaGlmdCBudW1iZXIKKyAqCisgKiBSZXR1cm46CisgKiBbb3V0XSAgICAgICAgICAgIFJlc3VsdCBvZiBvcGVyYXRpb24KKyAqICAgIAorICoqLworCisKK09NWF9TMTYgYXJtU2F0Um91bmRSaWdodFNoaWZ0X1MzMl9TMTYoT01YX1MzMiBpbnB1dCwgT01YX0lOVCBzaGlmdCkKK3sKKyAgICBpbnB1dCA9IGFybVNhdFJvdW5kTGVmdFNoaWZ0X1MzMihpbnB1dCwtc2hpZnQpOworCisgICAgaWYgKCBpbnB1dCA+IE9NWF9NQVhfUzE2ICkKKyAgICB7CisgICAgICAgIHJldHVybiAoT01YX1MxNilPTVhfTUFYX1MxNjsKKyAgICB9CisgICAgZWxzZSBpZiAoaW5wdXQgPCBPTVhfTUlOX1MxNikKKyAgICB7CisgICAgICAgIHJldHVybiAoT01YX1MxNilPTVhfTUlOX1MxNjsKKyAgICB9CisgICAgZWxzZQorICAgIHsKKyAgICAgICByZXR1cm4gKE9NWF9TMTYpaW5wdXQ7CisgICAgfQorCit9CisKKy8qKgorICogRnVuY3Rpb24gOmFybVNhdFJvdW5kTGVmdFNoaWZ0X1MzMigpCisgKgorICogRGVzY3JpcHRpb24gOgorICogICAgIFJldHVybnMgdGhlIHJlc3VsdCBvZiBzYXR1cmF0aW5nIGxlZnQtc2hpZnQgb3BlcmF0aW9uIG9uIGlucHV0CisgKiAgICAgT3Igcm91bmRlZCBSaWdodCBzaGlmdCBpZiB0aGUgaW5wdXQgU2hpZnQgaXMgbmVnYXRpdmUuCisgKiAgICAgCisgKiBQYXJhbWV0cnM6CisgKiBbaW5dIFZhbHVlICAgICAgICBPcGVyYW5kCisgKiBbaW5dIFNoaWZ0ICAgICAgICBPcGVyYW5kIGZvciBzaGlmdCBvcGVyYXRpb24KKyAqCisgKiBSZXR1cm46CisgKiBbb3V0XSAgICAgICAgICAgICBSZXN1bHQgb2Ygb3BlcmF0aW9uCisgKiAgICAKKyAqKi8KKworT01YX1MzMiBhcm1TYXRSb3VuZExlZnRTaGlmdF9TMzIoT01YX1MzMiBWYWx1ZSwgT01YX0lOVCBTaGlmdCkKK3sKKyAgICBPTVhfSU5UIGk7CisgICAgCisgICAgaWYgKFNoaWZ0IDwgMCkKKyAgICB7CisgICAgICAgIFNoaWZ0ID0gLVNoaWZ0OworICAgICAgICBWYWx1ZSA9IGFybVNhdEFkZF9TMzIoVmFsdWUsICgxIDw8IChTaGlmdCAtIDEpKSk7CisgICAgICAgIFZhbHVlID0gVmFsdWUgPj4gU2hpZnQ7CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBTaGlmdDsgaSsrKQorICAgICAgICB7CisgICAgICAgICAgICBWYWx1ZSA9IGFybVNhdEFkZF9TMzIoVmFsdWUsIFZhbHVlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gVmFsdWU7Cit9CisKKy8qKgorICogRnVuY3Rpb24gOmFybVNhdFJvdW5kTGVmdFNoaWZ0X1M2NCgpCisgKgorICogRGVzY3JpcHRpb24gOgorICogICAgIFJldHVybnMgdGhlIHJlc3VsdCBvZiBzYXR1cmF0aW5nIGxlZnQtc2hpZnQgb3BlcmF0aW9uIG9uIGlucHV0CisgKiAgICAgT3Igcm91bmRlZCBSaWdodCBzaGlmdCBpZiB0aGUgaW5wdXQgU2hpZnQgaXMgbmVnYXRpdmUuCisgKgorICogUGFyYW1ldHJzOgorICogW2luXSBWYWx1ZSAgICAgICAgT3BlcmFuZAorICogW2luXSBzaGlmdCAgICAgICAgT3BlcmFuZCBmb3Igc2hpZnQgb3BlcmF0aW9uCisgKgorICogUmV0dXJuOgorICogW291dF0gICAgICAgICAgICAgUmVzdWx0IG9mIG9wZXJhdGlvbgorICogICAgCisgKiovCisgCitPTVhfUzY0IGFybVNhdFJvdW5kTGVmdFNoaWZ0X1M2NChPTVhfUzY0IFZhbHVlLCBPTVhfSU5UIFNoaWZ0KQoreworICAgIE9NWF9JTlQgaTsKKyAgICAKKyAgICBpZiAoU2hpZnQgPCAwKQorICAgIHsKKyAgICAgICAgU2hpZnQgPSAtU2hpZnQ7CisgICAgICAgIFZhbHVlID0gYXJtU2F0QWRkX1M2NChWYWx1ZSwgKChPTVhfUzY0KTEgPDwgKFNoaWZ0IC0gMSkpKTsKKyAgICAgICAgVmFsdWUgPSBWYWx1ZSA+PiBTaGlmdDsKKyAgICB9CisgICAgZWxzZQorICAgIHsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IFNoaWZ0OyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIFZhbHVlID0gYXJtU2F0QWRkX1M2NChWYWx1ZSwgVmFsdWUpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBWYWx1ZTsKK30KKworLyoqCisgKiBGdW5jdGlvbiA6YXJtU2F0TXVsUzE2UzMyX1MzMigpCisgKgorICogRGVzY3JpcHRpb24gOgorICogICAgIFJldHVybnMgdGhlIHJlc3VsdCBvZiBhIFMxNiBkYXRhIHR5cGUgbXVsdGlwbGllZCB3aXRoIGFuIFMzMiBkYXRhIHR5cGUKKyAqICAgICBpbiBhIFMzMiBjb250YWluZXIKKyAqCisgKiBQYXJhbWV0cnM6CisgKiBbaW5dIGlucHV0MSAgICAgICBPcGVyYW5kIDEKKyAqIFtpbl0gaW5wdXQyICAgICAgIE9wZXJhbmQgMgorICoKKyAqIFJldHVybjoKKyAqIFtvdXRdICAgICAgICAgICAgIFJlc3VsdCBvZiBvcGVyYXRpb24KKyAqICAgIAorICoqLworCisKK09NWF9TMzIgYXJtU2F0TXVsUzE2UzMyX1MzMihPTVhfUzE2IGlucHV0MSxPTVhfUzMyIGlucHV0MikKK3sKKyAgICBPTVhfUzE2IGhpMixsbzE7CisgICAgT01YX1UxNiBsbzI7CisgICAgCisgICAgT01YX1MzMiB0ZW1wMSx0ZW1wMjsKKyAgICBPTVhfUzMyIHJlc3VsdDsKKyAgICAKKyAgICBsbzEgID0gaW5wdXQxOworCisgICAgaGkyICA9ICggaW5wdXQyID4+ICAxNiApOworICAgIGxvMiAgPSAoIChPTVhfVTMyKSggaW5wdXQyIDw8IDE2ICkgPj4gMTYgKTsKKyAgICAKKyAgICB0ZW1wMSA9IGhpMiAqIGxvMTsKKyAgICB0ZW1wMiA9ICggbG8yKiBsbzEgKSA+PiAxNjsKKworICAgIHJlc3VsdCA9ICBhcm1TYXRBZGRfUzMyKHRlbXAxLHRlbXAyKTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy8qKgorICogRnVuY3Rpb24gOmFybVNhdE11bFMzMlMzMl9TMzIoKQorICoKKyAqIERlc2NyaXB0aW9uIDoKKyAqICAgICBSZXR1cm5zIHRoZSByZXN1bHQgb2YgYSBTMzIgZGF0YSB0eXBlIG11bHRpcGxpZWQgd2l0aCBhbiBTMzIgZGF0YSB0eXBlCisgKiAgICAgaW4gYSBTMzIgY29udGFpbmVyCisgKgorICogUGFyYW1ldHJzOgorICogW2luXSBpbnB1dDEgICAgICAgT3BlcmFuZCAxCisgKiBbaW5dIGlucHV0MiAgICAgICBPcGVyYW5kIDIKKyAqCisgKiBSZXR1cm46CisgKiBbb3V0XSAgICAgICAgICAgICBSZXN1bHQgb2Ygb3BlcmF0aW9uCisgKiAgICAKKyAqKi8KKworT01YX1MzMiBhcm1TYXRNdWxTMzJTMzJfUzMyKE9NWF9TMzIgaW5wdXQxLE9NWF9TMzIgaW5wdXQyKQoreworICAgIE9NWF9TMTYgaGkxLGhpMjsKKyAgICBPTVhfVTE2IGxvMSxsbzI7CisgICAgCisgICAgT01YX1MzMiB0ZW1wMSx0ZW1wMix0ZW1wMzsKKyAgICBPTVhfUzMyIHJlc3VsdDsKKworICAgIGhpMSAgPSAoIGlucHV0MSA+PiAgMTYgKTsKKyAgICBsbzEgID0gKCAoT01YX1UzMikoIGlucHV0MSA8PCAxNiApID4+IDE2ICk7CisKKyAgICBoaTIgID0gKCBpbnB1dDIgPj4gIDE2ICk7CisgICAgbG8yICA9ICggKE9NWF9VMzIpKCBpbnB1dDIgPDwgMTYgKSA+PiAxNiApOworICAgIAorICAgIHRlbXAxID0gICBoaTEgKiBoaTI7CisgICAgdGVtcDIgPSAoIGhpMSogbG8yICkgPj4gMTY7CisgICAgdGVtcDMgPSAoIGhpMiogbG8xICkgPj4gMTY7CisKKyAgICByZXN1bHQgPSBhcm1TYXRBZGRfUzMyKHRlbXAxLHRlbXAyKTsKKyAgICByZXN1bHQgPSBhcm1TYXRBZGRfUzMyKHJlc3VsdCx0ZW1wMyk7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisvKioKKyAqIEZ1bmN0aW9uIDphcm1JbnREaXZBd2F5RnJvbVplcm8oKQorICoKKyAqIERlc2NyaXB0aW9uIDogSW50ZWdlciBkaXZpc2lvbiB3aXRoIHJvdW5kaW5nIHRvIHRoZSBuZWFyZXN0IGludGVnZXIuIAorICogICAgICAgICAgICAgICBIYWxmLWludGVnZXIgdmFsdWVzIGFyZSByb3VuZGVkIGF3YXkgZnJvbSB6ZXJvCisgKiAgICAgICAgICAgICAgIHVubGVzcyBvdGhlcndpc2Ugc3BlY2lmaWVkLiBGb3IgZXhhbXBsZSAzLy8yIGlzIHJvdW5kZWQgCisgKiAgICAgICAgICAgICAgIHRvIDIsIGFuZCAtMy8vMiBpcyByb3VuZGVkIHRvIC0yLgorICoKKyAqIFBhcmFtZXRyczoKKyAqIFtpbl0gTnVtICAgICAgICBPcGVyYW5kIDEKKyAqIFtpbl0gRGVubyAgICAgICBPcGVyYW5kIDIKKyAqCisgKiBSZXR1cm46CisgKiBbb3V0XSAgICAgICAgICAgICBSZXN1bHQgb2Ygb3BlcmF0aW9uIGlucHV0MS8vaW5wdXQyCisgKiAgICAKKyAqKi8KKworT01YX1MzMiBhcm1JbnREaXZBd2F5RnJvbVplcm8gKE9NWF9TMzIgTnVtLCBPTVhfUzMyIERlbm8pCit7CisgICAgT01YX0Y2NCByZXN1bHQ7CisgICAgCisgICAgcmVzdWx0ID0gKChPTVhfRjY0KU51bSkvKChPTVhfRjY0KURlbm8pOworICAgIAorICAgIGlmIChyZXN1bHQgPj0gMCkKKyAgICB7CisgICAgICAgIHJlc3VsdCArPSAwLjU7CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIHJlc3VsdCAtPSAwLjU7CisgICAgfQorCisgICAgcmV0dXJuIChPTVhfUzMyKShyZXN1bHQpOworfQorCisKKy8qRW5kIG9mIEZpbGUqLworCmRpZmYgLS1naXQgYS9kbC9hcm1DT01NLmggYi9kbC9hcm1DT01NLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGU0NmM2NQotLS0gL2Rldi9udWxsCisrKyBiL2RsL2FybUNPTU0uaApAQCAtMCwwICsxLDc3OCBAQAorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICoKKyAqICBUaGlzIGZpbGUgd2FzIG9yaWdpbmFsbHkgbGljZW5zZWQgYXMgZm9sbG93cy4gSXQgaGFzIGJlZW4KKyAqICByZWxpY2Vuc2VkIHdpdGggcGVybWlzc2lvbiBmcm9tIHRoZSBjb3B5cmlnaHQgaG9sZGVycy4KKyAqLworCisvKioKKyAqIAorICogRmlsZSBOYW1lOiAgYXJtQ09NTS5oCisgKiBPcGVuTUFYIERMOiB2MS4wLjIKKyAqIExhc3QgTW9kaWZpZWQgUmV2aXNpb246ICAgMTUzMzEKKyAqIExhc3QgTW9kaWZpZWQgRGF0ZTogICAgICAgRnJpLCAyNCBPY3QgMjAwOAorICogCisgKiAoYykgQ29weXJpZ2h0IDIwMDctMjAwOCBBUk0gTGltaXRlZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIAorICogCisgKiAgIAorICogRmlsZTogYXJtQ09NTS5oCisgKiBCcmllZjogRGVjbGFyZXMgQ29tbW9uIEFQSXMvRGF0YSBUeXBlcyB1c2VkIGFjcm9zcyBPcGVuTUFYIEFQSSdzCisgKgorICovCisgCisgIAorI2lmbmRlZiBfYXJtQ09NTV9IXworI2RlZmluZSBfYXJtQ09NTV9IXworCisjaW5jbHVkZSAib214dHlwZXMuaCIKKworLyogVXNlZCBieSBib3RoIElQIGFuZCBJQyBkb21haW5zIGZvciA4eDggSlBFRyBibG9ja3MuICovCit0eXBlZGVmIE9NWF9TMTYgQVJNX0JMT0NLOHg4WzY0XTsKKworCisjaW5jbHVkZSAiYXJtT01YLmgiCisKKyNkZWZpbmUgIGFybVBJIChPTVhfRjY0KSgzLjE0MTU5MjY1MzU4OTc5MzIzODQ2MjY0MzM4MzI3OTUpCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyogQ29tcGlsZXIgZXh0ZW5zaW9ucyAqLworI2lmZGVmIEFSTV9ERUJVRworLyogZGVidWcgdmVyc2lvbiAqLworI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPGFzc2VydC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjZGVmaW5lIGFybUVycm9yKHN0cikge3ByaW50Zigoc3RyKSk7IHByaW50ZigiXG4iKTsgZXhpdCgtMSk7fQorI2RlZmluZSBhcm1XYXJuKHN0cikge3ByaW50Zigoc3RyKSk7IHByaW50ZigiXG4iKTt9CisjZGVmaW5lIGFybUlnbm9yZShhKSAoKHZvaWQpYSkKKyNkZWZpbmUgYXJtQXNzZXJ0KGEpIGFzc2VydChhKQorI2Vsc2UgCisvKiByZWxlYXNlIHZlcnNpb24gKi8KKyNkZWZpbmUgYXJtRXJyb3Ioc3RyKSAoKHZvaWQpIChzdHIpKQorI2RlZmluZSBhcm1XYXJuKHN0cikgICgodm9pZCkgKHN0cikpCisjZGVmaW5lIGFybUlnbm9yZShhKSAgKCh2b2lkKSAoYSkpCisjZGVmaW5lIGFybUFzc2VydChhKSAgKCh2b2lkKSAoYSkpCisjZW5kaWYgLyogQVJNX0RFQlVHICovCisKKy8qIEFyaXRobWV0aWMgb3BlcmF0aW9ucyAqLworCisjZGVmaW5lIGFybU1pbihhLGIpICAgICAgICAgICAgICggKGEpID4gKGIpID8gIChiKTooYSkgKQorI2RlZmluZSBhcm1NYXgoYSxiKSAgICAgICAgICAgICAoIChhKSA+IChiKSA/ICAoYSk6KGIpICkKKyNkZWZpbmUgYXJtQWJzKGEpICAgICAgICAgICAgICAgKCAoYSkgPCAgMCAgPyAtKGEpOihhKSApCisKKy8qIEFsaWdubWVudCBvcGVyYXRpb24gKi8KKworI2RlZmluZSBhcm1BbGlnblRvQnl0ZXMoUHRyLE4pICAgICAgKFB0ciArICggKChOLShpbnQpUHRyKSYoTi0xKSkgLyBzaXplb2YoKlB0cikgKSkKKyNkZWZpbmUgYXJtQWxpZ25UbzJCeXRlcyhQdHIpICAgICAgIGFybUFsaWduVG9CeXRlcyhQdHIsMikKKyNkZWZpbmUgYXJtQWxpZ25UbzRCeXRlcyhQdHIpICAgICAgIGFybUFsaWduVG9CeXRlcyhQdHIsNCkKKyNkZWZpbmUgYXJtQWxpZ25UbzhCeXRlcyhQdHIpICAgICAgIGFybUFsaWduVG9CeXRlcyhQdHIsOCkKKyNkZWZpbmUgYXJtQWxpZ25UbzE2Qnl0ZXMoUHRyKSAgICAgIGFybUFsaWduVG9CeXRlcyhQdHIsMTYpCisKKy8qIEVycm9yIGFuZCBBbGlnbm1lbnQgY2hlY2sgKi8KKworI2RlZmluZSBhcm1SZXRBcmdFcnJJZihjb25kaXRpb24sIGNvZGUpICBpZihjb25kaXRpb24pIHsgcmV0dXJuIChjb2RlKTsgfQorI2RlZmluZSBhcm1SZXREYXRhRXJySWYoY29uZGl0aW9uLCBjb2RlKSBpZihjb25kaXRpb24pIHsgcmV0dXJuIChjb2RlKTsgfQorCisjZGVmaW5lIGFybUlzQnl0ZUFsaWduZWQoUHRyLE4pICAgICAoKCgoaW50KShQdHIpKSAlIE4pPT0wKQorI2RlZmluZSBhcm1Ob3RCeXRlQWxpZ25lZChQdHIsTikgICAgKCgoKGludCkoUHRyKSkgJSBOKSE9MCkKKworI2RlZmluZSBhcm1JczJCeXRlQWxpZ25lZChQdHIpICAgICAgYXJtSXNCeXRlQWxpZ25lZChQdHIsMikKKyNkZWZpbmUgYXJtSXM0Qnl0ZUFsaWduZWQoUHRyKSAgICAgIGFybUlzQnl0ZUFsaWduZWQoUHRyLDQpCisjZGVmaW5lIGFybUlzOEJ5dGVBbGlnbmVkKFB0cikgICAgICBhcm1Jc0J5dGVBbGlnbmVkKFB0ciw4KQorI2RlZmluZSBhcm1JczE2Qnl0ZUFsaWduZWQoUHRyKSAgICAgYXJtSXNCeXRlQWxpZ25lZChQdHIsMTYpCisKKyNkZWZpbmUgYXJtTm90MkJ5dGVBbGlnbmVkKFB0cikgICAgIGFybU5vdEJ5dGVBbGlnbmVkKFB0ciwyKQorI2RlZmluZSBhcm1Ob3Q0Qnl0ZUFsaWduZWQoUHRyKSAgICAgYXJtTm90Qnl0ZUFsaWduZWQoUHRyLDQpCisjZGVmaW5lIGFybU5vdDhCeXRlQWxpZ25lZChQdHIpICAgICBhcm1Ob3RCeXRlQWxpZ25lZChQdHIsOCkKKyNkZWZpbmUgYXJtTm90MTZCeXRlQWxpZ25lZChQdHIpICAgIGFybU5vdEJ5dGVBbGlnbmVkKFB0ciwxNikKKyNkZWZpbmUgYXJtTm90MzJCeXRlQWxpZ25lZChQdHIpICAgIGFybU5vdEJ5dGVBbGlnbmVkKFB0ciwzMikKKworLyoqCisgKiBGdW5jdGlvbjogYXJtUm91bmRGbG9hdFRvUzE2X3JlZi9hcm1Sb3VuZEZsb2F0VG9TMzJfcmVmL2FybVJvdW5kRmxvYXRUb1M2NAorICoKKyAqIERlc2NyaXB0aW9uOgorICogQ29udmVydHMgYSBkb3VibGUgcHJlY2lzaW9uIHZhbHVlIGludG8gYSBzaG9ydCBpbnQvaW50IGFmdGVyIHJvdW5kaW5nCisgKgorICogUGFyYW1ldGVyczoKKyAqIFtpbl0gIFZhbHVlICAgICAgICAgICAgICAgICBGbG9hdCB2YWx1ZSB0byBiZSBjb252ZXJ0ZWQKKyAqCisgKiBSZXR1cm4gVmFsdWU6CisgKiBbb3V0XSBjb252ZXJ0ZWQgdmFsdWUgaW4gT01YX1MxNi9PTVhfUzMyIGZvcm1hdAorICoKKyAqLworCitPTVhfUzE2IGFybVJvdW5kRmxvYXRUb1MxNiAoT01YX0Y2NCBWYWx1ZSk7CitPTVhfUzMyIGFybVJvdW5kRmxvYXRUb1MzMiAoT01YX0Y2NCBWYWx1ZSk7CitPTVhfUzY0IGFybVJvdW5kRmxvYXRUb1M2NCAoT01YX0Y2NCBWYWx1ZSk7CisKKy8qKgorICogRnVuY3Rpb246IGFybVNhdFJvdW5kRmxvYXRUb1MxNl9yZWYvYXJtU2F0Um91bmRGbG9hdFRvUzMyCisgKgorICogRGVzY3JpcHRpb246CisgKiBDb252ZXJ0cyBhIGRvdWJsZSBwcmVjaXNpb24gdmFsdWUgaW50byBhIHNob3J0IGludC9pbnQgYWZ0ZXIgcm91bmRpbmcgYW5kIHNhdHVyYXRpb24KKyAqCisgKiBQYXJhbWV0ZXJzOgorICogW2luXSAgVmFsdWUgICAgICAgICAgICAgICAgIEZsb2F0IHZhbHVlIHRvIGJlIGNvbnZlcnRlZAorICoKKyAqIFJldHVybiBWYWx1ZToKKyAqIFtvdXRdIGNvbnZlcnRlZCB2YWx1ZSBpbiBPTVhfUzE2L09NWF9TMzIgZm9ybWF0CisgKgorICovCisKK09NWF9TMTYgYXJtU2F0Um91bmRGbG9hdFRvUzE2IChPTVhfRjY0IFZhbHVlKTsKK09NWF9TMzIgYXJtU2F0Um91bmRGbG9hdFRvUzMyIChPTVhfRjY0IFZhbHVlKTsKKworLyoqCisgKiBGdW5jdGlvbjogYXJtU2F0Um91bmRGbG9hdFRvVTE2X3JlZi9hcm1TYXRSb3VuZEZsb2F0VG9VMzIKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIENvbnZlcnRzIGEgZG91YmxlIHByZWNpc2lvbiB2YWx1ZSBpbnRvIGEgdW5zaWduZWQgc2hvcnQgaW50L2ludCBhZnRlciByb3VuZGluZyBhbmQgc2F0dXJhdGlvbgorICoKKyAqIFBhcmFtZXRlcnM6CisgKiBbaW5dICBWYWx1ZSAgICAgICAgICAgICAgICAgRmxvYXQgdmFsdWUgdG8gYmUgY29udmVydGVkCisgKgorICogUmV0dXJuIFZhbHVlOgorICogW291dF0gY29udmVydGVkIHZhbHVlIGluIE9NWF9VMTYvT01YX1UzMiBmb3JtYXQKKyAqCisgKi8KKworT01YX1UxNiBhcm1TYXRSb3VuZEZsb2F0VG9VMTYgKE9NWF9GNjQgVmFsdWUpOworT01YX1UzMiBhcm1TYXRSb3VuZEZsb2F0VG9VMzIgKE9NWF9GNjQgVmFsdWUpOworCisvKioKKyAqIEZ1bmN0aW9uOiBhcm1TaWduQ2hlY2sKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIENoZWNrcyB0aGUgc2lnbiBvZiBhIHZhcmlhYmxlOgorICogcmV0dXJucyAxIGlmIGl0IGlzIFBvc2l0aXZlCisgKiByZXR1cm5zIDAgaWYgaXQgaXMgMAorICogcmV0dXJucyAtMSBpZiBpdCBpcyBOZWdhdGl2ZSAKKyAqCisgKiBSZW1hcmtzOgorICoKKyAqIFBhcmFtZXRlcnM6CisgKiBbaW5dCSAgICB2YXIgICAgIFZhcmlhYmxlIHRvIGJlIGNoZWNrZWQKKyAqCisgKiBSZXR1cm4gVmFsdWU6CisgKiBPTVhfSU5UIC0tICAgcmV0dXJucyAxIGlmIGl0IGlzIFBvc2l0aXZlCisgKiAgICAgICAgICAgICAgcmV0dXJucyAwIGlmIGl0IGlzIDAKKyAqICAgICAgICAgICAgICByZXR1cm5zIC0xIGlmIGl0IGlzIE5lZ2F0aXZlIAorICovIAorIAorT01YX0lOVCBhcm1TaWduQ2hlY2sgKE9NWF9TMTYgdmFyKTsKKworLyoqCisgKiBGdW5jdGlvbjogYXJtQ2xpcAorICoKKyAqIERlc2NyaXB0aW9uOiBDbGlwcyB0aGUgaW5wdXQgYmV0d2VlbiBNQVggYW5kIE1JTiB2YWx1ZQorICogCisgKgorICogUmVtYXJrczoKKyAqCisgKiBQYXJhbWV0ZXJzOgorICogW2luXSBNaW4gICAgIGxvd2VyIGJvdW5kCisgKiBbaW5dIE1heCAgICAgdXBwZXIgYm91bmQKKyAqIFtpbl0gc3JjICAgICB2YXJpYWJsZSB0byB0aGUgY2xpcHBlZAorICoKKyAqIFJldHVybiBWYWx1ZToKKyAqIE9NWF9TMzIgLS0gICByZXR1cm5zIGNsaXBwZWQgdmFsdWUKKyAqLyAKKyAKK09NWF9TMzIgYXJtQ2xpcCAoCisgICAgICAgIE9NWF9JTlQgbWluLAorICAgICAgICBPTVhfSU5UIG1heCwgCisgICAgICAgIE9NWF9TMzIgc3JjCisgICAgICAgICk7CisKKy8qKgorICogRnVuY3Rpb246IGFybUNsaXBfRjMyCisgKgorICogRGVzY3JpcHRpb246IENsaXBzIHRoZSBpbnB1dCBiZXR3ZWVuIE1BWCBhbmQgTUlOIHZhbHVlCisgKiAKKyAqCisgKiBSZW1hcmtzOgorICoKKyAqIFBhcmFtZXRlcnM6CisgKiBbaW5dIE1pbiAgICAgbG93ZXIgYm91bmQKKyAqIFtpbl0gTWF4ICAgICB1cHBlciBib3VuZAorICogW2luXSBzcmMgICAgIHZhcmlhYmxlIHRvIHRoZSBjbGlwcGVkCisgKgorICogUmV0dXJuIFZhbHVlOgorICogT01YX0YzMiAtLSAgIHJldHVybnMgY2xpcHBlZCB2YWx1ZQorICovIAorIAorT01YX0YzMiBhcm1DbGlwX0YzMiAoCisgICAgICAgIE9NWF9GMzIgbWluLAorICAgICAgICBPTVhfRjMyIG1heCwgCisgICAgICAgIE9NWF9GMzIgc3JjCisgICAgICAgICk7CisKKy8qKgorICogRnVuY3Rpb246IGFybVNoaWZ0U2F0X0YzMgorICoKKyAqIERlc2NyaXB0aW9uOiBEaXZpZGVzIGEgZmxvYXQgdmFsdWUgYnkgMl5zaGlmdCBhbmQgCisgKiBzYXR1cmF0ZXMgaXQgZm9yIHVuc2lnbmVkIHZhbHVlIHJhbmdlIGZvciBzYXRCaXRzLgorICogU2Vjb25kIHBhcmFtZXRlciBpcyBsaWtlICJzaGlmdGluZyIgdGhlIGNvcnJlc3BvbmRpbmcgCisgKiBpbnRlZ2VyIHZhbHVlLiBUYWtlcyBjYXJlIG9mIHJvdW5kaW5nIHdoaWxlIGNsaXBwaW5nIHRoZSBmaW5hbCAKKyAqIHZhbHVlLgorICoKKyAqIFBhcmFtZXRlcnM6CisgKiBbaW5dIHYgICAgICAgICAgTnVtYmVyIHRvIGJlIG9wZXJhdGVkIHVwb24KKyAqIFtpbl0gc2hpZnQgICAgICBEaXZpZGVzIHRoZSBpbnB1dCAidiIgYnkgIjJec2hpZnQiCisgKiBbaW5dIHNhdEJpdHMgICAgRmluYWwgcmFuZ2UgaXMgWzAsIDJec2F0Qml0cykKKyAqCisgKiBSZXR1cm4gVmFsdWU6CisgKiBPTVhfUzMyIC0tICAgcmV0dXJucyAic2hpZnRlZCIgc2F0dXJhdGVkIHZhbHVlCisgKi8gCisgCitPTVhfVTMyIGFybVNoaWZ0U2F0X0YzMigKKyAgICAgICAgT01YX0YzMiB2LCAKKyAgICAgICAgT01YX0lOVCBzaGlmdCwgCisgICAgICAgIE9NWF9JTlQgc2F0Qml0cworICAgICAgICApOworCisvKioKKyAqIEZ1bmN0aW9uczogYXJtU3dhcEVsZW0KKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIFRoaXMgZnVuY3Rpb24gc3dhcHMgdHdvIGVsZW1lbnRzIGF0IHRoZSBzcGVjaWZpZWQgcG9pbnRlciBsb2NhdGlvbnMuCisgKiBUaGUgc2l6ZSBvZiBlYWNoIGVsZW1lbnQgY291bGQgYmUgYW55dGhpbmcgYXMgc3BlY2lmaWVkIGJ5IDxlbGVtU2l6ZT4KKyAqCisgKiBSZXR1cm4gVmFsdWU6CisgKiBPTVhSZXN1bHQgLS0gRXJyb3Igc3RhdHVzIGZyb20gdGhlIGZ1bmN0aW9uCisgKi8KK09NWFJlc3VsdCBhcm1Td2FwRWxlbShPTVhfVTggKnBCdWYxLCBPTVhfVTggKnBCdWYyLCBPTVhfSU5UIGVsZW1TaXplKTsKKworCisvKioKKyAqIEZ1bmN0aW9uOiBhcm1NZWRpYW5PZjMKKyAqCisgKiBEZXNjcmlwdGlvbjogRmluZHMgdGhlIG1lZGlhbiBvZiB0aHJlZSBudW1iZXJzCisgKiAKKyAqIFJlbWFya3M6CisgKgorICogUGFyYW1ldGVyczoKKyAqIFtpbl0gZkVudHJ5ICAgICBGaXJzdCBlbnRyeQorICogW2luXSBzRW50cnkgICAgIHNlY29uZCBlbnRyeQorICogW2luXSB0RW50cnkgICAgIFRoaXJkIGVudHJ5CisgKgorICogUmV0dXJuIFZhbHVlOgorICogT01YX1MzMiAtLSAgIHJldHVybnMgdGhlIG1lZGlhbiB2YWx1ZQorICovIAorIAorT01YX1MzMiBhcm1NZWRpYW5PZjMgKAorICAgIE9NWF9TMzIgZkVudHJ5LAorICAgIE9NWF9TMzIgc0VudHJ5LCAKKyAgICBPTVhfUzMyIHRFbnRyeSAKKyAgICApOworCisvKioKKyAqIEZ1bmN0aW9uOiBhcm1Mb2dTaXplCisgKgorICogRGVzY3JpcHRpb246IEZpbmRzIHRoZSBzaXplIG9mIGEgcG9zaXRpdmUgdmFsdWUgYW5kIHJldHVybnMgdGhlIHNhbWUKKyAqIAorICogUmVtYXJrczoKKyAqCisgKiBQYXJhbWV0ZXJzOgorICogW2luXSB2YWx1ZSAgICBQb3NpdGl2ZSB2YWx1ZQorICoKKyAqIFJldHVybiBWYWx1ZToKKyAqIE9NWF9VOCAtLSAgIHJldHVybnMgdGhlIHNpemUgb2YgdGhlIHBvc2l0aXZlIHZhbHVlCisgKi8gCisgCitPTVhfVTggYXJtTG9nU2l6ZSAoCisgICAgT01YX1UxNiB2YWx1ZSAKKyAgICApOyAgICAKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworICAgICAgICAgICAgICAgIC8qIFNhdHVyYXRpbmcgQXJpdGhtZXRpYyBvcGVyYXRpb25zICovCisKKy8qKgorICogRnVuY3Rpb24gOmFybVNhdEFkZF9TMzIoKQorICoKKyAqIERlc2NyaXB0aW9uIDoKKyAqICAgUmV0dXJucyB0aGUgcmVzdWx0IG9mIHNhdHVyYXRlZCBhZGRpdGlvbiBvZiB0aGUgdHdvIGlucHV0cyBWYWx1ZTEsIFZhbHVlMgorICoKKyAqIFBhcmFtZXRyczoKKyAqIFtpbl0gVmFsdWUxICAgICAgIEZpcnN0IE9wZXJhbmQKKyAqIFtpbl0gVmFsdWUyICAgICAgIFNlY29uZCBPcGVyYW5kCisgKgorICogUmV0dXJuOgorICogW291dF0gICAgICAgICAgICAgUmVzdWx0IG9mIG9wZXJhdGlvbgorICogCisgKiAgICAKKyAqKi8KKworT01YX1MzMiBhcm1TYXRBZGRfUzMyKAorICAgICAgICAgICAgICAgIE9NWF9TMzIgVmFsdWUxLAorICAgICAgICAgICAgICAgIE9NWF9TMzIgVmFsdWUyCisgICAgICAgICAgICAgICAgKTsKKworLyoqCisgKiBGdW5jdGlvbiA6YXJtU2F0QWRkX1M2NCgpCisgKgorICogRGVzY3JpcHRpb24gOgorICogICBSZXR1cm5zIHRoZSByZXN1bHQgb2Ygc2F0dXJhdGVkIGFkZGl0aW9uIG9mIHRoZSB0d28gaW5wdXRzIFZhbHVlMSwgVmFsdWUyCisgKgorICogUGFyYW1ldHJzOgorICogW2luXSBWYWx1ZTEgICAgICAgRmlyc3QgT3BlcmFuZAorICogW2luXSBWYWx1ZTIgICAgICAgU2Vjb25kIE9wZXJhbmQKKyAqCisgKiBSZXR1cm46CisgKiBbb3V0XSAgICAgICAgICAgICBSZXN1bHQgb2Ygb3BlcmF0aW9uCisgKiAKKyAqICAgIAorICoqLworCitPTVhfUzY0IGFybVNhdEFkZF9TNjQoCisgICAgICAgICAgICAgICAgT01YX1M2NCBWYWx1ZTEsCisgICAgICAgICAgICAgICAgT01YX1M2NCBWYWx1ZTIKKyAgICAgICAgICAgICAgICApOworCisvKiogRnVuY3Rpb24gOmFybVNhdFN1Yl9TMzIoKQorICogCisgKiBEZXNjcmlwdGlvbiA6CisgKiAgICAgUmV0dXJucyB0aGUgcmVzdWx0IG9mIHNhdHVyYXRlZCBzdWJzdHJhY3Rpb24gb2YgdGhlIHR3byBpbnB1dHMgVmFsdWUxLCBWYWx1ZTIKKyAqCisgKiBQYXJhbWV0cnM6CisgKiBbaW5dIFZhbHVlMSAgICAgICBGaXJzdCBPcGVyYW5kCisgKiBbaW5dIFZhbHVlMiAgICAgICBTZWNvbmQgT3BlcmFuZAorICoKKyAqIFJldHVybjoKKyAqIFtvdXRdICAgICAgICAgICAgIFJlc3VsdCBvZiBvcGVyYXRpb24KKyAqIAorICoqLworCitPTVhfUzMyIGFybVNhdFN1Yl9TMzIoCisgICAgICAgICAgICAgICAgICAgIE9NWF9TMzIgVmFsdWUxLAorICAgICAgICAgICAgICAgICAgICBPTVhfUzMyIFZhbHVlMgorICAgICAgICAgICAgICAgICAgICApOworCisvKioKKyAqIEZ1bmN0aW9uIDphcm1TYXRNYWNfUzMyKCkKKyAqCisgKiBEZXNjcmlwdGlvbiA6CisgKiAgICAgUmV0dXJucyB0aGUgcmVzdWx0IG9mIE11bHRpcGxpY2F0aW9uIG9mIFZhbHVlMSBhbmQgVmFsdWUyIGFuZCBzdWJlc3F1ZW50IHNhdHVyYXRlZAorICogICAgIGFjY3VtdWxhdGlvbiB3aXRoIE1hYworICoKKyAqIFBhcmFtZXRyczoKKyAqIFtpbl0gVmFsdWUxICAgICAgIEZpcnN0IE9wZXJhbmQKKyAqIFtpbl0gVmFsdWUyICAgICAgIFNlY29uZCBPcGVyYW5kCisgKiBbaW5dIE1hYyAgICAgICAgICBBY2N1bXVsYXRvcgorICoKKyAqIFJldHVybjoKKyAqIFtvdXRdICAgICAgICAgICAgIFJlc3VsdCBvZiBvcGVyYXRpb24KKyAqKi8KKworT01YX1MzMiBhcm1TYXRNYWNfUzMyKAorICAgICAgICAgICAgICAgICAgICBPTVhfUzMyIE1hYywKKyAgICAgICAgICAgICAgICAgICAgT01YX1MxNiBWYWx1ZTEsCisgICAgICAgICAgICAgICAgICAgIE9NWF9TMTYgVmFsdWUyCisgICAgICAgICAgICAgICAgICAgICk7CisKKy8qKgorICogRnVuY3Rpb24gOmFybVNhdE1hY19TMTZTMzJfUzMyCisgKgorICogRGVzY3JpcHRpb24gOgorICogICBSZXR1cm5zIHRoZSByZXN1bHQgb2Ygc2F0dXJhdGVkIE1BQyBvcGVyYXRpb24gb2YgdGhlIHRocmVlIGlucHV0cyBkZWxheUVsZW0sIGZpbFRhcCAsIG1hYworICoKKyAqICAgbWFjID0gbWFjICsgU2F0dXJhdGVfaW5fMzJCaXRzKGRlbGF5RWxlbSAqIGZpbFRhcCkKKyAqCisgKiBQYXJhbWV0cnM6CisgKiBbaW5dIGRlbGF5RWxlbSAgICBGaXJzdCAzMiBiaXQgT3BlcmFuZAorICogW2luXSBmaWxUYXAgICAgICAgU2Vjb25kIDE2IGJpdCBPcGVyYW5kCisgKiBbaW5dIG1hYyAgICAgICAgICBSZXN1bHQgb2YgTUFDIG9wZXJhdGlvbgorICoKKyAqIFJldHVybjoKKyAqIFtvdXRdICBtYWMgICAgICAgIFJlc3VsdCBvZiBvcGVyYXRpb24KKyAqICAgIAorICoqLworIAorT01YX1MzMiBhcm1TYXRNYWNfUzE2UzMyX1MzMigKKyAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9TMzIgbWFjLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9TMzIgZGVsYXlFbGVtLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9TMTYgZmlsVGFwICk7CisKKy8qKgorICogRnVuY3Rpb24gOmFybVNhdFJvdW5kUmlnaHRTaGlmdF9TMzJfUzE2CisgKgorICogRGVzY3JpcHRpb24gOgorICogICBSZXR1cm5zIHRoZSByZXN1bHQgb2Ygcm91bmRlZCByaWdodCBzaGlmdCBvcGVyYXRpb24gb2YgaW5wdXQgYnkgdGhlIHNjYWxlZmFjdG9yCisgKgorICogICBvdXRwdXQgPSBTYXR1cmF0ZV9pbl8xNkJpdHMoICggUmlnaHRTaGlmdCggKFJvdW5kKGlucHV0KSAsIHNjYWxlRmFjdG9yICkgKQorICoKKyAqIFBhcmFtZXRyczoKKyAqIFtpbl0gaW5wdXQgICAgICAgVGhlIGlucHV0IHRvIGJlIG9wZXJhdGVkIG9uCisgKiBbaW5dIHNjYWxlRmFjdG9yIFRoZSBzaGlmdCBudW1iZXIKKyAqCisgKiBSZXR1cm46CisgKiBbb3V0XSAgICAgICAgICAgIFJlc3VsdCBvZiBvcGVyYXRpb24KKyAqICAgIAorICoqLworCisKK09NWF9TMTYgYXJtU2F0Um91bmRSaWdodFNoaWZ0X1MzMl9TMTYoCisgICAgICAgICAgICAgICAgICAgICAgICBPTVhfUzMyIGlucHV0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9JTlQgc2NhbGVGYWN0b3IpOworCisvKioKKyAqIEZ1bmN0aW9uIDphcm1TYXRSb3VuZExlZnRTaGlmdF9TMzIoKQorICoKKyAqIERlc2NyaXB0aW9uIDoKKyAqICAgICBSZXR1cm5zIHRoZSByZXN1bHQgb2Ygc2F0dXJhdGluZyBsZWZ0LXNoaWZ0IG9wZXJhdGlvbiBvbiBpbnB1dAorICogICAgIE9yIHJvdW5kZWQgUmlnaHQgc2hpZnQgaWYgdGhlIGlucHV0IFNoaWZ0IGlzIG5lZ2F0aXZlLgorICoKKyAqIFBhcmFtZXRyczoKKyAqIFtpbl0gVmFsdWUgICAgICAgIE9wZXJhbmQKKyAqIFtpbl0gc2hpZnQgICAgICAgIE9wZXJhbmQgZm9yIHNoaWZ0IG9wZXJhdGlvbgorICoKKyAqIFJldHVybjoKKyAqIFtvdXRdICAgICAgICAgICAgIFJlc3VsdCBvZiBvcGVyYXRpb24KKyAqICAgIAorICoqLworIAorT01YX1MzMiBhcm1TYXRSb3VuZExlZnRTaGlmdF9TMzIoCisgICAgICAgICAgICAgICAgICAgICAgICBPTVhfUzMyIFZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgT01YX0lOVCBzaGlmdAorICAgICAgICAgICAgICAgICAgICAgICAgKTsKKworLyoqCisgKiBGdW5jdGlvbiA6YXJtU2F0Um91bmRMZWZ0U2hpZnRfUzY0KCkKKyAqCisgKiBEZXNjcmlwdGlvbiA6CisgKiAgICAgUmV0dXJucyB0aGUgcmVzdWx0IG9mIHNhdHVyYXRpbmcgbGVmdC1zaGlmdCBvcGVyYXRpb24gb24gaW5wdXQKKyAqICAgICBPciByb3VuZGVkIFJpZ2h0IHNoaWZ0IGlmIHRoZSBpbnB1dCBTaGlmdCBpcyBuZWdhdGl2ZS4KKyAqCisgKiBQYXJhbWV0cnM6CisgKiBbaW5dIFZhbHVlICAgICAgICBPcGVyYW5kCisgKiBbaW5dIHNoaWZ0ICAgICAgICBPcGVyYW5kIGZvciBzaGlmdCBvcGVyYXRpb24KKyAqCisgKiBSZXR1cm46CisgKiBbb3V0XSAgICAgICAgICAgICBSZXN1bHQgb2Ygb3BlcmF0aW9uCisgKiAgICAKKyAqKi8KKyAKK09NWF9TNjQgYXJtU2F0Um91bmRMZWZ0U2hpZnRfUzY0KAorICAgICAgICAgICAgICAgICAgICAgICAgT01YX1M2NCBWYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9JTlQgc2hpZnQKKyAgICAgICAgICAgICAgICAgICAgICAgICk7CisKKy8qKgorICogRnVuY3Rpb24gOmFybVNhdE11bFMxNlMzMl9TMzIoKQorICoKKyAqIERlc2NyaXB0aW9uIDoKKyAqICAgICBSZXR1cm5zIHRoZSByZXN1bHQgb2YgYSBTMTYgZGF0YSB0eXBlIG11bHRpcGxpZWQgd2l0aCBhbiBTMzIgZGF0YSB0eXBlCisgKiAgICAgaW4gYSBTMzIgY29udGFpbmVyCisgKgorICogUGFyYW1ldHJzOgorICogW2luXSBpbnB1dDEgICAgICAgT3BlcmFuZCAxCisgKiBbaW5dIGlucHV0MiAgICAgICBPcGVyYW5kIDIKKyAqCisgKiBSZXR1cm46CisgKiBbb3V0XSAgICAgICAgICAgICBSZXN1bHQgb2Ygb3BlcmF0aW9uCisgKiAgICAKKyAqKi8KKworCitPTVhfUzMyIGFybVNhdE11bFMxNlMzMl9TMzIoCisgICAgICAgICAgICAgICAgICAgIE9NWF9TMTYgaW5wdXQxLAorICAgICAgICAgICAgICAgICAgICBPTVhfUzMyIGlucHV0Mik7CisKKy8qKgorICogRnVuY3Rpb24gOmFybVNhdE11bFMzMlMzMl9TMzIoKQorICoKKyAqIERlc2NyaXB0aW9uIDoKKyAqICAgICBSZXR1cm5zIHRoZSByZXN1bHQgb2YgYSBTMzIgZGF0YSB0eXBlIG11bHRpcGxpZWQgd2l0aCBhbiBTMzIgZGF0YSB0eXBlCisgKiAgICAgaW4gYSBTMzIgY29udGFpbmVyCisgKgorICogUGFyYW1ldHJzOgorICogW2luXSBpbnB1dDEgICAgICAgT3BlcmFuZCAxCisgKiBbaW5dIGlucHV0MiAgICAgICBPcGVyYW5kIDIKKyAqCisgKiBSZXR1cm46CisgKiBbb3V0XSAgICAgICAgICAgICBSZXN1bHQgb2Ygb3BlcmF0aW9uCisgKiAgICAKKyAqKi8KKworT01YX1MzMiBhcm1TYXRNdWxTMzJTMzJfUzMyKAorICAgICAgICAgICAgICAgICAgICBPTVhfUzMyIGlucHV0MSwKKyAgICAgICAgICAgICAgICAgICAgT01YX1MzMiBpbnB1dDIpOworCisKKy8qKgorICogRnVuY3Rpb24gOmFybUludERpdkF3YXlGcm9tWmVybygpCisgKgorICogRGVzY3JpcHRpb24gOiBJbnRlZ2VyIGRpdmlzaW9uIHdpdGggcm91bmRpbmcgdG8gdGhlIG5lYXJlc3QgaW50ZWdlci4gCisgKiAgICAgICAgICAgICAgIEhhbGYtaW50ZWdlciB2YWx1ZXMgYXJlIHJvdW5kZWQgYXdheSBmcm9tIHplcm8KKyAqICAgICAgICAgICAgICAgdW5sZXNzIG90aGVyd2lzZSBzcGVjaWZpZWQuIEZvciBleGFtcGxlIDMvMiBpcyByb3VuZGVkIAorICogICAgICAgICAgICAgICB0byAyLCBhbmQgLTMvMiBpcyByb3VuZGVkIHRvIC0yLgorICoKKyAqIFBhcmFtZXRyczoKKyAqIFtpbl0gTnVtICAgICAgICBPcGVyYW5kIDEKKyAqIFtpbl0gRGVubyAgICAgICBPcGVyYW5kIDIKKyAqCisgKiBSZXR1cm46CisgKiBbb3V0XSAgICAgICAgICAgICBSZXN1bHQgb2Ygb3BlcmF0aW9uIGlucHV0MS9pbnB1dDIKKyAqICAgIAorICoqLworCitPTVhfUzMyIGFybUludERpdkF3YXlGcm9tWmVybyAoT01YX1MzMiBOdW0sIE9NWF9TMzIgRGVubyk7CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoKKyAqIERlYnVnZ2luZyBtYWNyb3MKKyAqCisgKi8KKworCisvKgorICogRGVmaW5pdGlvbiBvZiBvdXRwdXQgc3RyZWFtIC0gY2hhbmdlIHRvIHN0ZGVyciBpZiBuZWNlc3NhcnkKKyAqLworI2RlZmluZSBERUJVR19TVFJFQU0gc3Rkb3V0CisKKy8qCisgKiBEZWJ1ZyBwcmludGYgbWFjcm9zLCBvbmUgZm9yIGVhY2ggYXJndW1lbnQgY291bnQuCisgKiBBZGQgbW9yZSBpZiBuZWVkZWQuCisgKi8KKyNpZmRlZiBERUJVR19PTgorI2luY2x1ZGUgPHN0ZGlvLmg+CisKKyNkZWZpbmUgREVCVUdfUFJJTlRGXzAoYSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoREVCVUdfU1RSRUFNLCBhKQorI2RlZmluZSBERUJVR19QUklOVEZfMShhLCBiKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihERUJVR19TVFJFQU0sIGEsIGIpCisjZGVmaW5lIERFQlVHX1BSSU5URl8yKGEsIGIsIGMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKERFQlVHX1NUUkVBTSwgYSwgYiwgYykKKyNkZWZpbmUgREVCVUdfUFJJTlRGXzMoYSwgYiwgYywgZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoREVCVUdfU1RSRUFNLCBhLCBiLCBjLCBkKQorI2RlZmluZSBERUJVR19QUklOVEZfNChhLCBiLCBjLCBkLCBlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihERUJVR19TVFJFQU0sIGEsIGIsIGMsIGQsIGUpCisjZGVmaW5lIERFQlVHX1BSSU5URl81KGEsIGIsIGMsIGQsIGUsIGYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKERFQlVHX1NUUkVBTSwgYSwgYiwgYywgZCwgZSwgZikKKyNkZWZpbmUgREVCVUdfUFJJTlRGXzYoYSwgYiwgYywgZCwgZSwgZiwgZykgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoREVCVUdfU1RSRUFNLCBhLCBiLCBjLCBkLCBlLCBmLCBnKQorI2RlZmluZSBERUJVR19QUklOVEZfNyhhLCBiLCBjLCBkLCBlLCBmLCBnLCBoKSAgICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihERUJVR19TVFJFQU0sIGEsIGIsIGMsIGQsIGUsIGYsIGcsIGgpCisjZGVmaW5lIERFQlVHX1BSSU5URl84KGEsIGIsIGMsIGQsIGUsIGYsIGcsIGgsIGkpICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKERFQlVHX1NUUkVBTSwgYSwgYiwgYywgZCwgZSwgZiwgZywgaCwgaSkKKyNkZWZpbmUgREVCVUdfUFJJTlRGXzkoYSwgYiwgYywgZCwgZSwgZiwgZywgaCwgaSwgaikgICAgICAgICAgICAgICAgICAgIGZwcmludGYoREVCVUdfU1RSRUFNLCBhLCBiLCBjLCBkLCBlLCBmLCBnLCBoLCBpLCBqKQorI2RlZmluZSBERUJVR19QUklOVEZfMTAoYSwgYiwgYywgZCwgZSwgZiwgZywgaCwgaSwgaiwgaykgICAgICAgICAgICAgICAgZnByaW50ZihERUJVR19TVFJFQU0sIGEsIGIsIGMsIGQsIGUsIGYsIGcsIGgsIGksIGosIGspCisjZGVmaW5lIERFQlVHX1BSSU5URl8xMShhLCBiLCBjLCBkLCBlLCBmLCBnLCBoLCBpLCBqLCBrLCBsKSAgICAgICAgICAgICBmcHJpbnRmKERFQlVHX1NUUkVBTSwgYSwgYiwgYywgZCwgZSwgZiwgZywgaCwgaSwgaiwgaywgbCkKKyNkZWZpbmUgREVCVUdfUFJJTlRGXzEyKGEsIGIsIGMsIGQsIGUsIGYsIGcsIGgsIGksIGosIGssIGwsIG0pICAgICAgICAgIGZwcmludGYoREVCVUdfU1RSRUFNLCBhLCBiLCBjLCBkLCBlLCBmLCBnLCBoLCBpLCBqLCBrLCBsLCBtKQorI2RlZmluZSBERUJVR19QUklOVEZfMTMoYSwgYiwgYywgZCwgZSwgZiwgZywgaCwgaSwgaiwgaywgbCwgbSwgbikgICAgICAgZnByaW50ZihERUJVR19TVFJFQU0sIGEsIGIsIGMsIGQsIGUsIGYsIGcsIGgsIGksIGosIGssIGwsIG0sIG4pCisjZGVmaW5lIERFQlVHX1BSSU5URl8xNChhLCBiLCBjLCBkLCBlLCBmLCBnLCBoLCBpLCBqLCBrLCBsLCBtLCBuLCBvKSAgICBmcHJpbnRmKERFQlVHX1NUUkVBTSwgYSwgYiwgYywgZCwgZSwgZiwgZywgaCwgaSwgaiwgaywgbCwgbSwgbiwgbykKKyNlbHNlIC8qIERFQlVHX09OICovCisjZGVmaW5lIERFQlVHX1BSSU5URl8wKGEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorI2RlZmluZSBERUJVR19QUklOVEZfMShhLCBiKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyNkZWZpbmUgREVCVUdfUFJJTlRGXzIoYSwgYiwgYykgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisjZGVmaW5lIERFQlVHX1BSSU5URl8zKGEsIGIsIGMsIGQpICAgICAgICAgICAgICAgICAgICAgICAgIAorI2RlZmluZSBERUJVR19QUklOVEZfNChhLCBiLCBjLCBkLCBlKSAgICAgICAgICAgICAgICAgICAgICAKKyNkZWZpbmUgREVCVUdfUFJJTlRGXzUoYSwgYiwgYywgZCwgZSwgZikgICAgICAgICAgICAgICAgICAgCisjZGVmaW5lIERFQlVHX1BSSU5URl82KGEsIGIsIGMsIGQsIGUsIGYsIGcpICAgICAgICAgICAgICAgIAorI2RlZmluZSBERUJVR19QUklOVEZfNyhhLCBiLCBjLCBkLCBlLCBmLCBnLCBoKSAgICAgICAgICAgICAKKyNkZWZpbmUgREVCVUdfUFJJTlRGXzgoYSwgYiwgYywgZCwgZSwgZiwgZywgaCwgaSkgICAgICAgICAgCisjZGVmaW5lIERFQlVHX1BSSU5URl85KGEsIGIsIGMsIGQsIGUsIGYsIGcsIGgsIGksIGopICAgICAgIAorI2RlZmluZSBERUJVR19QUklOVEZfMTAoYSwgYiwgYywgZCwgZSwgZiwgZywgaCwgaSwgaiwgaykgICAgCisjZGVmaW5lIERFQlVHX1BSSU5URl8xMShhLCBiLCBjLCBkLCBlLCBmLCBnLCBoLCBpLCBqLCBrLCBsKSAgICAgICAgICAgICAKKyNkZWZpbmUgREVCVUdfUFJJTlRGXzEyKGEsIGIsIGMsIGQsIGUsIGYsIGcsIGgsIGksIGosIGssIGwsIG0pICAgICAgICAgIAorI2RlZmluZSBERUJVR19QUklOVEZfMTMoYSwgYiwgYywgZCwgZSwgZiwgZywgaCwgaSwgaiwgaywgbCwgbSwgbikgICAgICAKKyNkZWZpbmUgREVCVUdfUFJJTlRGXzE0KGEsIGIsIGMsIGQsIGUsIGYsIGcsIGgsIGksIGosIGssIGwsIG0sIG4sIG8pICAgCisjZW5kaWYgLyogREVCVUdfT04gKi8KKworCisvKgorICogRG9tYWluIGFuZCBzdWIgZG9tYWluIGRlZmluaXRpb25zCisgKgorICogSW4gb3JkZXIgdG8gdHVybiBvbiBkZWJ1ZyBmb3IgYW4gZW50aXJlIGRvbWFpbiBvciBzdWItZG9tYWluCisgKiBhdCBjb21waWxlIHRpbWUsIG9uZSBvZiB0aGUgREVCVUdfRE9NQUlOXyogYmVsb3cgbWF5IGJlIGRlZmluZWQsCisgKiB3aGljaCB3aWxsIGFjdGl2YXRlIGRlYnVnIGluIGFsbCBvZiB0aGUgZGVmaW5lcyBpdCBjb250YWlucy4KKyAqLworCisjaWZkZWYgREVCVUdfRE9NQUlOX0FDCisjZGVmaW5lIERFQlVHX09NWEFDQUFDX0RFQ09ERUNIQU5QQUlSRUxUX01QRUc0CisjZGVmaW5lIERFQlVHX09NWEFDQUFDX0RFQ09ERUNIQU5QQUlSRUxUCisjZGVmaW5lIERFQlVHX09NWEFDQUFDX0RFQ09ERURBVFNUUkVMVAorI2RlZmluZSBERUJVR19PTVhBQ0FBQ19ERUNPREVGSUxMRUxUCisjZGVmaW5lIERFQlVHX09NWEFDQUFDX0RFQ09ERUlTU1RFUkVPX1MzMgorI2RlZmluZSBERUJVR19PTVhBQ0FBQ19ERUNPREVNU1BOU19TMzIKKyNkZWZpbmUgREVCVUdfT01YQUNBQUNfREVDT0RFTVNTVEVSRU9fUzMyX0kKKyNkZWZpbmUgREVCVUdfT01YQUNBQUNfREVDT0RFUFJHQ0ZHRUxUCisjZGVmaW5lIERFQlVHX09NWEFDQUFDX0RFQ09ERVROU19TMzJfSQorI2RlZmluZSBERUJVR19PTVhBQ0FBQ19ERUlOVEVSTEVBVkVTUEVDVFJVTV9TMzIKKyNkZWZpbmUgREVCVUdfT01YQUNBQUNfRU5DT0RFVE5TX1MzMl9JCisjZGVmaW5lIERFQlVHX09NWEFDQUFDX0xPTkdURVJNUFJFRElDVF9TMzIKKyNkZWZpbmUgREVCVUdfT01YQUNBQUNfTE9OR1RFUk1SRUNPTlNUUlVDVF9TMzIKKyNkZWZpbmUgREVCVUdfT01YQUNBQUNfTURDVEZXRF9TMzIKKyNkZWZpbmUgREVCVUdfT01YQUNBQUNfTURDVElOVl9TMzJfUzE2CisjZGVmaW5lIERFQlVHX09NWEFDQUFDX05PSVNFTEVTU0RFQ09ERQorI2RlZmluZSBERUJVR19PTVhBQ0FBQ19RVUFOVElOVl9TMzJfSQorI2RlZmluZSBERUJVR19PTVhBQ0FBQ19VTlBBQ0tBRElGSEVBREVSCisjZGVmaW5lIERFQlVHX09NWEFDQUFDX1VOUEFDS0FEVFNGUkFNRUhFQURFUgorI2RlZmluZSBERUJVR19PTVhBQ01QM19IVUZGTUFOREVDT0RFU0ZCTUJQX1MzMgorI2RlZmluZSBERUJVR19PTVhBQ01QM19IVUZGTUFOREVDT0RFU0ZCX1MzMgorI2RlZmluZSBERUJVR19PTVhBQ01QM19IVUZGTUFOREVDT0RFX1MzMgorI2RlZmluZSBERUJVR19PTVhBQ01QM19NRENUSU5WX1MzMgorI2RlZmluZSBERUJVR19PTVhBQ01QM19SRVFVQU5USVpFU0ZCX1MzMl9JCisjZGVmaW5lIERFQlVHX09NWEFDTVAzX1JFUVVBTlRJWkVfUzMyX0kKKyNkZWZpbmUgREVCVUdfT01YQUNNUDNfU1lOVEhQUU1GX1MzMl9TMTYKKyNkZWZpbmUgREVCVUdfT01YQUNNUDNfVU5QQUNLRlJBTUVIRUFERVIKKyNkZWZpbmUgREVCVUdfT01YQUNNUDNfVU5QQUNLU0NBTEVGQUNUT1JTX1M4CisjZGVmaW5lIERFQlVHX09NWEFDTVAzX1VOUEFDS1NJREVJTkZPCisjZW5kaWYgLyogREVCVUdfRE9NQUlOX0FDICovCisKKworI2lmZGVmIERFQlVHX0RPTUFJTl9WQworI2RlZmluZSBERUJVR19PTVhWQ000UDEwX0FWRVJBR0VfMTZYCisjZGVmaW5lIERFQlVHX09NWFZDTTRQMTBfQVZFUkFHRV80WAorI2RlZmluZSBERUJVR19PTVhWQ000UDEwX0FWRVJBR0VfOFgKKyNkZWZpbmUgREVCVUdfT01YVkNNNFAxMF9ERUJMT0NLQ0hST01BX1U4X0MxSVIKKyNkZWZpbmUgREVCVUdfT01YVkNNNFAxMF9ERUJMT0NLTFVNQV9VOF9DMUlSCisjZGVmaW5lIERFQlVHX09NWFZDTTRQMTBfREVDT0RFQ0hST01BRENDT0VGRlNUT1BBSVJDQVZMQ19VOAorI2RlZmluZSBERUJVR19PTVhWQ000UDEwX0RFQ09ERUNPRUZGU1RPUEFJUkNBVkxDX1U4CisjZGVmaW5lIERFQlVHX09NWFZDTTRQMTBfREVRVUFOVFRSQU5TRk9STUFDRlJPTVBBSVJfVThfUzE2X0MxX0RMWAorI2RlZmluZSBERUJVR19PTVhWQ000UDEwX0VYUEFOREZSQU1FCisjZGVmaW5lIERFQlVHX09NWFZDTTRQMTBfRklMVEVSREVCTE9DS0lOR0NIUk9NQV9IT1JFREdFX1U4X0MxSVIKKyNkZWZpbmUgREVCVUdfT01YVkNNNFAxMF9GSUxURVJERUJMT0NLSU5HQ0hST01BX1ZFUkVER0VfVThfQzFJUgorI2RlZmluZSBERUJVR19PTVhWQ000UDEwX0ZJTFRFUkRFQkxPQ0tJTkdMVU1BX0hPUkVER0VfVThfQzFJUgorI2RlZmluZSBERUJVR19PTVhWQ000UDEwX0ZJTFRFUkRFQkxPQ0tJTkdMVU1BX1ZFUkVER0VfVThfQzFJUgorI2RlZmluZSBERUJVR19PTVhWQ000UDEwX1BSRURJQ1RJTlRSQUNIUk9NQThYOF9VOF9DMVIKKyNkZWZpbmUgREVCVUdfT01YVkNNNFAxMF9QUkVESUNUSU5UUkFfMTZYMTZfVThfQzFSCisjZGVmaW5lIERFQlVHX09NWFZDTTRQMTBfUFJFRElDVElOVFJBXzRYNF9VOF9DMVIKKyNkZWZpbmUgREVCVUdfT01YVkNNNFAxMF9TQURRVUFSXzE2WAorI2RlZmluZSBERUJVR19PTVhWQ000UDEwX1NBRFFVQVJfNFgKKyNkZWZpbmUgREVCVUdfT01YVkNNNFAxMF9TQURRVUFSXzhYCisjZGVmaW5lIERFQlVHX09NWFZDTTRQMTBfU0FEXzE2WAorI2RlZmluZSBERUJVR19PTVhWQ000UDEwX1NBRF80WAorI2RlZmluZSBERUJVR19PTVhWQ000UDEwX1NBRF84WAorI2RlZmluZSBERUJVR19PTVhWQ000UDEwX1NBVERfNFg0CisjZGVmaW5lIERFQlVHX09NWFZDTTRQMTBfVFJBTlNGT1JNREVRVUFOVENIUk9NQURDRlJPTVBBSVJfVThfUzE2X0MxCisjZGVmaW5lIERFQlVHX09NWFZDTTRQMTBfVFJBTlNGT1JNREVRVUFOVExVTUFEQ0ZST01QQUlSX1U4X1MxNl9DMQorI2RlZmluZSBERUJVR19PTVhWQ000UDEwX1RSQU5TRk9STVFVQU5UX0NIUk9NQURDCisjZGVmaW5lIERFQlVHX09NWFZDTTRQMTBfVFJBTlNGT1JNUVVBTlRfTFVNQURDCisjZGVmaW5lIERFQlVHX09NWFZDTTRQMl9CTE9DS01BVENIX0hBTEZfMTZYMTYKKyNkZWZpbmUgREVCVUdfT01YVkNNNFAyX0JMT0NLTUFUQ0hfSEFMRl84WDgKKyNkZWZpbmUgREVCVUdfT01YVkNNNFAyX0JMT0NLTUFUQ0hfSU5URUdFUl8xNlgxNgorI2RlZmluZSBERUJVR19PTVhWQ000UDJfQkxPQ0tNQVRDSF9JTlRFR0VSXzhYOAorI2RlZmluZSBERUJVR19PTVhWQ000UDJfQ09NUFVURVRFWFRVUkVFUlJPUkJMT0NLX1NBRF9VOF9TMTYKKyNkZWZpbmUgREVCVUdfT01YVkNNNFAyX0NPTVBVVEVURVhUVVJFRVJST1JCTE9DS19VOF9TMTYKKyNkZWZpbmUgREVCVUdfT01YVkNNNFAyX0RDVDhYOEJMS0RMWAorI2RlZmluZSBERUJVR19PTVhWQ000UDJfREVDT0RFQkxPQ0tDT0VGX0lOVEVSX1MxNgorI2RlZmluZSBERUJVR19PTVhWQ000UDJfREVDT0RFUEFETVZfUFZPUAorI2RlZmluZSBERUJVR19PTVhWQ000UDJfREVDT0RFVkxDWklHWkFHX0lOVEVSX1MxNgorI2RlZmluZSBERUJVR19PTVhWQ000UDJfREVDT0RFVkxDWklHWkFHX0lOVFJBQUNWTENfUzE2CisjZGVmaW5lIERFQlVHX09NWFZDTTRQMl9ERUNPREVWTENaSUdaQUdfSU5UUkFEQ1ZMQ19TMTYKKyNkZWZpbmUgREVCVUdfT01YVkNNNFAyX0VOQ09ERU1WX1U4X1MxNgorI2RlZmluZSBERUJVR19PTVhWQ000UDJfRU5DT0RFVkxDWklHWkFHX0lOVEVSX1MxNgorI2RlZmluZSBERUJVR19PTVhWQ000UDJfRU5DT0RFVkxDWklHWkFHX0lOVFJBQUNWTENfUzE2CisjZGVmaW5lIERFQlVHX09NWFZDTTRQMl9FTkNPREVWTENaSUdaQUdfSU5UUkFEQ1ZMQ19TMTYKKyNkZWZpbmUgREVCVUdfT01YVkNNNFAyX0ZJTkRNVlBSRUQKKyNkZWZpbmUgREVCVUdfT01YVkNNNFAyX0lEQ1Q4WDhCTEtETFgKKyNkZWZpbmUgREVCVUdfT01YVkNNNFAyX0xJTUlUTVZUT1JFQ1QKKyNkZWZpbmUgREVCVUdfT01YVkNNNFAyX01PVElPTkVTVElNQVRJT05NQgorI2RlZmluZSBERUJVR19PTVhWQ000UDJfUEFETUJHUkFZX1U4CisjZGVmaW5lIERFQlVHX09NWFZDTTRQMl9QQURNQkhPUklaT05UQUxfVTgKKyNkZWZpbmUgREVCVUdfT01YVkNNNFAyX1BBRE1CVkVSVElDQUxfVTgKKyNkZWZpbmUgREVCVUdfT01YVkNNNFAyX1BBRE1WCisjZGVmaW5lIERFQlVHX09NWFZDTTRQMl9RVUFOVElOVEVSX1MxNl9JCisjZGVmaW5lIERFQlVHX09NWFZDTTRQMl9RVUFOVElOVFJBX1MxNl9JCisjZGVmaW5lIERFQlVHX09NWFZDTTRQMl9RVUFOVElOVklOVEVSX1MxNl9JCisjZGVmaW5lIERFQlVHX09NWFZDTTRQMl9RVUFOVElOVklOVFJBX1MxNl9JCisjZGVmaW5lIERFQlVHX09NWFZDTTRQMl9UUkFOU1JFQ0JMT0NLQ0VPRl9JTlRFUgorI2RlZmluZSBERUJVR19PTVhWQ000UDJfVFJBTlNSRUNCTE9DS0NFT0ZfSU5UUkEKKyNlbmRpZiAvKiBERUJVR19ET01BSU5fVkMgKi8KKworCisjaWZkZWYgREVCVUdfRE9NQUlOX0lDCisvKiBUbyBiZSBmaWxsZWQgaW4gKi8KKyNlbmRpZiAvKiBERUJVR19ET01BSU5fSUMgKi8KKworCisjaWZkZWYgREVCVUdfRE9NQUlOX1NQCisjZGVmaW5lIERFQlVHX09NWEFDU1BfRE9UUFJPRF9TMTYKKyNkZWZpbmUgREVCVUdfT01YQUNTUF9CTE9DS0VYUF9TMTYKKyNkZWZpbmUgREVCVUdfT01YQUNTUF9CTE9DS0VYUF9TMzIKKyNkZWZpbmUgREVCVUdfT01YQUNTUF9DT1BZX1MxNgorI2RlZmluZSBERUJVR19PTVhBQ1NQX0RPVFBST0RfUzE2CisjZGVmaW5lIERFQlVHX09NWEFDU1BfRE9UUFJPRF9TMTZfU0ZTCisjZGVmaW5lIERFQlVHX09NWEFDU1BfRkZURldEX0NUT0NfU0MxNl9TRlMKKyNkZWZpbmUgREVCVUdfT01YQUNTUF9GRlRGV0RfQ1RPQ19TQzMyX1NGUworI2RlZmluZSBERUJVR19PTVhBQ1NQX0ZGVEZXRF9SVE9DQ1NfUzE2UzMyX1NGUworI2RlZmluZSBERUJVR19PTVhBQ1NQX0ZGVEZXRF9SVE9DQ1NfUzMyX1NGUworI2RlZmluZSBERUJVR19PTVhBQ1NQX0ZGVEdFVEJVRlNJWkVfQ19TQzE2CisjZGVmaW5lIERFQlVHX09NWEFDU1BfRkZUR0VUQlVGU0laRV9DX1NDMzIKKyNkZWZpbmUgREVCVUdfT01YQUNTUF9GRlRHRVRCVUZTSVpFX1JfUzE2X1MzMgorI2RlZmluZSBERUJVR19PTVhBQ1NQX0ZGVEdFVEJVRlNJWkVfUl9TMzIKKyNkZWZpbmUgREVCVUdfT01YQUNTUF9GRlRJTklUX0NfU0MxNgorI2RlZmluZSBERUJVR19PTVhBQ1NQX0ZGVElOSVRfQ19TQzMyCisjZGVmaW5lIERFQlVHX09NWEFDU1BfRkZUSU5JVF9SX1MxNl9TMzIKKyNkZWZpbmUgREVCVUdfT01YQUNTUF9GRlRJTklUX1JfUzMyCisjZGVmaW5lIERFQlVHX09NWEFDU1BfRkZUSU5WX0NDU1RPUl9TMzJTMTZfU0ZTCisjZGVmaW5lIERFQlVHX09NWEFDU1BfRkZUSU5WX0NDU1RPUl9TMzJfU0ZTCisjZGVmaW5lIERFQlVHX09NWEFDU1BfRkZUSU5WX0NUT0NfU0MxNl9TRlMKKyNkZWZpbmUgREVCVUdfT01YQUNTUF9GRlRJTlZfQ1RPQ19TQzMyX1NGUworI2RlZmluZSBERUJVR19PTVhBQ1NQX0ZJTFRFUk1FRElBTl9TMzJfSQorI2RlZmluZSBERUJVR19PTVhBQ1NQX0ZJTFRFUk1FRElBTl9TMzIKKyNkZWZpbmUgREVCVUdfT01YQUNTUF9GSVJPTkVfRElSRUNUX1MxNl9JU0ZTCisjZGVmaW5lIERFQlVHX09NWEFDU1BfRklST05FX0RJUkVDVF9TMTZfSQorI2RlZmluZSBERUJVR19PTVhBQ1NQX0ZJUk9ORV9ESVJFQ1RfUzE2CisjZGVmaW5lIERFQlVHX09NWEFDU1BfRklST05FX0RJUkVDVF9TMTZfU0ZTCisjZGVmaW5lIERFQlVHX09NWEFDU1BfRklSX0RJUkVDVF9TMTZfSVNGUworI2RlZmluZSBERUJVR19PTVhBQ1NQX0ZJUl9ESVJFQ1RfUzE2X0kKKyNkZWZpbmUgREVCVUdfT01YQUNTUF9GSVJfRElSRUNUX1MxNgorI2RlZmluZSBERUJVR19PTVhBQ1NQX0ZJUl9ESVJFQ1RfUzE2X1NGUworI2RlZmluZSBERUJVR19PTVhBQ1NQX0lJUk9ORV9CSVFVQURESVJFQ1RfUzE2X0kKKyNkZWZpbmUgREVCVUdfT01YQUNTUF9JSVJPTkVfQklRVUFERElSRUNUX1MxNgorI2RlZmluZSBERUJVR19PTVhBQ1NQX0lJUk9ORV9ESVJFQ1RfUzE2X0kKKyNkZWZpbmUgREVCVUdfT01YQUNTUF9JSVJPTkVfRElSRUNUX1MxNgorI2RlZmluZSBERUJVR19PTVhBQ1NQX0lJUl9CSVFVQURESVJFQ1RfUzE2X0kKKyNkZWZpbmUgREVCVUdfT01YQUNTUF9JSVJfQklRVUFERElSRUNUX1MxNgorI2RlZmluZSBERUJVR19PTVhBQ1NQX0lJUl9ESVJFQ1RfUzE2X0kKKyNkZWZpbmUgREVCVUdfT01YQUNTUF9JSVJfRElSRUNUX1MxNgorI2VuZGlmIC8qIERFQlVHX0RPTUFJTl9TUCAqLworCisKKyNpZmRlZiBERUJVR19ET01BSU5fSVAKKyNkZWZpbmUgREVCVUdfT01YSVBCTV9BRERDX1U4X0MxUl9TRlMKKyNkZWZpbmUgREVCVUdfT01YSVBCTV9DT1BZX1U4X0MxUgorI2RlZmluZSBERUJVR19PTVhJUEJNX0NPUFlfVThfQzNSCisjZGVmaW5lIERFQlVHX09NWElQQk1fTUlSUk9SX1U4X0MxUgorI2RlZmluZSBERUJVR19PTVhJUEJNX01VTENfVThfQzFSX1NGUworI2RlZmluZSBERUJVR19PTVhJUENTX0NPTE9SVFdJU1RRMTRfVThfQzNSCisjZGVmaW5lIERFQlVHX09NWElQQ1NfUkdCNTY1VE9ZQ0JDUjQyMExTX01DVV9VMTZfUzE2X0MzUDNSCisjZGVmaW5lIERFQlVHX09NWElQQ1NfUkdCNTY1VE9ZQ0JDUjQyMkxTX01DVV9VMTZfUzE2X0MzUDNSCisjZGVmaW5lIERFQlVHX09NWElQQ1NfUkdCNTY1VE9ZQ0JDUjQ0NExTX01DVV9VMTZfUzE2X0MzUDNSCisjZGVmaW5lIERFQlVHX09NWElQQ1NfUkdCVE9ZQ0JDUjQyMExTX01DVV9VOF9TMTZfQzNQM1IKKyNkZWZpbmUgREVCVUdfT01YSVBDU19SR0JUT1lDQkNSNDIyTFNfTUNVX1U4X1MxNl9DM1AzUgorI2RlZmluZSBERUJVR19PTVhJUENTX1JHQlRPWUNCQ1I0NDRMU19NQ1VfVThfUzE2X0MzUDNSCisjZGVmaW5lIERFQlVHX09NWElQQ1NfWUNCQ1I0MjBSU1pST1RfVThfUDNSCisjZGVmaW5lIERFQlVHX09NWElQQ1NfWUNCQ1I0MjBUT1JHQjU2NUxTX01DVV9TMTZfVTE2X1AzQzNSCisjZGVmaW5lIERFQlVHX09NWElQQ1NfWUNCQ1I0MjBUT1JHQjU2NV9VOF9VMTZfUDNDM1IKKyNkZWZpbmUgREVCVUdfT01YSVBDU19ZQ0JDUjQyMFRPUkdCTFNfTUNVX1MxNl9VOF9QM0MzUgorI2RlZmluZSBERUJVR19PTVhJUENTX1lDQkNSNDIyUlNaQ1NDUk9UUkdCX1U4X0MyUgorI2RlZmluZSBERUJVR19PTVhJUENTX1lDQkNSNDIyUlNaUk9UX1U4X1AzUgorI2RlZmluZSBERUJVR19PTVhJUENTX1lDQkNSNDIyVE9SR0I1NjVMU19NQ1VfUzE2X1UxNl9QM0MzUgorI2RlZmluZSBERUJVR19PTVhJUENTX1lDQkNSNDIyVE9SR0I1NjVfVThfVTE2X0MyQzNSCisjZGVmaW5lIERFQlVHX09NWElQQ1NfWUNCQ1I0MjJUT1JHQkxTX01DVV9TMTZfVThfUDNDM1IKKyNkZWZpbmUgREVCVUdfT01YSVBDU19ZQ0JDUjQyMlRPUkdCX1U4X0MyQzNSCisjZGVmaW5lIERFQlVHX09NWElQQ1NfWUNCQ1I0MjJUT1lDQkNSNDIwUk9UQVRFX1U4X0MyUDNSCisjZGVmaW5lIERFQlVHX09NWElQQ1NfWUNCQ1I0MjJUT1lDQkNSNDIwUk9UQVRFX1U4X1AzUgorI2RlZmluZSBERUJVR19PTVhJUENTX1lDQkNSNDQ0VE9SR0I1NjVMU19NQ1VfUzE2X1UxNl9QM0MzUgorI2RlZmluZSBERUJVR19PTVhJUENTX1lDQkNSNDQ0VE9SR0JMU19NQ1VfUzE2X1U4X1AzQzNSCisjZGVmaW5lIERFQlVHX09NWElQQ1NfWUNCQ1JUT1JHQjU2NV9VOF9VMTZfQzNSCisjZGVmaW5lIERFQlVHX09NWElQQ1NfWUNCQ1JUT1JHQjU2NV9VOF9VMTZfUDNDM1IKKyNkZWZpbmUgREVCVUdfT01YSVBDU19ZQ0JDUlRPUkdCX1U4X0MzUgorI2RlZmluZSBERUJVR19PTVhJUFBQX0dFVENFTlRSQUxNT01FTlRfUzY0CisjZGVmaW5lIERFQlVHX09NWElQUFBfR0VUU1BBVElBTE1PTUVOVF9TNjQKKyNkZWZpbmUgREVCVUdfT01YSVBQUF9NT01FTlRHRVRTVEFURVNJWkVfUzY0CisjZGVmaW5lIERFQlVHX09NWElQUFBfTU9NRU5USU5JVF9TNjQKKyNkZWZpbmUgREVCVUdfT01YSVBQUF9NT01FTlRTNjRTX1U4X0MxUgorI2RlZmluZSBERUJVR19PTVhJUFBQX01PTUVOVFM2NFNfVThfQzNSCisjZW5kaWYgLyogREVCVUdfRE9NQUlOX0lQICovCisKKworI2VuZGlmIC8qIF9hcm1DT01NX0hfICovCisKKy8qRW5kIG9mIEZpbGUqLworCisKKworCmRpZmYgLS1naXQgYS9kbC9hcm1DT01NX3MuaCBiL2RsL2FybUNPTU1fcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwMjA4OTQKLS0tIC9kZXYvbnVsbAorKysgYi9kbC9hcm1DT01NX3MuaApAQCAtMCwwICsxLDQyOSBAQAorQC8vIC0qLSBNb2RlOiBhc207IC0qLQorQC8vCitALy8gIENvcHlyaWdodCAoYykgMjAxMyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KK0AvLworQC8vICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCitALy8gIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorQC8vICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCitALy8gIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKK0AvLyAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCitALy8KK0AvLyAgVGhpcyBmaWxlIHdhcyBvcmlnaW5hbGx5IGxpY2Vuc2VkIGFzIGZvbGxvd3MuIEl0IGhhcyBiZWVuCitALy8gIHJlbGljZW5zZWQgd2l0aCBwZXJtaXNzaW9uIGZyb20gdGhlIGNvcHlyaWdodCBob2xkZXJzLgorQC8vCisJCitALy8gCitALy8gRmlsZSBOYW1lOiAgYXJtQ09NTV9zLmgKK0AvLyBPcGVuTUFYIERMOiB2MS4wLjIKK0AvLyBMYXN0IE1vZGlmaWVkIFJldmlzaW9uOiAgIDEzODcxCitALy8gTGFzdCBNb2RpZmllZCBEYXRlOiAgICAgICBGcmksIDA5IE1heSAyMDA4CitALy8gCitALy8gKGMpIENvcHlyaWdodCAyMDA3LTIwMDggQVJNIExpbWl0ZWQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitALy8gCitALy8gCitALy8KK0AvLyBBUk0gb3B0aW1pemVkIE9wZW5NQVggY29tbW9uIGhlYWRlciBmaWxlCitALy8KKworCS5zZXQJX1JCeXRlcywgMAlAIE51bWJlciBvZiByZWdpc3RlciBieXRlcyBvbiBzdGFjaworCS5zZXQJX1NCeXRlcywgMAlAIE51bWJlciBvZiBzY3JhdGNoIGJ5dGVzIG9uIHN0YWNrCisJLnNldAlfV29ya3NwYWNlLCAwCUAgU3RhY2sgb2Zmc2V0IG9mIHNjcmF0Y2ggd29ya3NwYWNlCisKKwkuc2V0CV9SUmVnTGlzdCwgMAlAIFIgc2F2ZWQgcmVnaXN0ZXIgbGlzdCAobGFzdCByZWdpc3RlciBudW1iZXIpCisJLnNldAlfRFJlZ0xpc3QsIDAJQCBEIHNhdmVkIHJlZ2lzdGVyIGxpc3QgKGxhc3QgcmVnaXN0ZXIgbnVtYmVyKQorCisgICAgICAgIEAvLyBXb3JrIG91dCBhIGxpc3Qgb2YgUiBzYXZlZCByZWdpc3RlcnMsIGFuZCBob3cgbXVjaCBzdGFjayBzcGFjZSBpcyBuZWVkZWQuCisJQC8vIGdhcyBkb2Vzbid0IHN1cHBvcnQgc2V0dGluZyBhIHZhcmlhYmxlIHRvIGEgc3RyaW5nLCBzbyB3ZSBzZXQgX1JSZWdMaXN0IHRvIAorCUAvLyB0aGUgcmVnaXN0ZXIgbnVtYmVyLgorCS5tYWNybwlfTV9HRVRSUkVHTElTVAlycmVnCisJLmlmZXFzICJccnJlZyIsICIiCisJQCBOb3RoaW5nIG5lZWRzIHRvIGJlIHNhdmVkCisJLmV4aXRtCisJLmVuZGlmCisJQCBJZiBycmVnIGlzIGxyIG9yIHI0LCBzYXZlIGxyIGFuZCByNAorCS5pZmVxcyAiXHJyZWciLCAibHIiCisJLnNldAlfUlJlZ0xpc3QsIDQKKwkuc2V0CV9SQnl0ZXMsIF9SQnl0ZXMgKyA4CisJLmV4aXRtCisJLmVuZGlmCisKKwkuaWZlcXMgIlxycmVnIiwgInI0IgorCS5zZXQJX1JSZWdMaXN0LCA0CisJLnNldAlfUkJ5dGVzLCBfUkJ5dGVzICsgOAorCS5leGl0bQorCS5lbmRpZgorCisJQCBJZiBycmVnID0gcjUgb3IgcjYsIHNhdmUgdXAgdG8gcmVnaXN0ZXIgcjYKKwkuaWZlcXMgIlxycmVnIiwgInI1IgorCS5zZXQJX1JSZWdMaXN0LCA2CisJLnNldAlfUkJ5dGVzLCBfUkJ5dGVzICsgMTYKKwkuZXhpdG0KKwkuZW5kaWYKKwkuaWZlcXMgIlxycmVnIiwgInI2IgorCS5zZXQJX1JSZWdMaXN0LCA2CisJLnNldAlfUkJ5dGVzLCBfUkJ5dGVzICsgMTYKKwkuZXhpdG0KKwkuZW5kaWYKKworCUAgSWYgcnJlZyA9IHI3IG9yIHI4LCBzYXZlIHVwIHRvIHJlZ2lzdGVyIHI4CisJLmlmZXFzICJccnJlZyIsICJyNyIKKwkuc2V0CV9SUmVnTGlzdCwgOAorCS5zZXQJX1JCeXRlcywgX1JCeXRlcyArIDI0CisJLmV4aXRtCisJLmVuZGlmCisJLmlmZXFzICJccnJlZyIsICJyOCIKKwkuc2V0CV9SUmVnTGlzdCwgOAorCS5zZXQJX1JCeXRlcywgX1JCeXRlcyArIDI0CisJLmV4aXRtCisJLmVuZGlmCisKKwlAIElmIHJyZWcgPSByOSBvciByMTAsIHNhdmUgdXAgdG8gcmVnaXN0ZXIgcjEwCisJLmlmZXFzICJccnJlZyIsICJyOSIKKwkuc2V0CV9SUmVnTGlzdCwgMTAKKwkuc2V0CV9SQnl0ZXMsIF9SQnl0ZXMgKyAzMgorCS5leGl0bQorCS5lbmRpZgorCS5pZmVxcyAiXHJyZWciLCAicjEwIgorCS5zZXQJX1JSZWdMaXN0LCAxMAorCS5zZXQJX1JCeXRlcywgX1JCeXRlcyArIDMyCisJLmV4aXRtCisJLmVuZGlmCisKKwlAIElmIHJyZWcgPSByMTEgb3IgcjEyLCBzYXZlIHVwIHRvIHJlZ2lzdGVyIHIxMgorCS5pZmVxcyAiXHJyZWciLCAicjExIgorCS5zZXQJX1JSZWdMaXN0LCAxMgorCS5zZXQJX1JCeXRlcywgX1JCeXRlcyArIDQwCisJLmV4aXRtCisJLmVuZGlmCisJLmlmZXFzICJccnJlZyIsICJyMTIiCisJLnNldAlfUlJlZ0xpc3QsIDEyCisJLnNldAlfUkJ5dGVzLCBfUkJ5dGVzICsgNDAKKwkuZXhpdG0KKwkuZW5kaWYKKworCS53YXJuaW5nICJVbnJlY29nbml6ZWQgc2F2ZWQgciByZWdpc3RlciBsaW1pdDogXHJyZWciCisJLmVuZG0KKworCUAgV29yayBvdXQgbGlzdCBvZiBEIHNhdmVkIHJlZ2lzdGVycywgbGlrZSBmb3IgUiByZWdpc3RlcnMuCisJLm1hY3JvCV9NX0dFVERSRUdMSVNUIGRyZWcKKwkuaWZlcXMgIlxkcmVnIiwgIiIKKwkuc2V0CV9EUmVnTGlzdCwgMAorCS5leGl0bQorCS5lbmRpZgorCisJLmlmZXFzICJcZHJlZyIsICJkOCIKKwkuc2V0CV9EUmVnTGlzdCwgOAorCS5zZXQJX1JCeXRlcywgX1JCeXRlcyArIDgKKwkuZXhpdG0KKwkuZW5kaWYKKworCS5pZmVxcyAiXGRyZWciLCAiZDkiCisJLnNldAlfRFJlZ0xpc3QsIDkKKwkuc2V0CV9SQnl0ZXMsIF9SQnl0ZXMgKyAxNgorCS5leGl0bQorCS5lbmRpZgorCisJLmlmZXFzICJcZHJlZyIsICJkMTAiCisJLnNldAlfRFJlZ0xpc3QsIDEwCisJLnNldAlfUkJ5dGVzLCBfUkJ5dGVzICsgMjQKKwkuZXhpdG0KKwkuZW5kaWYKKworCS5pZmVxcyAiXGRyZWciLCAiZDExIgorCS5zZXQJX0RSZWdMaXN0LCAxMQorCS5zZXQJX1JCeXRlcywgX1JCeXRlcyArIDMyCisJLmV4aXRtCisJLmVuZGlmCisKKwkuaWZlcXMgIlxkcmVnIiwgImQxMiIKKwkuc2V0CV9EUmVnTGlzdCwgMTIKKwkuc2V0CV9SQnl0ZXMsIF9SQnl0ZXMgKyA0MAorCS5leGl0bQorCS5lbmRpZgorCisJLmlmZXFzICJcZHJlZyIsICJkMTMiCisJLnNldAlfRFJlZ0xpc3QsIDEzCisJLnNldAlfUkJ5dGVzLCBfUkJ5dGVzICsgNDgKKwkuZXhpdG0KKwkuZW5kaWYKKworCS5pZmVxcyAiXGRyZWciLCAiZDE0IgorCS5zZXQJX0RSZWdMaXN0LCAxNAorCS5zZXQJX1JCeXRlcywgX1JCeXRlcyArIDU2CisJLmV4aXRtCisJLmVuZGlmCisKKwkuaWZlcXMgIlxkcmVnIiwgImQxNSIKKwkuc2V0CV9EUmVnTGlzdCwgMTUKKwkuc2V0CV9SQnl0ZXMsIF9SQnl0ZXMgKyA2NAorCS5leGl0bQorCS5lbmRpZgorCisJLndhcm5pbmcgIlVucmVjb2duaXplZCBzYXZlZCBkIHJlZ2lzdGVyIGxpbWl0OiBccnJlZyIKKwkuZW5kbQorCitALy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworQC8vIEZ1bmN0aW9uIGhlYWRlciBhbmQgZm9vdGVyIG1hY3JvcworQC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gICAgICAKKwkKKyAgICAgICAgQCBGdW5jdGlvbiBIZWFkZXIgTWFjcm8gICAgCisgICAgICAgIEAgR2VuZXJhdGVzIHRoZSBmdW5jdGlvbiBwcm9sb2d1ZQorICAgICAgICBAIE5vdGUgdGhhdCBmdW5jdGlvbnMgc2hvdWxkIGFsbCBiZSAic3RhY2stbW92ZXMtb25jZSIKKyAgICAgICAgQCBUaGUgRk5TVEFSVCBhbmQgRk5FTkQgbWFjcm9zIHNob3VsZCBiZSB0aGUgb25seSBwbGFjZXMKKyAgICAgICAgQCB3aGVyZSB0aGUgc3RhY2sgbW92ZXMuCisgICAgICAgIEAgICAgCisgICAgICAgIEAgIG5hbWUgID0gZnVuY3Rpb24gbmFtZQorICAgICAgICBAICBycmVnICA9ICIiICAgZG9uJ3Qgc3RhY2sgYW55IHJlZ2lzdGVycworICAgICAgICBAICAgICAgICAgICJsciIgc3RhY2sgImxyIiBvbmx5CisgICAgICAgIEAgICAgICAgICAgInJOIiBzdGFjayByZWdpc3RlcnMgInI0LXJOLGxyIgorICAgICAgICBAICBkcmVnICA9ICIiICAgZG9uJ3Qgc3RhY2sgYW55IEQgcmVnaXN0ZXJzCisgICAgICAgIEAgICAgICAgICAgImROIiBzdGFjayByZWdpc3RlcnMgImQ4LWROIgorICAgICAgICBACisgICAgICAgIEAgTm90ZTogQVJNIEFyY2hpY3R1cmUgcHJvY2VkdXJlIGNhbGwgc3RhbmRhcmQgQUFQQ1MKKyAgICAgICAgQCBzdGF0ZXMgdGhhdCByNC1yMTEsIHNwLCBkOC1kMTUgbXVzdCBiZSBwcmVzZXJ2ZWQgYnkKKyAgICAgICAgQCBhIGNvbXBsaWFudCBmdW5jdGlvbi4KKwkubWFjcm8JTV9TVEFSVCBuYW1lLCBycmVnLCBkcmVnCisJLnNldAlfUkJ5dGVzLCAwCisJLnNldAlfV29ya3NwYWNlLCAwCisKKwlAIERlZmluZSB0aGUgZnVuY3Rpb24gYW5kIG1ha2UgaXQgZXh0ZXJuYWwuCisJLmdsb2JhbAlcbmFtZQorCS5mdW5jCVxuYW1lCisJLnNlY3Rpb24JLnRleHQuXG5hbWUsImF4IiwlcHJvZ2JpdHMKKwkuYWxpZ24JMgorXG5hbWUgOgkJCisuZm5zdGFydAorCUAgU2F2ZSBzcGVjaWZpZWQgUiByZWdpc3RlcnMKKwlfTV9HRVRSUkVHTElTVAlccnJlZworCV9NX1BVU0hfUlJFRworCisJQCBTYXZlIHNwZWNpZmllZCBEIHJlZ2lzdGVycworICAgICAgICBfTV9HRVREUkVHTElTVCAgXGRyZWcKKwlfTV9QVVNIX0RSRUcKKworCUAgRW5zdXJlIHNpemUgY2xhaW1lZCBvbiBzdGFjayBpcyA4LWJ5dGUgYWxpZ25lZAorCS5pZiAoX1NCeXRlcyAmIDcpICE9IDAKKwkuc2V0CV9TQnl0ZXMsIF9TQnl0ZXMgKyAoOCAtIChfU0J5dGVzICYgNykpCisJLmVuZGlmCisJLmlmIF9TQnl0ZXMgIT0gMAorCQlzdWIJc3AsIHNwLCAjX1NCeXRlcworCS5lbmRpZgkKKwkuZW5kbQorCisgICAgICAgIEAgRnVuY3Rpb24gRm9vdGVyIE1hY3JvICAgICAgICAKKyAgICAgICAgQCBHZW5lcmF0ZXMgdGhlIGZ1bmN0aW9uIGVwaWxvZ3VlCisJLm1hY3JvIE1fRU5ECisJQCBSZXN0b3JlIHRoZSBzdGFjayBwb2ludGVyIHRvIGl0cyBvcmlnaW5hbCB2YWx1ZSBvbiBmdW5jdGlvbiBlbnRyeQorCS5pZiBfU0J5dGVzICE9IDAKKwkJYWRkCXNwLCBzcCwgI19TQnl0ZXMKKwkuZW5kaWYKKwlAIFJlc3RvcmUgYW55IHNhdmVkIFIgb3IgRCByZWdpc3RlcnMuCisJX01fUkVUCisJLmZuZW5kCQorCS5lbmRmdW5jCisgICAgICAgIEAgUmVzZXQgdGhlIGdsb2JhbCBzdGFjayB0cmFja2luZyB2YXJpYWJsZXMgYmFjayB0byB0aGVpcgorCUAgaW5pdGlhbCB2YWx1ZXMuCisJLnNldCBfU0J5dGVzLCAwCisJLmVuZG0KKworCUAvLyBCYXNlZCBvbiB0aGUgdmFsdWUgb2YgX0RSZWdMaXN0LCBwdXNoIHRoZSBzcGVjaWZpZWQgc2V0IG9mIHJlZ2lzdGVycyAKKwlALy8gdG8gdGhlIHN0YWNrLiAgSXMgdGhlcmUgYSBiZXR0ZXIgd2F5PworCS5tYWNybyBfTV9QVVNIX0RSRUcKKwkuaWYgX0RSZWdMaXN0ID09IDgKKwkJdnB1c2gJe2Q4fQorCS5leGl0bQorCS5lbmRpZgorCQorCS5pZiBfRFJlZ0xpc3QgPT0gOQorCQl2cHVzaAl7ZDgtZDl9CisJLmV4aXRtCisJLmVuZGlmCisJCisJLmlmIF9EUmVnTGlzdCA9PSAxMAorCQl2cHVzaAl7ZDgtZDEwfQorCS5leGl0bQorCS5lbmRpZgorCQorCS5pZiBfRFJlZ0xpc3QgPT0gMTEKKwkJdnB1c2gJe2Q4LWQxMX0KKwkuZXhpdG0KKwkuZW5kaWYKKwkKKwkuaWYgX0RSZWdMaXN0ID09IDEyCisJCXZwdXNoCXtkOC1kMTJ9CisJLmV4aXRtCisJLmVuZGlmCisJCisJLmlmIF9EUmVnTGlzdCA9PSAxMworCQl2cHVzaAl7ZDgtZDEzfQorCS5leGl0bQorCS5lbmRpZgorCQorCS5pZiBfRFJlZ0xpc3QgPT0gMTQKKwkJdnB1c2gJe2Q4LWQxNH0KKwkuZXhpdG0KKwkuZW5kaWYKKwkKKwkuaWYgX0RSZWdMaXN0ID09IDE1CisJCXZwdXNoCXtkOC1kMTV9CisJLmV4aXRtCisJLmVuZGlmCisJLmVuZG0KKworCUAvLyBCYXNlZCBvbiB0aGUgdmFsdWUgb2YgX1JSZWdMaXN0LCBwdXNoIHRoZSBzcGVjaWZpZWQgc2V0IG9mIHJlZ2lzdGVycyAKKwlALy8gdG8gdGhlIHN0YWNrLiAgSXMgdGhlcmUgYSBiZXR0ZXIgd2F5PworCS5tYWNybyBfTV9QVVNIX1JSRUcKKwkuaWYgX1JSZWdMaXN0ID09IDQKKwkJc3RtZmQJc3AhLCB7cjQsIGxyfQorCS5leGl0bQorCS5lbmRpZgorCQorCS5pZiBfUlJlZ0xpc3QgPT0gNgorCQlzdG1mZAlzcCEsIHtyNC1yNiwgbHJ9CisJLmV4aXRtCisJLmVuZGlmCisJCisJLmlmIF9SUmVnTGlzdCA9PSA4CisJCXN0bWZkCXNwISwge3I0LXI4LCBscn0KKwkuZXhpdG0KKwkuZW5kaWYKKwkKKwkuaWYgX1JSZWdMaXN0ID09IDEwCisJCXN0bWZkCXNwISwge3I0LXIxMCwgbHJ9CisJLmV4aXRtCisJLmVuZGlmCisJCisJLmlmIF9SUmVnTGlzdCA9PSAxMgorCQlzdG1mZAlzcCEsIHtyNC1yMTIsIGxyfQorCS5leGl0bQorCS5lbmRpZgorCS5lbmRtCisKKwlALy8gVGhlIG9wcG9zaXRlIG9mIF9NX1BVU0hfRFJFRworCS5tYWNybyAgX01fUE9QX0RSRUcKKwkuaWYgX0RSZWdMaXN0ID09IDgKKwkJdnBvcAl7ZDh9CisJLmV4aXRtCisJLmVuZGlmCisJCisJLmlmIF9EUmVnTGlzdCA9PSA5CisJCXZwb3AJe2Q4LWQ5fQorCS5leGl0bQorCS5lbmRpZgorCQorCS5pZiBfRFJlZ0xpc3QgPT0gMTAKKwkJdnBvcAl7ZDgtZDEwfQorCS5leGl0bQorCS5lbmRpZgorCQorCS5pZiBfRFJlZ0xpc3QgPT0gMTEKKwkJdnBvcAl7ZDgtZDExfQorCS5leGl0bQorCS5lbmRpZgorCQorCS5pZiBfRFJlZ0xpc3QgPT0gMTIKKwkJdnBvcAl7ZDgtZDEyfQorCS5leGl0bQorCS5lbmRpZgorCQorCS5pZiBfRFJlZ0xpc3QgPT0gMTMKKwkJdnBvcAl7ZDgtZDEzfQorCS5leGl0bQorCS5lbmRpZgorCQorCS5pZiBfRFJlZ0xpc3QgPT0gMTQKKwkJdnBvcAl7ZDgtZDE0fQorCS5leGl0bQorCS5lbmRpZgorCQorCS5pZiBfRFJlZ0xpc3QgPT0gMTUKKwkJdnBvcAl7ZDgtZDE1fQorCS5leGl0bQorCS5lbmRpZgorCS5lbmRtCisKKwlALy8gVGhlIG9wcG9zaXRlIG9mIF9NX1BVU0hfUlJFRworCS5tYWNybyBfTV9QT1BfUlJFRyBjYworCS5pZiBfUlJlZ0xpc3QgPT0gMAorCQlieFxjYyBscgorCS5leGl0bQorCS5lbmRpZgorCS5pZiBfUlJlZ0xpc3QgPT0gNAorCQlsZG1cY2NcKClmZAlzcCEsIHtyNCwgcGN9CisJLmV4aXRtCisJLmVuZGlmCisJCisJLmlmIF9SUmVnTGlzdCA9PSA2CisJCWxkbVxjY1woKWZkCXNwISwge3I0LXI2LCBwY30KKwkuZXhpdG0KKwkuZW5kaWYKKwkKKwkuaWYgX1JSZWdMaXN0ID09IDgKKwkJbGRtXGNjXCgpZmQJc3AhLCB7cjQtcjgsIHBjfQorCS5leGl0bQorCS5lbmRpZgorCQorCS5pZiBfUlJlZ0xpc3QgPT0gMTAKKwkJbGRtXGNjXCgpZmQJc3AhLCB7cjQtcjEwLCBwY30KKwkuZXhpdG0KKwkuZW5kaWYKKwkKKwkuaWYgX1JSZWdMaXN0ID09IDEyCisJCWxkbVxjY1woKWZkCXNwISwge3I0LXIxMiwgcGN9CisJLmV4aXRtCisJLmVuZGlmCisJLmVuZG0KKwkKKyAgICAgICAgQCBQcm9kdWNlIGZ1bmN0aW9uIHJldHVybiBpbnN0cnVjdGlvbnMKKwkubWFjcm8JX01fUkVUIGNjCisJX01fUE9QX0RSRUcgXGNjCisJX01fUE9QX1JSRUcgXGNjCisJLmVuZG0JCisJCisgICAgICAgIEAvLyBBbGxvY2F0ZSA0LWJ5dGUgYWxpZ25lZCBhcmVhIG9mIG5hbWUKKyAgICAgICAgQC8vIHxuYW1lfCBhbmQgc2l6ZSB8c2l6ZXwgYnl0ZXMuCisJLm1hY3JvCU1fQUxMT0M0IG5hbWUsIHNpemUKKwkuaWYJKF9TQnl0ZXMgJiAzKSAhPSAwCisJLnNldAlfU0J5dGVzLCBfU0J5dGVzICsgKDQgLSAoX1NCeXRlcyAmIDMpKQorCS5lbmRpZgorCS5zZXQJXG5hbWVcKClfRiwgX1NCeXRlcworCS5zZXQJX1NCeXRlcywgX1NCeXRlcyArIFxzaXplCisJCisJLmVuZG0KKworICAgICAgICBAIExvYWQgd29yZCBmcm9tIHN0YWNrCisJLm1hY3JvIE1fTERSIHIsIGEwLCBhMSwgYTIsIGEzCisJX01fREFUQSAibGRyIiwgNCwgXHIsIFxhMCwgXGExLCBcYTIsIFxhMworCS5lbmRtCisKKyAgICAgICAgQCBTdG9yZSB3b3JkIHRvIHN0YWNrCisJLm1hY3JvIE1fU1RSIHIsIGEwLCBhMSwgYTIsIGEzCisJX01fREFUQSAic3RyIiwgNCwgXHIsIFxhMCwgXGExLCBcYTIsIFxhMworCS5lbmRtCisKKyAgICAgICAgQCBNYWNybyB0byBwZXJmb3JtIGEgZGF0YSBhY2Nlc3Mgb3BlcmF0aW9uCisgICAgICAgIEAgU3VjaCBhcyBMRFIgb3IgU1RSCisgICAgICAgIEAgVGhlIGFkZHJlc3NpbmcgbW9kZSBpcyBtb2RpZmllZCBzdWNoIHRoYXQKKyAgICAgICAgQCAxLiBJZiBubyBhZGRyZXNzIGlzIGdpdmVuIHRoZW4gdGhlIG5hbWUgaXMgdGFrZW4KKyAgICAgICAgQCAgICBhcyBhIHN0YWNrIG9mZnNldAorICAgICAgICBAIDIuIElmIHRoZSBhZGRyZXNzaW5nIG1vZGUgaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhlCisgICAgICAgIEAgICAgc3RhdGUgYmVpbmcgYXNzZW1ibGVkIGZvciAoZWcgVGh1bWIpIHRoZW4gYSBzdWl0YWJsZQorICAgICAgICBAICAgIGFkZHJlc3NpbmcgbW9kZSBpcyBzdWJzdGl0dXRlZC4KKyAgICAgICAgQAorICAgICAgICBAIE9uIEVudHJ5OgorICAgICAgICBAICRpID0gSW5zdHJ1Y3Rpb24gdG8gcGVyZm9ybSAoZWcgIkxEUkIiKQorICAgICAgICBAICRhID0gUmVxdWlyZWQgYnl0ZSBhbGlnbm1lbnQKKyAgICAgICAgQCAkciA9IFJlZ2lzdGVyKHMpIHRvIHRyYW5zZmVyIChlZyAicjEiKQorICAgICAgICBAICRhMCwkYTEsJGEyLiBBZGRyZXNzaW5nIG1vZGUgYW5kIGNvbmRpdGlvbi4gT25lIG9mOgorICAgICAgICBAICAgICBsYWJlbCB7LGNjfQorICAgICAgICBAICAgICBbYmFzZV0gICAgICAgICAgICAgICAgICAgIHssLCxjY30KKyAgICAgICAgQCAgICAgW2Jhc2UsIG9mZnNldF17IX0gICAgICAgICB7LCxjY30KKyAgICAgICAgQCAgICAgW2Jhc2UsIG9mZnNldCwgc2hpZnRdeyF9ICB7LGNjfQorICAgICAgICBAICAgICBbYmFzZV0sIG9mZnNldCAgICAgICAgICAgIHssLGNjfQorICAgICAgICBAICAgICBbYmFzZV0sIG9mZnNldCwgc2hpZnQgICAgIHssY2N9CisJQAorCUAgV0FSTklORzogTW9zdCBvZiB0aGUgYWJvdmUgYXJlIG5vdCBzdXBwb3J0ZWQsIGV4Y2VwdCB0aGUgZmlyc3QgY2FzZS4KKwkubWFjcm8gX01fREFUQSBpLCBhLCByLCBhMCwgYTEsIGEyLCBhMworCS5zZXQJX09mZnNldCwgX1dvcmtzcGFjZSArIFxhMFwoKV9GCisJXGlcYTEJXHIsIFtzcCwgI19PZmZzZXRdCQorCS5lbmRtCmRpZmYgLS1naXQgYS9kbC9hcm1PTVguaCBiL2RsL2FybU9NWC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhZDIxYzQKLS0tIC9kZXYvbnVsbAorKysgYi9kbC9hcm1PTVguaApAQCAtMCwwICsxLDI4OSBAQAorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICoKKyAqICBUaGlzIGZpbGUgd2FzIG9yaWdpbmFsbHkgbGljZW5zZWQgYXMgZm9sbG93cy4gSXQgaGFzIGJlZW4KKyAqICByZWxpY2Vuc2VkIHdpdGggcGVybWlzc2lvbiBmcm9tIHRoZSBjb3B5cmlnaHQgaG9sZGVycy4KKyAqLworCisvKiAKKyAqIAorICogRmlsZSBOYW1lOiAgYXJtT01YX1JlbGVhc2VWZXJzaW9uLmgKKyAqIE9wZW5NQVggREw6IHYxLjAuMgorICogTGFzdCBNb2RpZmllZCBSZXZpc2lvbjogICAxNTMyMgorICogTGFzdCBNb2RpZmllZCBEYXRlOiAgICAgICBXZWQsIDE1IE9jdCAyMDA4CisgKiAKKyAqIChjKSBDb3B5cmlnaHQgMjAwNy0yMDA4IEFSTSBMaW1pdGVkLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogCisgKiAKKyAqCisgKiBUaGlzIGZpbGUgYWxsb3dzIGEgdmVyc2lvbiBvZiB0aGUgT01YIERMIGxpYnJhcmllcyB0byBiZSBidWlsdCB3aGVyZSBzb21lIG9yCisgKiBhbGwgb2YgdGhlIGZ1bmN0aW9uIG5hbWVzIGNhbiBiZSBnaXZlbiBhIHVzZXIgc3BlY2lmaWVkIHN1ZmZpeC4gCisgKgorICogWW91IG1pZ2h0IHdhbnQgdG8gdXNlIGl0IHdoZXJlOgorICoKKyAqIC0geW91IHdhbnQgdG8gcmVuYW1lIGEgZnVuY3Rpb24gIm91dCBvZiB0aGUgd2F5IiBzbyB0aGF0IHlvdSBjb3VsZCByZXBsYWNlCisgKiAgIGEgZnVuY3Rpb24gd2l0aCBhIGRpZmZlcmVudCB2ZXJzaW9uICh0aGUgb3JpZ2luYWwgdmVyc2lvbiB3b3VsZCBzdGlsbCBiZQorICogICBpbiB0aGUgbGlicmFyeSBqdXN0IHdpdGggYSBkaWZmZXJlbnQgbmFtZSAtIHNvIHlvdSBjb3VsZCBkZWJ1ZyB0aGUgbmV3CisgKiAgIHZlcnNpb24gYnkgY29tcGFyaW5nIGl0IHRvIHRoZSBvdXRwdXQgb2YgdGhlIG9sZCkKKyAqCisgKiAtIHlvdSB3YW50IHRvIHJlbmFtZSBhbGwgdGhlIGZ1bmN0aW9ucyB0byB2ZXJzaW9ucyB3aXRoIGEgc3VmZml4IHNvIHRoYXQgCisgKiAgIHlvdSBjYW4gaW5jbHVkZSB0d28gdmVyc2lvbnMgb2YgdGhlIGxpYnJhcnkgYW5kIGNob29zZSBiZXR3ZWVuIGZ1bmN0aW9ucworICogICBhdCBydW50aW1lLgorICoKKyAqICAgICBlLmcuIG9teElQQk1fQ29weV9VOF9DMVIgY291bGQgYmUgcmVuYW1lZCBvbXhJUEJNX0NvcHlfVThfQzFSX0NvcnRleEE4CisgKiAKKyAqLworCisgIAorI2lmbmRlZiBfYXJtT01YX0hfCisjZGVmaW5lIF9hcm1PTVhfSF8KKworI2RlZmluZSBBUk1PTVhfRU5BQkxFX1JFTkFNSU5HIDAKKyNpZiBBUk1PTVhfRU5BQkxFX1JFTkFNSU5HCisKKy8qIFdlIG5lZWQgdG8gZGVmaW5lIHRoZXNlIHR3byBtYWNyb3MgaW4gb3JkZXIgdG8gZXhwYW5kIGFuZCBjb25jYXRlbmF0ZSB0aGUgbmFtZXMgKi8KKyNkZWZpbmUgT01YQ0FUMkJBUihBLCBCKSBvbXggIyMgQSAjIyBCCisjZGVmaW5lIE9NWENBVEJBUihBLCBCKSBPTVhDQVQyQkFSKEEsIEIpCisKKy8qIERlZmluZSB0aGUgc3VmZml4IHRvIGFkZCB0byBhbGwgZnVuY3Rpb25zIC0gdGhlIGRlZmF1bHQgaXMgbm8gc3VmZml4ICovCisjZGVmaW5lIEJBUkVfU1VGRklYIAorCisKKworLyogRGVmaW5lIHdoYXQgaGFwcGVucyB0byB0aGUgYmFyZSBzdWZmaXgtbGVzcyBmdW5jdGlvbnMsIGRvd24gdG8gdGhlIHN1Yi1kb21haW4gYWNjdXJhY3kgKi8KKyNkZWZpbmUgT01YQUNBQUNfU1VGRklYICAgIEJBUkVfU1VGRklYICAgCisjZGVmaW5lIE9NWEFDTVAzX1NVRkZJWCAgICBCQVJFX1NVRkZJWAorI2RlZmluZSBPTVhJQ0pQX1NVRkZJWCAgICAgQkFSRV9TVUZGSVgKKyNkZWZpbmUgT01YSVBCTV9TVUZGSVggICAgIEJBUkVfU1VGRklYCisjZGVmaW5lIE9NWElQQ1NfU1VGRklYICAgICBCQVJFX1NVRkZJWAorI2RlZmluZSBPTVhJUFBQX1NVRkZJWCAgICAgQkFSRV9TVUZGSVgKKyNkZWZpbmUgT01YU1BfU1VGRklYICAgICAgIEJBUkVfU1VGRklYCisjZGVmaW5lIE9NWFZDQ09NTV9TVUZGSVggICBCQVJFX1NVRkZJWAorI2RlZmluZSBPTVhWQ000UDEwX1NVRkZJWCAgQkFSRV9TVUZGSVgKKyNkZWZpbmUgT01YVkNNNFAyX1NVRkZJWCAgIEJBUkVfU1VGRklYCisKKworCisKKy8qIERlZmluZSB3aGF0IHRoZSBlYWNoIGJhcmUsIHVuLXN1ZmZpeGVkIE9wZW5NQVggQVBJIGZ1bmN0aW9uIG5hbWVzIGlzIHRvIGJlIHJlbmFtZWQgKi8KKyNkZWZpbmUgb214QUNBQUNfRGVjb2RlQ2hhblBhaXJFbHQgICAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoQUNBQUNfRGVjb2RlQ2hhblBhaXJFbHQsIE9NWEFDQUFDX1NVRkZJWCkKKyNkZWZpbmUgb214QUNBQUNfRGVjb2RlRGF0U3RyRWx0ICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoQUNBQUNfRGVjb2RlRGF0U3RyRWx0LCBPTVhBQ0FBQ19TVUZGSVgpCisjZGVmaW5lIG9teEFDQUFDX0RlY29kZUZpbGxFbHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKEFDQUFDX0RlY29kZUZpbGxFbHQsIE9NWEFDQUFDX1NVRkZJWCkKKyNkZWZpbmUgb214QUNBQUNfRGVjb2RlSXNTdGVyZW9fUzMyICAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoQUNBQUNfRGVjb2RlSXNTdGVyZW9fUzMyLCBPTVhBQ0FBQ19TVUZGSVgpCisjZGVmaW5lIG9teEFDQUFDX0RlY29kZU1zUE5TX1MzMl9JICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKEFDQUFDX0RlY29kZU1zUE5TX1MzMl9JLCBPTVhBQ0FBQ19TVUZGSVgpCisjZGVmaW5lIG9teEFDQUFDX0RlY29kZU1zU3RlcmVvX1MzMl9JICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKEFDQUFDX0RlY29kZU1zU3RlcmVvX1MzMl9JLCBPTVhBQ0FBQ19TVUZGSVgpCisjZGVmaW5lIG9teEFDQUFDX0RlY29kZVByZ0NmZ0VsdCAgICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKEFDQUFDX0RlY29kZVByZ0NmZ0VsdCwgT01YQUNBQUNfU1VGRklYKQorI2RlZmluZSBvbXhBQ0FBQ19EZWNvZGVUTlNfUzMyX0kgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihBQ0FBQ19EZWNvZGVUTlNfUzMyX0ksIE9NWEFDQUFDX1NVRkZJWCkKKyNkZWZpbmUgb214QUNBQUNfRGVpbnRlcmxlYXZlU3BlY3RydW1fUzMyICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoQUNBQUNfRGVpbnRlcmxlYXZlU3BlY3RydW1fUzMyLCBPTVhBQ0FBQ19TVUZGSVgpCisjZGVmaW5lIG9teEFDQUFDX0VuY29kZVROU19TMzJfSSAgICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKEFDQUFDX0VuY29kZVROU19TMzJfSSwgT01YQUNBQUNfU1VGRklYKQorI2RlZmluZSBvbXhBQ0FBQ19Mb25nVGVybVByZWRpY3RfUzMyICAgICAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihBQ0FBQ19Mb25nVGVybVByZWRpY3RfUzMyLCBPTVhBQ0FBQ19TVUZGSVgpCisjZGVmaW5lIG9teEFDQUFDX0xvbmdUZXJtUmVjb25zdHJ1Y3RfUzMyX0kgICAgICAgICAgICAgICAgT01YQ0FUQkFSKEFDQUFDX0xvbmdUZXJtUmVjb25zdHJ1Y3RfUzMyX0ksIE9NWEFDQUFDX1NVRkZJWCkKKyNkZWZpbmUgb214QUNBQUNfTURDVEZ3ZF9TMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoQUNBQUNfTURDVEZ3ZF9TMzIsIE9NWEFDQUFDX1NVRkZJWCkKKyNkZWZpbmUgb214QUNBQUNfTURDVEludl9TMzJfUzE2ICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoQUNBQUNfTURDVEludl9TMzJfUzE2LCBPTVhBQ0FBQ19TVUZGSVgpCisjZGVmaW5lIG9teEFDQUFDX05vaXNlbGVzc0RlY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKEFDQUFDX05vaXNlbGVzc0RlY29kZSwgT01YQUNBQUNfU1VGRklYKQorI2RlZmluZSBvbXhBQ0FBQ19RdWFudEludl9TMzJfSSAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihBQ0FBQ19RdWFudEludl9TMzJfSSwgT01YQUNBQUNfU1VGRklYKQorI2RlZmluZSBvbXhBQ0FBQ19VbnBhY2tBRElGSGVhZGVyICAgICAgICAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihBQ0FBQ19VbnBhY2tBRElGSGVhZGVyLCBPTVhBQ0FBQ19TVUZGSVgpCisjZGVmaW5lIG9teEFDQUFDX1VucGFja0FEVFNGcmFtZUhlYWRlciAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKEFDQUFDX1VucGFja0FEVFNGcmFtZUhlYWRlciwgT01YQUNBQUNfU1VGRklYKQorCisKKyNkZWZpbmUgb214QUNNUDNfSHVmZm1hbkRlY29kZV9TMzIgICAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoQUNNUDNfSHVmZm1hbkRlY29kZV9TMzIsIE9NWEFDTVAzX1NVRkZJWCkKKyNkZWZpbmUgb214QUNNUDNfSHVmZm1hbkRlY29kZVNmYl9TMzIgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoQUNNUDNfSHVmZm1hbkRlY29kZVNmYl9TMzIsIE9NWEFDTVAzX1NVRkZJWCkKKyNkZWZpbmUgb214QUNNUDNfSHVmZm1hbkRlY29kZVNmYk1icF9TMzIgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoQUNNUDNfSHVmZm1hbkRlY29kZVNmYk1icF9TMzIsIE9NWEFDTVAzX1NVRkZJWCkKKyNkZWZpbmUgb214QUNNUDNfTURDVEludl9TMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoQUNNUDNfTURDVEludl9TMzIsIE9NWEFDTVAzX1NVRkZJWCkKKyNkZWZpbmUgb214QUNNUDNfUmVRdWFudGl6ZV9TMzJfSSAgICAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoQUNNUDNfUmVRdWFudGl6ZV9TMzJfSSwgT01YQUNNUDNfU1VGRklYKQorI2RlZmluZSBvbXhBQ01QM19SZVF1YW50aXplU2ZiX1MzMl9JICAgICAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihBQ01QM19SZVF1YW50aXplU2ZiX1MzMl9JLCBPTVhBQ01QM19TVUZGSVgpCisjZGVmaW5lIG9teEFDTVAzX1N5bnRoUFFNRl9TMzJfUzE2ICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKEFDTVAzX1N5bnRoUFFNRl9TMzJfUzE2LCBPTVhBQ01QM19TVUZGSVgpCisjZGVmaW5lIG9teEFDTVAzX1VucGFja0ZyYW1lSGVhZGVyICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKEFDTVAzX1VucGFja0ZyYW1lSGVhZGVyLCBPTVhBQ01QM19TVUZGSVgpCisjZGVmaW5lIG9teEFDTVAzX1VucGFja1NjYWxlRmFjdG9yc19TOCAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKEFDTVAzX1VucGFja1NjYWxlRmFjdG9yc19TOCwgT01YQUNNUDNfU1VGRklYKQorI2RlZmluZSBvbXhBQ01QM19VbnBhY2tTaWRlSW5mbyAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihBQ01QM19VbnBhY2tTaWRlSW5mbywgT01YQUNNUDNfU1VGRklYKQorCisjZGVmaW5lIG9teElDSlBfQ29weUV4cGFuZF9VOF9DMyAgICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKElDSlBfQ29weUV4cGFuZF9VOF9DMywgT01YSUNKUF9TVUZGSVgpCisjZGVmaW5lIG9teElDSlBfRENURndkX1MxNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKElDSlBfRENURndkX1MxNiwgT01YSUNKUF9TVUZGSVgpCisjZGVmaW5lIG9teElDSlBfRENURndkX1MxNl9JICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKElDSlBfRENURndkX1MxNl9JLCBPTVhJQ0pQX1NVRkZJWCkKKyNkZWZpbmUgb214SUNKUF9EQ1RJbnZfUzE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoSUNKUF9EQ1RJbnZfUzE2LCBPTVhJQ0pQX1NVRkZJWCkKKyNkZWZpbmUgb214SUNKUF9EQ1RJbnZfUzE2X0kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoSUNKUF9EQ1RJbnZfUzE2X0ksIE9NWElDSlBfU1VGRklYKQorI2RlZmluZSBvbXhJQ0pQX0RDVFF1YW50RndkX011bHRpcGxlX1MxNiAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihJQ0pQX0RDVFF1YW50RndkX011bHRpcGxlX1MxNiwgT01YSUNKUF9TVUZGSVgpCisjZGVmaW5lIG9teElDSlBfRENUUXVhbnRGd2RfUzE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKElDSlBfRENUUXVhbnRGd2RfUzE2LCBPTVhJQ0pQX1NVRkZJWCkKKyNkZWZpbmUgb214SUNKUF9EQ1RRdWFudEZ3ZF9TMTZfSSAgICAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoSUNKUF9EQ1RRdWFudEZ3ZF9TMTZfSSwgT01YSUNKUF9TVUZGSVgpCisjZGVmaW5lIG9teElDSlBfRENUUXVhbnRGd2RUYWJsZUluaXQgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKElDSlBfRENUUXVhbnRGd2RUYWJsZUluaXQsIE9NWElDSlBfU1VGRklYKQorI2RlZmluZSBvbXhJQ0pQX0RDVFF1YW50SW52X011bHRpcGxlX1MxNiAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihJQ0pQX0RDVFF1YW50SW52X011bHRpcGxlX1MxNiwgT01YSUNKUF9TVUZGSVgpCisjZGVmaW5lIG9teElDSlBfRENUUXVhbnRJbnZfUzE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKElDSlBfRENUUXVhbnRJbnZfUzE2LCBPTVhJQ0pQX1NVRkZJWCkKKyNkZWZpbmUgb214SUNKUF9EQ1RRdWFudEludl9TMTZfSSAgICAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoSUNKUF9EQ1RRdWFudEludl9TMTZfSSwgT01YSUNKUF9TVUZGSVgpCisjZGVmaW5lIG9teElDSlBfRENUUXVhbnRJbnZUYWJsZUluaXQgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKElDSlBfRENUUXVhbnRJbnZUYWJsZUluaXQsIE9NWElDSlBfU1VGRklYKQorI2RlZmluZSBvbXhJQ0pQX0RlY29kZUh1ZmZtYW44eDhfRGlyZWN0X1MxNl9DMSAgICAgICAgICAgIE9NWENBVEJBUihJQ0pQX0RlY29kZUh1ZmZtYW44eDhfRGlyZWN0X1MxNl9DMSwgT01YSUNKUF9TVUZGSVgpCisjZGVmaW5lIG9teElDSlBfRGVjb2RlSHVmZm1hblNwZWNHZXRCdWZTaXplX1U4ICAgICAgICAgICAgT01YQ0FUQkFSKElDSlBfRGVjb2RlSHVmZm1hblNwZWNHZXRCdWZTaXplX1U4LCBPTVhJQ0pQX1NVRkZJWCkKKyNkZWZpbmUgb214SUNKUF9EZWNvZGVIdWZmbWFuU3BlY0luaXRfVTggICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoSUNKUF9EZWNvZGVIdWZmbWFuU3BlY0luaXRfVTgsIE9NWElDSlBfU1VGRklYKQorI2RlZmluZSBvbXhJQ0pQX0VuY29kZUh1ZmZtYW44eDhfRGlyZWN0X1MxNl9VMV9DMSAgICAgICAgIE9NWENBVEJBUihJQ0pQX0VuY29kZUh1ZmZtYW44eDhfRGlyZWN0X1MxNl9VMV9DMSwgT01YSUNKUF9TVUZGSVgpCisjZGVmaW5lIG9teElDSlBfRW5jb2RlSHVmZm1hblNwZWNHZXRCdWZTaXplX1U4ICAgICAgICAgICAgT01YQ0FUQkFSKElDSlBfRW5jb2RlSHVmZm1hblNwZWNHZXRCdWZTaXplX1U4LCBPTVhJQ0pQX1NVRkZJWCkKKyNkZWZpbmUgb214SUNKUF9FbmNvZGVIdWZmbWFuU3BlY0luaXRfVTggICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoSUNKUF9FbmNvZGVIdWZmbWFuU3BlY0luaXRfVTgsIE9NWElDSlBfU1VGRklYKQorCisjZGVmaW5lIG9teElQQk1fQWRkQ19VOF9DMVJfU2ZzICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKElQQk1fQWRkQ19VOF9DMVJfU2ZzLCBPTVhJUEJNX1NVRkZJWCkKKyNkZWZpbmUgb214SVBCTV9Db3B5X1U4X0MxUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoSVBCTV9Db3B5X1U4X0MxUiwgT01YSVBCTV9TVUZGSVgpCisjZGVmaW5lIG9teElQQk1fQ29weV9VOF9DM1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKElQQk1fQ29weV9VOF9DM1IsIE9NWElQQk1fU1VGRklYKQorI2RlZmluZSBvbXhJUEJNX01pcnJvcl9VOF9DMVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihJUEJNX01pcnJvcl9VOF9DMVIsIE9NWElQQk1fU1VGRklYKQorI2RlZmluZSBvbXhJUEJNX011bENfVThfQzFSX1NmcyAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihJUEJNX011bENfVThfQzFSX1NmcywgT01YSVBCTV9TVUZGSVgpCisKKyNkZWZpbmUgb214SVBDU19Db2xvclR3aXN0UTE0X1U4X0MzUiAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoSVBDU19Db2xvclR3aXN0UTE0X1U4X0MzUiwgT01YSVBDU19TVUZGSVgpCisjZGVmaW5lIG9teElQQ1NfQkdSNTY1VG9ZQ2JDcjQyMExTX01DVV9VMTZfUzE2X0MzUDNSICAgICAgT01YQ0FUQkFSKElQQ1NfQkdSNTY1VG9ZQ2JDcjQyMExTX01DVV9VMTZfUzE2X0MzUDNSLCBPTVhJUENTX1NVRkZJWCkKKyNkZWZpbmUgb214SVBDU19CR1I1NjVUb1lDYkNyNDIyTFNfTUNVX1UxNl9TMTZfQzNQM1IgICAgICBPTVhDQVRCQVIoSVBDU19CR1I1NjVUb1lDYkNyNDIyTFNfTUNVX1UxNl9TMTZfQzNQM1IsIE9NWElQQ1NfU1VGRklYKQorI2RlZmluZSBvbXhJUENTX0JHUjU2NVRvWUNiQ3I0NDRMU19NQ1VfVTE2X1MxNl9DM1AzUiAgICAgIE9NWENBVEJBUihJUENTX0JHUjU2NVRvWUNiQ3I0NDRMU19NQ1VfVTE2X1MxNl9DM1AzUiwgT01YSVBDU19TVUZGSVgpCisjZGVmaW5lIG9teElQQ1NfQkdSODg4VG9ZQ2JDcjQyMExTX01DVV9VOF9TMTZfQzNQM1IgICAgICAgT01YQ0FUQkFSKElQQ1NfQkdSODg4VG9ZQ2JDcjQyMExTX01DVV9VOF9TMTZfQzNQM1IsIE9NWElQQ1NfU1VGRklYKQorI2RlZmluZSBvbXhJUENTX0JHUjg4OFRvWUNiQ3I0MjJMU19NQ1VfVThfUzE2X0MzUDNSICAgICAgIE9NWENBVEJBUihJUENTX0JHUjg4OFRvWUNiQ3I0MjJMU19NQ1VfVThfUzE2X0MzUDNSLCBPTVhJUENTX1NVRkZJWCkKKyNkZWZpbmUgb214SVBDU19CR1I4ODhUb1lDYkNyNDQ0TFNfTUNVX1U4X1MxNl9DM1AzUiAgICAgICBPTVhDQVRCQVIoSVBDU19CR1I4ODhUb1lDYkNyNDQ0TFNfTUNVX1U4X1MxNl9DM1AzUiwgT01YSVBDU19TVUZGSVgpCisjZGVmaW5lIG9teElQQ1NfWUNiQ3I0MjBSc3pDc2NSb3RCR1JfVThfUDNDM1IgICAgICAgICAgICAgT01YQ0FUQkFSKElQQ1NfWUNiQ3I0MjBSc3pDc2NSb3RCR1JfVThfUDNDM1IsIE9NWElQQ1NfU1VGRklYKQorI2RlZmluZSBvbXhJUENTX1lDYkNyNDIwUnN6Um90X1U4X1AzUiAgICAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihJUENTX1lDYkNyNDIwUnN6Um90X1U4X1AzUiwgT01YSVBDU19TVUZGSVgpCisjZGVmaW5lIG9teElQQ1NfWUNiQ3I0MjBUb0JHUjU2NV9VOF9VMTZfUDNDM1IgICAgICAgICAgICAgT01YQ0FUQkFSKElQQ1NfWUNiQ3I0MjBUb0JHUjU2NV9VOF9VMTZfUDNDM1IsIE9NWElQQ1NfU1VGRklYKQorI2RlZmluZSBvbXhJUENTX1lDYkNyNDIwVG9CR1I1NjVMU19NQ1VfUzE2X1UxNl9QM0MzUiAgICAgIE9NWENBVEJBUihJUENTX1lDYkNyNDIwVG9CR1I1NjVMU19NQ1VfUzE2X1UxNl9QM0MzUiwgT01YSVBDU19TVUZGSVgpCisjZGVmaW5lIG9teElQQ1NfWUNiQ3I0MjBUb0JHUjg4OExTX01DVV9TMTZfVThfUDNDM1IgICAgICAgT01YQ0FUQkFSKElQQ1NfWUNiQ3I0MjBUb0JHUjg4OExTX01DVV9TMTZfVThfUDNDM1IsIE9NWElQQ1NfU1VGRklYKQorI2RlZmluZSBvbXhJUENTX1lDYkNyNDIyUnN6Q3NjUm90QkdSX1U4X1AzQzNSICAgICAgICAgICAgIE9NWENBVEJBUihJUENTX1lDYkNyNDIyUnN6Q3NjUm90QkdSX1U4X1AzQzNSLCBPTVhJUENTX1NVRkZJWCkKKyNkZWZpbmUgb214SVBDU19DYllDclk0MjJSc3pDc2NSb3RCR1JfVThfVTE2X0MyUiAgICAgICAgICBPTVhDQVRCQVIoSVBDU19DYllDclk0MjJSc3pDc2NSb3RCR1JfVThfVTE2X0MyUiwgT01YSVBDU19TVUZGSVgpCisjZGVmaW5lIG9teElQQ1NfWUNiQ3I0MjJSc3pSb3RfVThfUDNSICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKElQQ1NfWUNiQ3I0MjJSc3pSb3RfVThfUDNSLCBPTVhJUENTX1NVRkZJWCkKKyNkZWZpbmUgb214SVBDU19ZQ2JZQ3I0MjJUb0JHUjU2NV9VOF9VMTZfQzJDM1IgICAgICAgICAgICBPTVhDQVRCQVIoSVBDU19ZQ2JZQ3I0MjJUb0JHUjU2NV9VOF9VMTZfQzJDM1IsIE9NWElQQ1NfU1VGRklYKQorI2RlZmluZSBvbXhJUENTX1lDYkNyNDIyVG9CR1I1NjVMU19NQ1VfUzE2X1UxNl9QM0MzUiAgICAgIE9NWENBVEJBUihJUENTX1lDYkNyNDIyVG9CR1I1NjVMU19NQ1VfUzE2X1UxNl9QM0MzUiwgT01YSVBDU19TVUZGSVgpCisjZGVmaW5lIG9teElQQ1NfWUNiWUNyNDIyVG9CR1I4ODhfVThfQzJDM1IgICAgICAgICAgICAgICAgT01YQ0FUQkFSKElQQ1NfWUNiWUNyNDIyVG9CR1I4ODhfVThfQzJDM1IsIE9NWElQQ1NfU1VGRklYKQorI2RlZmluZSBvbXhJUENTX1lDYkNyNDIyVG9CR1I4ODhMU19NQ1VfUzE2X1U4X1AzQzNSICAgICAgIE9NWENBVEJBUihJUENTX1lDYkNyNDIyVG9CR1I4ODhMU19NQ1VfUzE2X1U4X1AzQzNSLCBPTVhJUENTX1NVRkZJWCkKKyNkZWZpbmUgb214SVBDU19ZQ2JDcjQyMlRvQkdSODg4TFNfTUNVX1MxNl9VOF9QM0MzUiAgICAgICBPTVhDQVRCQVIoSVBDU19ZQ2JDcjQyMlRvQkdSODg4TFNfTUNVX1MxNl9VOF9QM0MzUiwgT01YSVBDU19TVUZGSVgpCisjZGVmaW5lIG9teElQQ1NfQ2JZQ3JZNDIyVG9ZQ2JDcjQyMFJvdGF0ZV9VOF9DMlAzUiAgICAgICAgT01YQ0FUQkFSKElQQ1NfQ2JZQ3JZNDIyVG9ZQ2JDcjQyMFJvdGF0ZV9VOF9DMlAzUiwgT01YSVBDU19TVUZGSVgpCisjZGVmaW5lIG9teElQQ1NfWUNiQ3I0MjJUb1lDYkNyNDIwUm90YXRlX1U4X1AzUiAgICAgICAgICAgT01YQ0FUQkFSKElQQ1NfWUNiQ3I0MjJUb1lDYkNyNDIwUm90YXRlX1U4X1AzUiwgT01YSVBDU19TVUZGSVgpCisjZGVmaW5lIG9teElQQ1NfWUNiQ3I0NDRUb0JHUjU2NV9VOF9VMTZfQzNSICAgICAgICAgICAgICAgT01YQ0FUQkFSKElQQ1NfWUNiQ3I0NDRUb0JHUjU2NV9VOF9VMTZfQzNSLCBPTVhJUENTX1NVRkZJWCkKKyNkZWZpbmUgb214SVBDU19ZQ2JDcjQ0NFRvQkdSNTY1X1U4X1UxNl9QM0MzUiAgICAgICAgICAgICBPTVhDQVRCQVIoSVBDU19ZQ2JDcjQ0NFRvQkdSNTY1X1U4X1UxNl9QM0MzUiwgT01YSVBDU19TVUZGSVgpCisjZGVmaW5lIG9teElQQ1NfWUNiQ3I0NDRUb0JHUjU2NUxTX01DVV9TMTZfVTE2X1AzQzNSICAgICAgT01YQ0FUQkFSKElQQ1NfWUNiQ3I0NDRUb0JHUjU2NUxTX01DVV9TMTZfVTE2X1AzQzNSLCBPTVhJUENTX1NVRkZJWCkKKyNkZWZpbmUgb214SVBDU19ZQ2JDcjQ0NFRvQkdSODg4X1U4X0MzUiAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoSVBDU19ZQ2JDcjQ0NFRvQkdSODg4X1U4X0MzUiwgT01YSVBDU19TVUZGSVgpCisKKyNkZWZpbmUgb214SVBQUF9EZWJsb2NrX0hvckVkZ2VfVThfSSAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoSVBQUF9EZWJsb2NrX0hvckVkZ2VfVThfSSwgT01YSVBQUF9TVUZGSVgpCisjZGVmaW5lIG9teElQUFBfRGVibG9ja19WZXJFZGdlX1U4X0kgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKElQUFBfRGVibG9ja19WZXJFZGdlX1U4X0ksIE9NWElQUFBfU1VGRklYKQorI2RlZmluZSBvbXhJUFBQX0ZpbHRlckZJUl9VOF9DMVIgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihJUFBQX0ZpbHRlckZJUl9VOF9DMVIsIE9NWElQUFBfU1VGRklYKQorI2RlZmluZSBvbXhJUFBQX0ZpbHRlck1lZGlhbl9VOF9DMVIgICAgICAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihJUFBQX0ZpbHRlck1lZGlhbl9VOF9DMVIsIE9NWElQUFBfU1VGRklYKQorI2RlZmluZSBvbXhJUFBQX0dldENlbnRyYWxNb21lbnRfUzY0ICAgICAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihJUFBQX0dldENlbnRyYWxNb21lbnRfUzY0LCBPTVhJUFBQX1NVRkZJWCkKKyNkZWZpbmUgb214SVBQUF9HZXRTcGF0aWFsTW9tZW50X1M2NCAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoSVBQUF9HZXRTcGF0aWFsTW9tZW50X1M2NCwgT01YSVBQUF9TVUZGSVgpCisjZGVmaW5lIG9teElQUFBfTW9tZW50R2V0U3RhdGVTaXplICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKElQUFBfTW9tZW50R2V0U3RhdGVTaXplLCBPTVhJUFBQX1NVRkZJWCkKKyNkZWZpbmUgb214SVBQUF9Nb21lbnRJbml0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoSVBQUF9Nb21lbnRJbml0LCBPTVhJUFBQX1NVRkZJWCkKKyNkZWZpbmUgb214SVBQUF9Nb21lbnRzX1U4X0MxUiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoSVBQUF9Nb21lbnRzX1U4X0MxUiwgT01YSVBQUF9TVUZGSVgpCisjZGVmaW5lIG9teElQUFBfTW9tZW50c19VOF9DM1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKElQUFBfTW9tZW50c19VOF9DM1IsIE9NWElQUFBfU1VGRklYKQorCisjZGVmaW5lIG9teFNQX0Jsb2NrRXhwX1MxNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFNQX0Jsb2NrRXhwX1MxNiwgT01YU1BfU1VGRklYKQorI2RlZmluZSBvbXhTUF9CbG9ja0V4cF9TMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihTUF9CbG9ja0V4cF9TMzIsIE9NWFNQX1NVRkZJWCkKKyNkZWZpbmUgb214U1BfQ29weV9TMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoU1BfQ29weV9TMTYsIE9NWFNQX1NVRkZJWCkKKyNkZWZpbmUgb214U1BfRG90UHJvZF9TMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoU1BfRG90UHJvZF9TMTYsIE9NWFNQX1NVRkZJWCkKKyNkZWZpbmUgb214U1BfRG90UHJvZF9TMTZfU2ZzICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoU1BfRG90UHJvZF9TMTZfU2ZzLCBPTVhTUF9TVUZGSVgpCisjZGVmaW5lIG9teFNQX0ZGVEZ3ZF9DVG9DX1NDMTZfU2ZzICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFNQX0ZGVEZ3ZF9DVG9DX1NDMTZfU2ZzLCBPTVhTUF9TVUZGSVgpCisjZGVmaW5lIG9teFNQX0ZGVEZ3ZF9DVG9DX1NDMzJfU2ZzICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFNQX0ZGVEZ3ZF9DVG9DX1NDMzJfU2ZzLCBPTVhTUF9TVUZGSVgpCisjZGVmaW5lIG9teFNQX0ZGVEZ3ZF9SVG9DQ1NfUzE2UzMyX1NmcyAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFNQX0ZGVEZ3ZF9SVG9DQ1NfUzE2UzMyX1NmcywgT01YU1BfU1VGRklYKQorI2RlZmluZSBvbXhTUF9GRlRGd2RfUlRvQ0NTX1MzMl9TZnMgICAgICAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihTUF9GRlRGd2RfUlRvQ0NTX1MzMl9TZnMsIE9NWFNQX1NVRkZJWCkKKyNkZWZpbmUgb214U1BfRkZUR2V0QnVmU2l6ZV9DX1NDMTYgICAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoU1BfRkZUR2V0QnVmU2l6ZV9DX1NDMTYsIE9NWFNQX1NVRkZJWCkKKyNkZWZpbmUgb214U1BfRkZUR2V0QnVmU2l6ZV9DX1NDMzIgICAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoU1BfRkZUR2V0QnVmU2l6ZV9DX1NDMzIsIE9NWFNQX1NVRkZJWCkKKyNkZWZpbmUgb214U1BfRkZUR2V0QnVmU2l6ZV9SX1MxNlMzMiAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoU1BfRkZUR2V0QnVmU2l6ZV9SX1MxNlMzMiwgT01YU1BfU1VGRklYKQorI2RlZmluZSBvbXhTUF9GRlRHZXRCdWZTaXplX1JfUzMyICAgICAgICAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihTUF9GRlRHZXRCdWZTaXplX1JfUzMyLCBPTVhTUF9TVUZGSVgpCisjZGVmaW5lIG9teFNQX0ZGVEluaXRfQ19TQzE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFNQX0ZGVEluaXRfQ19TQzE2LCBPTVhTUF9TVUZGSVgpCisjZGVmaW5lIG9teFNQX0ZGVEluaXRfQ19TQzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFNQX0ZGVEluaXRfQ19TQzMyLCBPTVhTUF9TVUZGSVgpCisjZGVmaW5lIG9teFNQX0ZGVEluaXRfUl9TMTZTMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFNQX0ZGVEluaXRfUl9TMTZTMzIsIE9NWFNQX1NVRkZJWCkKKyNkZWZpbmUgb214U1BfRkZUSW5pdF9SX1MzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoU1BfRkZUSW5pdF9SX1MzMiwgT01YU1BfU1VGRklYKQorI2RlZmluZSBvbXhTUF9GRlRJbnZfQ0NTVG9SX1MzMl9TZnMgICAgICAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihTUF9GRlRJbnZfQ0NTVG9SX1MzMl9TZnMsIE9NWFNQX1NVRkZJWCkKKyNkZWZpbmUgb214U1BfRkZUSW52X0NDU1RvUl9TMzJTMTZfU2ZzICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoU1BfRkZUSW52X0NDU1RvUl9TMzJTMTZfU2ZzLCBPTVhTUF9TVUZGSVgpCisjZGVmaW5lIG9teFNQX0ZGVEludl9DVG9DX1NDMTZfU2ZzICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFNQX0ZGVEludl9DVG9DX1NDMTZfU2ZzLCBPTVhTUF9TVUZGSVgpCisjZGVmaW5lIG9teFNQX0ZGVEludl9DVG9DX1NDMzJfU2ZzICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFNQX0ZGVEludl9DVG9DX1NDMzJfU2ZzLCBPTVhTUF9TVUZGSVgpCisjZGVmaW5lIG9teFNQX0ZpbHRlck1lZGlhbl9TMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFNQX0ZpbHRlck1lZGlhbl9TMzIsIE9NWFNQX1NVRkZJWCkKKyNkZWZpbmUgb214U1BfRmlsdGVyTWVkaWFuX1MzMl9JICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoU1BfRmlsdGVyTWVkaWFuX1MzMl9JLCBPTVhTUF9TVUZGSVgpCisjZGVmaW5lIG9teFNQX0ZJUl9EaXJlY3RfUzE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFNQX0ZJUl9EaXJlY3RfUzE2LCBPTVhTUF9TVUZGSVgpCisjZGVmaW5lIG9teFNQX0ZJUl9EaXJlY3RfUzE2X0kgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFNQX0ZJUl9EaXJlY3RfUzE2X0ksIE9NWFNQX1NVRkZJWCkKKyNkZWZpbmUgb214U1BfRklSX0RpcmVjdF9TMTZfSVNmcyAgICAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoU1BfRklSX0RpcmVjdF9TMTZfSVNmcywgT01YU1BfU1VGRklYKQorI2RlZmluZSBvbXhTUF9GSVJfRGlyZWN0X1MxNl9TZnMgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihTUF9GSVJfRGlyZWN0X1MxNl9TZnMsIE9NWFNQX1NVRkZJWCkKKyNkZWZpbmUgb214U1BfRklST25lX0RpcmVjdF9TMTYgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoU1BfRklST25lX0RpcmVjdF9TMTYsIE9NWFNQX1NVRkZJWCkKKyNkZWZpbmUgb214U1BfRklST25lX0RpcmVjdF9TMTZfSSAgICAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoU1BfRklST25lX0RpcmVjdF9TMTZfSSwgT01YU1BfU1VGRklYKQorI2RlZmluZSBvbXhTUF9GSVJPbmVfRGlyZWN0X1MxNl9JU2ZzICAgICAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihTUF9GSVJPbmVfRGlyZWN0X1MxNl9JU2ZzLCBPTVhTUF9TVUZGSVgpCisjZGVmaW5lIG9teFNQX0ZJUk9uZV9EaXJlY3RfUzE2X1NmcyAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFNQX0ZJUk9uZV9EaXJlY3RfUzE2X1NmcywgT01YU1BfU1VGRklYKQorI2RlZmluZSBvbXhTUF9JSVJfQmlRdWFkRGlyZWN0X1MxNiAgICAgICAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihTUF9JSVJfQmlRdWFkRGlyZWN0X1MxNiwgT01YU1BfU1VGRklYKQorI2RlZmluZSBvbXhTUF9JSVJfQmlRdWFkRGlyZWN0X1MxNl9JICAgICAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihTUF9JSVJfQmlRdWFkRGlyZWN0X1MxNl9JLCBPTVhTUF9TVUZGSVgpCisjZGVmaW5lIG9teFNQX0lJUl9EaXJlY3RfUzE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFNQX0lJUl9EaXJlY3RfUzE2LCBPTVhTUF9TVUZGSVgpCisjZGVmaW5lIG9teFNQX0lJUl9EaXJlY3RfUzE2X0kgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFNQX0lJUl9EaXJlY3RfUzE2X0ksIE9NWFNQX1NVRkZJWCkKKyNkZWZpbmUgb214U1BfSUlST25lX0JpUXVhZERpcmVjdF9TMTYgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoU1BfSUlST25lX0JpUXVhZERpcmVjdF9TMTYsIE9NWFNQX1NVRkZJWCkKKyNkZWZpbmUgb214U1BfSUlST25lX0JpUXVhZERpcmVjdF9TMTZfSSAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoU1BfSUlST25lX0JpUXVhZERpcmVjdF9TMTZfSSwgT01YU1BfU1VGRklYKQorI2RlZmluZSBvbXhTUF9JSVJPbmVfRGlyZWN0X1MxNiAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihTUF9JSVJPbmVfRGlyZWN0X1MxNiwgT01YU1BfU1VGRklYKQorI2RlZmluZSBvbXhTUF9JSVJPbmVfRGlyZWN0X1MxNl9JICAgICAgICAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihTUF9JSVJPbmVfRGlyZWN0X1MxNl9JLCBPTVhTUF9TVUZGSVgpCisKKyNkZWZpbmUgb214VkNDT01NX0F2ZXJhZ2VfMTZ4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoVkNDT01NX0F2ZXJhZ2VfMTZ4LCBPTVhWQ0NPTU1fU1VGRklYKQorI2RlZmluZSBvbXhWQ0NPTU1fQXZlcmFnZV84eCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihWQ0NPTU1fQXZlcmFnZV84eCwgT01YVkNDT01NX1NVRkZJWCkKKyNkZWZpbmUgb214VkNDT01NX0NvbXB1dGVUZXh0dXJlRXJyb3JCbG9jayAgICAgICAgICAgICAgICBPTVhDQVRCQVIoVkNDT01NX0NvbXB1dGVUZXh0dXJlRXJyb3JCbG9jaywgT01YVkNDT01NX1NVRkZJWCkKKyNkZWZpbmUgb214VkNDT01NX0NvbXB1dGVUZXh0dXJlRXJyb3JCbG9ja19TQUQgICAgICAgICAgICBPTVhDQVRCQVIoVkNDT01NX0NvbXB1dGVUZXh0dXJlRXJyb3JCbG9ja19TQUQsIE9NWFZDQ09NTV9TVUZGSVgpCisjZGVmaW5lIG9teFZDQ09NTV9Db3B5MTZ4MTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFZDQ09NTV9Db3B5MTZ4MTYsIE9NWFZDQ09NTV9TVUZGSVgpCisjZGVmaW5lIG9teFZDQ09NTV9Db3B5OHg4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFZDQ09NTV9Db3B5OHg4LCBPTVhWQ0NPTU1fU1VGRklYKQorI2RlZmluZSBvbXhWQ0NPTU1fRXhwYW5kRnJhbWVfSSAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihWQ0NPTU1fRXhwYW5kRnJhbWVfSSwgT01YVkNDT01NX1NVRkZJWCkKKyNkZWZpbmUgb214VkNDT01NX0xpbWl0TVZUb1JlY3QgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoVkNDT01NX0xpbWl0TVZUb1JlY3QsIE9NWFZDQ09NTV9TVUZGSVgpCisjZGVmaW5lIG9teFZDQ09NTV9TQURfMTZ4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFZDQ09NTV9TQURfMTZ4LCBPTVhWQ0NPTU1fU1VGRklYKQorI2RlZmluZSBvbXhWQ0NPTU1fU0FEXzh4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihWQ0NPTU1fU0FEXzh4LCBPTVhWQ0NPTU1fU1VGRklYKQorCisjZGVmaW5lIG9teFZDTTRQMTBfQXZlcmFnZV80eCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFZDTTRQMTBfQXZlcmFnZV80eCwgT01YVkNNNFAxMF9TVUZGSVgpCisjZGVmaW5lIG9teFZDTTRQMTBfQmxvY2tNYXRjaF9IYWxmICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFZDTTRQMTBfQmxvY2tNYXRjaF9IYWxmLCBPTVhWQ000UDEwX1NVRkZJWCkKKyNkZWZpbmUgb214VkNNNFAxMF9CbG9ja01hdGNoX0ludGVnZXIgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoVkNNNFAxMF9CbG9ja01hdGNoX0ludGVnZXIsIE9NWFZDTTRQMTBfU1VGRklYKQorI2RlZmluZSBvbXhWQ000UDEwX0Jsb2NrTWF0Y2hfUXVhcnRlciAgICAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihWQ000UDEwX0Jsb2NrTWF0Y2hfUXVhcnRlciwgT01YVkNNNFAxMF9TVUZGSVgpCisjZGVmaW5lIG9teFZDTTRQMTBfRGVibG9ja0Nocm9tYV9JICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFZDTTRQMTBfRGVibG9ja0Nocm9tYV9JLCBPTVhWQ000UDEwX1NVRkZJWCkKKyNkZWZpbmUgb214VkNNNFAxMF9EZWJsb2NrTHVtYV9JICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoVkNNNFAxMF9EZWJsb2NrTHVtYV9JLCBPTVhWQ000UDEwX1NVRkZJWCkKKyNkZWZpbmUgb214VkNNNFAxMF9EZWNvZGVDaHJvbWFEY0NvZWZmc1RvUGFpckNBVkxDICAgICAgICBPTVhDQVRCQVIoVkNNNFAxMF9EZWNvZGVDaHJvbWFEY0NvZWZmc1RvUGFpckNBVkxDLCBPTVhWQ000UDEwX1NVRkZJWCkKKyNkZWZpbmUgb214VkNNNFAxMF9EZWNvZGVDb2VmZnNUb1BhaXJDQVZMQyAgICAgICAgICAgICAgICBPTVhDQVRCQVIoVkNNNFAxMF9EZWNvZGVDb2VmZnNUb1BhaXJDQVZMQywgT01YVkNNNFAxMF9TVUZGSVgpCisjZGVmaW5lIG9teFZDTTRQMTBfRGVxdWFudFRyYW5zZm9ybVJlc2lkdWFsRnJvbVBhaXJBbmRBZGQgT01YQ0FUQkFSKFZDTTRQMTBfRGVxdWFudFRyYW5zZm9ybVJlc2lkdWFsRnJvbVBhaXJBbmRBZGQsIE9NWFZDTTRQMTBfU1VGRklYKQorI2RlZmluZSBvbXhWQ000UDEwX0ZpbHRlckRlYmxvY2tpbmdDaHJvbWFfSG9yRWRnZV9JICAgICAgIE9NWENBVEJBUihWQ000UDEwX0ZpbHRlckRlYmxvY2tpbmdDaHJvbWFfSG9yRWRnZV9JLCBPTVhWQ000UDEwX1NVRkZJWCkKKyNkZWZpbmUgb214VkNNNFAxMF9GaWx0ZXJEZWJsb2NraW5nQ2hyb21hX1ZlckVkZ2VfSSAgICAgICBPTVhDQVRCQVIoVkNNNFAxMF9GaWx0ZXJEZWJsb2NraW5nQ2hyb21hX1ZlckVkZ2VfSSwgT01YVkNNNFAxMF9TVUZGSVgpCisjZGVmaW5lIG9teFZDTTRQMTBfRmlsdGVyRGVibG9ja2luZ0x1bWFfSG9yRWRnZV9JICAgICAgICAgT01YQ0FUQkFSKFZDTTRQMTBfRmlsdGVyRGVibG9ja2luZ0x1bWFfSG9yRWRnZV9JLCBPTVhWQ000UDEwX1NVRkZJWCkKKyNkZWZpbmUgb214VkNNNFAxMF9GaWx0ZXJEZWJsb2NraW5nTHVtYV9WZXJFZGdlX0kgICAgICAgICBPTVhDQVRCQVIoVkNNNFAxMF9GaWx0ZXJEZWJsb2NraW5nTHVtYV9WZXJFZGdlX0ksIE9NWFZDTTRQMTBfU1VGRklYKQorI2RlZmluZSBvbXhWQ000UDEwX0dldFZMQ0luZm8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihWQ000UDEwX0dldFZMQ0luZm8sIE9NWFZDTTRQMTBfU1VGRklYKQorI2RlZmluZSBvbXhWQ000UDEwX0ludGVycG9sYXRlQ2hyb21hICAgICAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihWQ000UDEwX0ludGVycG9sYXRlQ2hyb21hLCBPTVhWQ000UDEwX1NVRkZJWCkKKyNkZWZpbmUgb214VkNNNFAxMF9JbnRlcnBvbGF0ZUhhbGZIb3JfTHVtYSAgICAgICAgICAgICAgICBPTVhDQVRCQVIoVkNNNFAxMF9JbnRlcnBvbGF0ZUhhbGZIb3JfTHVtYSwgT01YVkNNNFAxMF9TVUZGSVgpCisjZGVmaW5lIG9teFZDTTRQMTBfSW50ZXJwb2xhdGVIYWxmVmVyX0x1bWEgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFZDTTRQMTBfSW50ZXJwb2xhdGVIYWxmVmVyX0x1bWEsIE9NWFZDTTRQMTBfU1VGRklYKQorI2RlZmluZSBvbXhWQ000UDEwX0ludGVycG9sYXRlTHVtYSAgICAgICAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihWQ000UDEwX0ludGVycG9sYXRlTHVtYSwgT01YVkNNNFAxMF9TVUZGSVgpCisjZGVmaW5lIG9teFZDTTRQMTBfSW52VHJhbnNmb3JtRGVxdWFudF9DaHJvbWFEQyAgICAgICAgICAgT01YQ0FUQkFSKFZDTTRQMTBfSW52VHJhbnNmb3JtRGVxdWFudF9DaHJvbWFEQywgT01YVkNNNFAxMF9TVUZGSVgpCisjZGVmaW5lIG9teFZDTTRQMTBfSW52VHJhbnNmb3JtRGVxdWFudF9MdW1hREMgICAgICAgICAgICAgT01YQ0FUQkFSKFZDTTRQMTBfSW52VHJhbnNmb3JtRGVxdWFudF9MdW1hREMsIE9NWFZDTTRQMTBfU1VGRklYKQorI2RlZmluZSBvbXhWQ000UDEwX0ludlRyYW5zZm9ybVJlc2lkdWFsQW5kQWRkICAgICAgICAgICAgIE9NWENBVEJBUihWQ000UDEwX0ludlRyYW5zZm9ybVJlc2lkdWFsQW5kQWRkLCBPTVhWQ000UDEwX1NVRkZJWCkKKyNkZWZpbmUgb214VkNNNFAxMF9NRUdldEJ1ZlNpemUgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoVkNNNFAxMF9NRUdldEJ1ZlNpemUsIE9NWFZDTTRQMTBfU1VGRklYKQorI2RlZmluZSBvbXhWQ000UDEwX01FSW5pdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihWQ000UDEwX01FSW5pdCwgT01YVkNNNFAxMF9TVUZGSVgpCisjZGVmaW5lIG9teFZDTTRQMTBfTW90aW9uRXN0aW1hdGlvbk1CICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFZDTTRQMTBfTW90aW9uRXN0aW1hdGlvbk1CLCBPTVhWQ000UDEwX1NVRkZJWCkKKyNkZWZpbmUgb214VkNNNFAxMF9QcmVkaWN0SW50cmFfMTZ4MTYgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoVkNNNFAxMF9QcmVkaWN0SW50cmFfMTZ4MTYsIE9NWFZDTTRQMTBfU1VGRklYKQorI2RlZmluZSBvbXhWQ000UDEwX1ByZWRpY3RJbnRyYV80eDQgICAgICAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihWQ000UDEwX1ByZWRpY3RJbnRyYV80eDQsIE9NWFZDTTRQMTBfU1VGRklYKQorI2RlZmluZSBvbXhWQ000UDEwX1ByZWRpY3RJbnRyYUNocm9tYV84eDggICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoVkNNNFAxMF9QcmVkaWN0SW50cmFDaHJvbWFfOHg4LCBPTVhWQ000UDEwX1NVRkZJWCkKKyNkZWZpbmUgb214VkNNNFAxMF9TQURfNHggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoVkNNNFAxMF9TQURfNHgsIE9NWFZDTTRQMTBfU1VGRklYKQorI2RlZmluZSBvbXhWQ000UDEwX1NBRFF1YXJfMTZ4ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihWQ000UDEwX1NBRFF1YXJfMTZ4LCBPTVhWQ000UDEwX1NVRkZJWCkKKyNkZWZpbmUgb214VkNNNFAxMF9TQURRdWFyXzR4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoVkNNNFAxMF9TQURRdWFyXzR4LCBPTVhWQ000UDEwX1NVRkZJWCkKKyNkZWZpbmUgb214VkNNNFAxMF9TQURRdWFyXzh4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoVkNNNFAxMF9TQURRdWFyXzh4LCBPTVhWQ000UDEwX1NVRkZJWCkKKyNkZWZpbmUgb214VkNNNFAxMF9TQVREXzR4NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoVkNNNFAxMF9TQVREXzR4NCwgT01YVkNNNFAxMF9TVUZGSVgpCisjZGVmaW5lIG9teFZDTTRQMTBfU3ViQW5kVHJhbnNmb3JtUURRUmVzaWR1YWwgICAgICAgICAgICAgT01YQ0FUQkFSKFZDTTRQMTBfU3ViQW5kVHJhbnNmb3JtUURRUmVzaWR1YWwsIE9NWFZDTTRQMTBfU1VGRklYKQorI2RlZmluZSBvbXhWQ000UDEwX1RyYW5zZm9ybURlcXVhbnRDaHJvbWFEQ0Zyb21QYWlyICAgICAgIE9NWENBVEJBUihWQ000UDEwX1RyYW5zZm9ybURlcXVhbnRDaHJvbWFEQ0Zyb21QYWlyLCBPTVhWQ000UDEwX1NVRkZJWCkKKyNkZWZpbmUgb214VkNNNFAxMF9UcmFuc2Zvcm1EZXF1YW50THVtYURDRnJvbVBhaXIgICAgICAgICBPTVhDQVRCQVIoVkNNNFAxMF9UcmFuc2Zvcm1EZXF1YW50THVtYURDRnJvbVBhaXIsIE9NWFZDTTRQMTBfU1VGRklYKQorI2RlZmluZSBvbXhWQ000UDEwX1RyYW5zZm9ybVF1YW50X0Nocm9tYURDICAgICAgICAgICAgICAgIE9NWENBVEJBUihWQ000UDEwX1RyYW5zZm9ybVF1YW50X0Nocm9tYURDLCBPTVhWQ000UDEwX1NVRkZJWCkKKyNkZWZpbmUgb214VkNNNFAxMF9UcmFuc2Zvcm1RdWFudF9MdW1hREMgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoVkNNNFAxMF9UcmFuc2Zvcm1RdWFudF9MdW1hREMsIE9NWFZDTTRQMTBfU1VGRklYKQorCisjZGVmaW5lIG9teFZDTTRQMl9CbG9ja01hdGNoX0hhbGZfMTZ4MTYgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFZDTTRQMl9CbG9ja01hdGNoX0hhbGZfMTZ4MTYsIE9NWFZDTTRQMl9TVUZGSVgpCisjZGVmaW5lIG9teFZDTTRQMl9CbG9ja01hdGNoX0hhbGZfOHg4ICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFZDTTRQMl9CbG9ja01hdGNoX0hhbGZfOHg4LCBPTVhWQ000UDJfU1VGRklYKQorI2RlZmluZSBvbXhWQ000UDJfQmxvY2tNYXRjaF9JbnRlZ2VyXzE2eDE2ICAgICAgICAgICAgICAgIE9NWENBVEJBUihWQ000UDJfQmxvY2tNYXRjaF9JbnRlZ2VyXzE2eDE2LCBPTVhWQ000UDJfU1VGRklYKQorI2RlZmluZSBvbXhWQ000UDJfQmxvY2tNYXRjaF9JbnRlZ2VyXzh4OCAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihWQ000UDJfQmxvY2tNYXRjaF9JbnRlZ2VyXzh4OCwgT01YVkNNNFAyX1NVRkZJWCkKKyNkZWZpbmUgb214VkNNNFAyX0RDVDh4OGJsayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoVkNNNFAyX0RDVDh4OGJsaywgT01YVkNNNFAyX1NVRkZJWCkKKyNkZWZpbmUgb214VkNNNFAyX0RlY29kZUJsb2NrQ29lZl9JbnRlciAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoVkNNNFAyX0RlY29kZUJsb2NrQ29lZl9JbnRlciwgT01YVkNNNFAyX1NVRkZJWCkKKyNkZWZpbmUgb214VkNNNFAyX0RlY29kZUJsb2NrQ29lZl9JbnRyYSAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoVkNNNFAyX0RlY29kZUJsb2NrQ29lZl9JbnRyYSwgT01YVkNNNFAyX1NVRkZJWCkKKyNkZWZpbmUgb214VkNNNFAyX0RlY29kZVBhZE1WX1BWT1AgICAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoVkNNNFAyX0RlY29kZVBhZE1WX1BWT1AsIE9NWFZDTTRQMl9TVUZGSVgpCisjZGVmaW5lIG9teFZDTTRQMl9EZWNvZGVWTENaaWd6YWdfSW50ZXIgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFZDTTRQMl9EZWNvZGVWTENaaWd6YWdfSW50ZXIsIE9NWFZDTTRQMl9TVUZGSVgpCisjZGVmaW5lIG9teFZDTTRQMl9EZWNvZGVWTENaaWd6YWdfSW50cmFBQ1ZMQyAgICAgICAgICAgICAgT01YQ0FUQkFSKFZDTTRQMl9EZWNvZGVWTENaaWd6YWdfSW50cmFBQ1ZMQywgT01YVkNNNFAyX1NVRkZJWCkKKyNkZWZpbmUgb214VkNNNFAyX0RlY29kZVZMQ1ppZ3phZ19JbnRyYURDVkxDICAgICAgICAgICAgICBPTVhDQVRCQVIoVkNNNFAyX0RlY29kZVZMQ1ppZ3phZ19JbnRyYURDVkxDLCBPTVhWQ000UDJfU1VGRklYKQorI2RlZmluZSBvbXhWQ000UDJfRW5jb2RlTVYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihWQ000UDJfRW5jb2RlTVYsIE9NWFZDTTRQMl9TVUZGSVgpCisjZGVmaW5lIG9teFZDTTRQMl9FbmNvZGVWTENaaWd6YWdfSW50ZXIgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFZDTTRQMl9FbmNvZGVWTENaaWd6YWdfSW50ZXIsIE9NWFZDTTRQMl9TVUZGSVgpCisjZGVmaW5lIG9teFZDTTRQMl9FbmNvZGVWTENaaWd6YWdfSW50cmFBQ1ZMQyAgICAgICAgICAgICAgT01YQ0FUQkFSKFZDTTRQMl9FbmNvZGVWTENaaWd6YWdfSW50cmFBQ1ZMQywgT01YVkNNNFAyX1NVRkZJWCkKKyNkZWZpbmUgb214VkNNNFAyX0VuY29kZVZMQ1ppZ3phZ19JbnRyYURDVkxDICAgICAgICAgICAgICBPTVhDQVRCQVIoVkNNNFAyX0VuY29kZVZMQ1ppZ3phZ19JbnRyYURDVkxDLCBPTVhWQ000UDJfU1VGRklYKQorI2RlZmluZSBvbXhWQ000UDJfRmluZE1WcHJlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWENBVEJBUihWQ000UDJfRmluZE1WcHJlZCwgT01YVkNNNFAyX1NVRkZJWCkKKyNkZWZpbmUgb214VkNNNFAyX0lEQ1Q4eDhibGsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoVkNNNFAyX0lEQ1Q4eDhibGssIE9NWFZDTTRQMl9TVUZGSVgpCisjZGVmaW5lIG9teFZDTTRQMl9NQ1JlY29uQmxvY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFZDTTRQMl9NQ1JlY29uQmxvY2ssIE9NWFZDTTRQMl9TVUZGSVgpCisjZGVmaW5lIG9teFZDTTRQMl9NRUdldEJ1ZlNpemUgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFZDTTRQMl9NRUdldEJ1ZlNpemUsIE9NWFZDTTRQMl9TVUZGSVgpCisjZGVmaW5lIG9teFZDTTRQMl9NRUluaXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFZDTTRQMl9NRUluaXQsIE9NWFZDTTRQMl9TVUZGSVgpCisjZGVmaW5lIG9teFZDTTRQMl9Nb3Rpb25Fc3RpbWF0aW9uTUIgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFZDTTRQMl9Nb3Rpb25Fc3RpbWF0aW9uTUIsIE9NWFZDTTRQMl9TVUZGSVgpCisjZGVmaW5lIG9teFZDTTRQMl9QcmVkaWN0UmVjb25Db2VmSW50cmEgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFZDTTRQMl9QcmVkaWN0UmVjb25Db2VmSW50cmEsIE9NWFZDTTRQMl9TVUZGSVgpCisjZGVmaW5lIG9teFZDTTRQMl9RdWFudEludGVyX0kgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFZDTTRQMl9RdWFudEludGVyX0ksIE9NWFZDTTRQMl9TVUZGSVgpCisjZGVmaW5lIG9teFZDTTRQMl9RdWFudEludHJhX0kgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFZDTTRQMl9RdWFudEludHJhX0ksIE9NWFZDTTRQMl9TVUZGSVgpCisjZGVmaW5lIG9teFZDTTRQMl9RdWFudEludkludGVyX0kgICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFZDTTRQMl9RdWFudEludkludGVyX0ksIE9NWFZDTTRQMl9TVUZGSVgpCisjZGVmaW5lIG9teFZDTTRQMl9RdWFudEludkludHJhX0kgICAgICAgICAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFZDTTRQMl9RdWFudEludkludHJhX0ksIE9NWFZDTTRQMl9TVUZGSVgpCisjZGVmaW5lIG9teFZDTTRQMl9UcmFuc1JlY0Jsb2NrQ29lZl9pbnRlciAgICAgICAgICAgICAgICAgT01YQ0FUQkFSKFZDTTRQMl9UcmFuc1JlY0Jsb2NrQ29lZl9pbnRlciwgT01YVkNNNFAyX1NVRkZJWCkKKyNkZWZpbmUgb214VkNNNFAyX1RyYW5zUmVjQmxvY2tDb2VmX2ludHJhICAgICAgICAgICAgICAgICBPTVhDQVRCQVIoVkNNNFAyX1RyYW5zUmVjQmxvY2tDb2VmX2ludHJhLCBPTVhWQ000UDJfU1VGRklYKQorCisjZW5kaWYgLyogZW5kaWYgQVJNT01YX0VOQUJMRV9SRU5BTUlORyAqLworI2VuZGlmIC8qIF9hcm1PTVhfaF8gKi8KZGlmZiAtLWdpdCBhL2RsL2FybVNQLmggYi9kbC9hcm1TUC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3NTI4ZWYKLS0tIC9kZXYvbnVsbAorKysgYi9kbC9hcm1TUC5oCkBAIC0wLDAgKzEsOTIgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqCisgKiAgVGhpcyBmaWxlIHdhcyBvcmlnaW5hbGx5IGxpY2Vuc2VkIGFzIGZvbGxvd3MuIEl0IGhhcyBiZWVuCisgKiAgcmVsaWNlbnNlZCB3aXRoIHBlcm1pc3Npb24gZnJvbSB0aGUgY29weXJpZ2h0IGhvbGRlcnMuCisgKi8KKworLyoqCisgKiAKKyAqIEZpbGUgTmFtZTogIGFybVNQLmgKKyAqIE9wZW5NQVggREw6IHYxLjAuMgorICogTGFzdCBNb2RpZmllZCBSZXZpc2lvbjogICA3MDE0CisgKiBMYXN0IE1vZGlmaWVkIERhdGU6ICAgICAgIFdlZCwgMDEgQXVnIDIwMDcKKyAqIAorICogKGMpIENvcHlyaWdodCAyMDA3LTIwMDggQVJNIExpbWl0ZWQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiAKKyAqIAorICogICAKKyAqIEZpbGU6IGFybVNQLmgKKyAqIEJyaWVmOiBEZWNsYXJlcyBBUEkncy9CYXNpYyBEYXRhIHR5cGVzIHVzZWQgYWNyb3NzIHRoZSBPcGVuTUFYIFNpZ25hbCBQcm9jZXNzaW5nIGRvbWFpbgorICoKKyAqLworI2lmbmRlZiBfYXJtU1BfSF8KKyNkZWZpbmUgX2FybVNQX0hfCisKKyNpbmNsdWRlICJvbXh0eXBlcy5oIgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8qKiBGRlQgU3BlY2lmaWMgZGVjbGFyYXRpb25zICovCitleHRlcm4gIE9NWF9TMzIgYXJtU1BfRkZUX1MzMlR3aWRkbGVUYWJsZVsxMDI2XTsKK2V4dGVybiBPTVhfRjMyIGFybVNQX0ZGVF9GMzJUd2lkZGxlVGFibGVbXTsKKwordHlwZWRlZiBzdHJ1Y3QgIEFSTXNGRlRTcGVjX1NDMzJfVGFnIAoreworICAgIE9NWF9VMzIgICAgIE47CisgICAgT01YX1UxNiAgICAgKnBCaXRSZXY7ICAgIAorICAgIE9NWF9TQzMyICAgICpwVHdpZGRsZTsKKyAgICBPTVhfU0MzMiAgICAqcEJ1ZjsKK31BUk1zRkZUU3BlY19TQzMyOworCisKK3R5cGVkZWYgc3RydWN0ICBBUk1zRkZUU3BlY19TQzE2X1RhZyAKK3sKKyAgICBPTVhfVTMyICAgICBOOworICAgIE9NWF9VMTYgICAgICpwQml0UmV2OyAgICAKKyAgICBPTVhfU0MxNiAgICAqcFR3aWRkbGU7CisgICAgT01YX1NDMTYgICAgKnBCdWY7Cit9QVJNc0ZGVFNwZWNfU0MxNjsKKwordHlwZWRlZiBzdHJ1Y3QgIEFSTXNGRlRTcGVjX1JfU0MzMl9UYWcgCit7CisgICAgT01YX1UzMiAgICAgTjsKKyAgICBPTVhfVTE2ICAgICAqcEJpdFJldjsgICAgCisgICAgT01YX1NDMzIgICAgKnBUd2lkZGxlOworICAgIE9NWF9TMzIgICAgICpwQnVmOworfUFSTXNGRlRTcGVjX1JfU0MzMjsKKwordHlwZWRlZiBzdHJ1Y3QgQVJNc0ZGVFNwZWNfUl9GQzMyX1RhZworeworICAgIE9NWF9VMzIgTjsKKyAgICBPTVhfVTE2KiBwQml0UmV2OworICAgIE9NWF9GQzMyKiBwVHdpZGRsZTsKKyAgICBPTVhfRjMyKiBwQnVmOworfSBBUk1zRkZUU3BlY19SX0ZDMzI7CisKK3R5cGVkZWYgc3RydWN0IEFSTXNGRlRTcGVjX0ZDMzJfVGFnCit7CisgICAgT01YX1UzMiBOOworICAgIE9NWF9VMTYqIHBCaXRSZXY7CisgICAgT01YX0ZDMzIqIHBUd2lkZGxlOworICAgIE9NWF9GQzMyKiBwQnVmOworfSBBUk1zRkZUU3BlY19GQzMyOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYKKworLypFbmQgb2YgRmlsZSovCisKKworCmRpZmYgLS1naXQgYS9kbC9hcm1TUF9GRlRJbnZfQ0NTVG9SX0YzMl9wcmVUd2lkZGxlUmFkaXgyX3Vuc2FmZV9zLlMgYi9kbC9hcm1TUF9GRlRJbnZfQ0NTVG9SX0YzMl9wcmVUd2lkZGxlUmFkaXgyX3Vuc2FmZV9zLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWNhY2FmYwotLS0gL2Rldi9udWxsCisrKyBiL2RsL2FybVNQX0ZGVEludl9DQ1NUb1JfRjMyX3ByZVR3aWRkbGVSYWRpeDJfdW5zYWZlX3MuUwpAQCAtMCwwICsxLDI5NCBAQAorQC8vCitALy8gIENvcHlyaWdodCAoYykgMjAxMyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KK0AvLworQC8vICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCitALy8gIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorQC8vICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCitALy8gIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKK0AvLyAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCitALy8KK0AvLyAgVGhpcyBpcyBhIG1vZGlmaWNhdGlvbiBvZgorQC8vICBhcm1TUF9GRlRJbnZfQ0NTVG9SX1MzMl9wcmVUd2lkZGxlUmFkaXgyX3Vuc2FmZV9zLnMgdG8gc3VwcG9ydCBmbG9hdAorQC8vICBpbnN0ZWFkIG9mIFNDMzIuCitALy8KKworQC8vCitALy8gRGVzY3JpcHRpb246CitALy8gQ29tcHV0ZSB0aGUgInByZVR3aWRkbGVSYWRpeDIiIHN0YWdlIHByaW9yIHRvIHRoZSBjYWxsIHRvIHRoZSBjb21wbGV4RkZUCitALy8gSXQgZG9lcyBhIFooaykgPSBGZXZlbihrKSArIGpXXigtaykgRk9kZChrKTsgaz0wLDEsMiwuLi5OLzItMSBjb21wdXRhdGlvbgorQC8vCitALy8KKworCitALy8gSW5jbHVkZSBzdGFuZGFyZCBoZWFkZXJzCisKKyNpbmNsdWRlICJvbXh0eXBlc19zLmgiCisjaW5jbHVkZSAiYXJtQ09NTV9zLmgiCisKKworQC8vIEltcG9ydCBzeW1ib2xzIHJlcXVpcmVkIGZyb20gb3RoZXIgZmlsZXMKK0AvLyAoRm9yIGV4YW1wbGUgdGFibGVzKQorCisKK0AvLyBTZXQgZGVidWdnaW5nIGxldmVsCitALy9ERUJVR19PTiAgICBTRVRMIHtUUlVFfQorCisKKworQC8vIEd1YXJkaW5nIGltcGxlbWVudGF0aW9uIGJ5IHRoZSBwcm9jZXNzb3IgbmFtZQorCisKKworICAgICAgQC8vIEd1YXJkaW5nIGltcGxlbWVudGF0aW9uIGJ5IHRoZSBwcm9jZXNzb3IgbmFtZQorCisKKworQC8vSW5wdXQgUmVnaXN0ZXJzCisKKyNkZWZpbmUgcFNyYyAgICAgICAgICAgIHIwCisjZGVmaW5lIHBEc3QgICAgICAgICAgICByMQorI2RlZmluZSBwRkZUU3BlYyAgICAgICAgcjIKKyNkZWZpbmUgc2NhbGUgICAgICAgICAgIHIzCisKKworQC8vIE91dHB1dCByZWdpc3RlcnMKKyNkZWZpbmUgcmVzdWx0ICAgICAgICAgIHIwCisKK0AvL0xvY2FsIFNjcmF0Y2ggUmVnaXN0ZXJzCisKKyNkZWZpbmUgYXJnVHdpZGRsZSAgICAgIHIxCisjZGVmaW5lIGFyZ0RzdCAgICAgICAgICByMgorI2RlZmluZSBhcmdTY2FsZSAgICAgICAgcjQKKyNkZWZpbmUgdG1wT3JkZXIgICAgICAgIHI0CisjZGVmaW5lIHBUd2lkZGxlICAgICAgICByNAorI2RlZmluZSBwT3V0ICAgICAgICAgICAgcjUKKyNkZWZpbmUgc3ViRkZUU2l6ZSAgICAgIHI3CisjZGVmaW5lIHN1YkZGVE51bSAgICAgICByNgorI2RlZmluZSBOICAgICAgICAgICAgICAgcjYKKyNkZWZpbmUgb3JkZXIgICAgICAgICAgIHIxNAorI2RlZmluZSBkaWZmICAgICAgICAgICAgcjkKK0AvLyBUb3RhbCBudW0gb2YgcmFkaXggc3RhZ2VzIHJlcXVpcmVkIHRvIGNvbXBsZXRlIHRoZSBGRlQKKyNkZWZpbmUgY291bnQgICAgICAgICAgIHI4CisjZGVmaW5lIHgwciAgICAgICAgICAgICByNAorI2RlZmluZSB4MGkgICAgICAgICAgICAgcjUKKyNkZWZpbmUgZGlmZk1pbnVzT25lICAgIHIyCisjZGVmaW5lIHJvdW5kICAgICAgICAgICByMworCisjZGVmaW5lIHBPdXQxICAgICAgICAgICByMgorI2RlZmluZSBzaXplICAgICAgICAgICAgcjcKKyNkZWZpbmUgc3RlcCAgICAgICAgICAgIHI4CisjZGVmaW5lIHN0ZXAxICAgICAgICAgICByOQorI2RlZmluZSB0d1N0ZXAgICAgICAgICAgcjEwCisjZGVmaW5lIHBUd2lkZGxlVG1wICAgICByMTEKKyNkZWZpbmUgYXJnVHdpZGRsZTEgICAgIHIxMgorI2RlZmluZSB6ZXJvICAgICAgICAgICAgcjE0CisKK0AvLyBOZW9uIHJlZ2lzdGVycworCisjZGVmaW5lIGRYMCAgICAgRDAuRjMyCisjZGVmaW5lIGRTaGlmdCAgRDEuRjMyCisjZGVmaW5lIGRYMSAgICAgRDEuRjMyCisjZGVmaW5lIGRZMCAgICAgRDIuRjMyCisjZGVmaW5lIGRZMSAgICAgRDMuRjMyCisjZGVmaW5lIGRYMHIgICAgRDAuRjMyCisjZGVmaW5lIGRYMGkgICAgRDEuRjMyCisjZGVmaW5lIGRYMXIgICAgRDIuRjMyCisjZGVmaW5lIGRYMWkgICAgRDMuRjMyCisjZGVmaW5lIGRXMHIgICAgRDQuRjMyCisjZGVmaW5lIGRXMGkgICAgRDUuRjMyCisjZGVmaW5lIGRXMXIgICAgRDYuRjMyCisjZGVmaW5lIGRXMWkgICAgRDcuRjMyCisjZGVmaW5lIGRUMCAgICAgRDguRjMyCisjZGVmaW5lIGRUMSAgICAgRDkuRjMyCisjZGVmaW5lIGRUMiAgICAgRDEwLkYzMgorI2RlZmluZSBkVDMgICAgIEQxMS5GMzIKKyNkZWZpbmUgcVQwICAgICBEMTIuRjMyCisjZGVmaW5lIHFUMSAgICAgRDE0LkYzMgorI2RlZmluZSBxVDIgICAgIEQxNi5GMzIKKyNkZWZpbmUgcVQzICAgICBEMTguRjMyCisjZGVmaW5lIGRZMHIgICAgRDQuRjMyCisjZGVmaW5lIGRZMGkgICAgRDUuRjMyCisjZGVmaW5lIGRZMXIgICAgRDYuRjMyCisjZGVmaW5lIGRZMWkgICAgRDcuRjMyCisKKyNkZWZpbmUgZFkyICAgICBENC5GMzIKKyNkZWZpbmUgZFkzICAgICBENS5GMzIKKyNkZWZpbmUgZFcwICAgICBENi5GMzIKKyNkZWZpbmUgZFcxICAgICBENy5GMzIKKyNkZWZpbmUgZFcwVG1wICBEMTAuRjMyCisjZGVmaW5lIGRXMU5lZyAgRDExLkYzMgorCisjZGVmaW5lIGhhbGYgICAgRDEzLkYzMgorCitAIFN0cnVjdHVyZSBvZmZzZXRzIGZvciB0aGUgRkZUU3BlYworICAgICAgICAuc2V0ICAgIEFSTXNGRlRTcGVjX04sIDAKKyAgICAgICAgLnNldCAgICBBUk1zRkZUU3BlY19wQml0UmV2LCA0CisgICAgICAgIC5zZXQgICAgQVJNc0ZGVFNwZWNfcFR3aWRkbGUsIDgKKyAgICAgICAgLnNldCAgICBBUk1zRkZUU3BlY19wQnVmLCAxMgorCisgICAgICAgIC5NQUNSTyBGRlRTVEFHRSBzY2FsZWQsIGludmVyc2UsIG5hbWUKKworICAgICAgICBALy8gUmVhZCB0aGUgc2l6ZSBmcm9tIHN0cnVjdHVyZSBhbmQgdGFrZSBsb2cKKyAgICAgICAgTERSICAgICBOLCBbcEZGVFNwZWMsICNBUk1zRkZUU3BlY19OXQorCisgICAgICAgIEAvLyBSZWFkIG90aGVyIHN0cnVjdHVyZSBwYXJhbWV0ZXJzCisgICAgICAgIExEUiAgICAgcFR3aWRkbGUsIFtwRkZUU3BlYywgI0FSTXNGRlRTcGVjX3BUd2lkZGxlXQorICAgICAgICBMRFIgICAgIHBPdXQsIFtwRkZUU3BlYywgI0FSTXNGRlRTcGVjX3BCdWZdCisKKyAgICAgICAgVk1PViAgICBoYWxmLCAwLjUKKworCisgICAgICAgIE1PViAgICAgc2l6ZSxOLEFTUiAjMSAgICAgICAgICAgICAgICAgQC8vIHByZXNlcnZlIHRoZSBjb250ZW50cyBvZiBOCisgICAgICAgIE1PViAgICAgc3RlcCxOLExTTCAjMiAgICAgICAgICAgICAgICAgQC8vIHN0ZXAgPSBOLzIgKiA4IGJ5dGVzCisKKworICAgICAgICBALy8gWihrKSA9IDEvMiB7W0YoaykgKyAgRicoTi8yLWspXSAraipXXigtaykgW0YoaykgLSAgRicoTi8yLWspXX0KKyAgICAgICAgQC8vIE5vdGU6IFdeKGspIGlzIHN0b3JlZCBhcyBuZWdhdGVkIHZhbHVlIGFuZCBhbHNvIG5lZWQgdG8KKyAgICAgICAgQC8vIGNvbmp1Z2F0ZSB0aGUgdmFsdWVzIGZyb20gdGhlIHRhYmxlCisKKyAgICAgICAgQC8vIFooMCkgOiBubyBuZWVkIG9mIHR3aWRkbGUgbXVsdGlwbHkKKyAgICAgICAgQC8vIFooMCkgPSAxLzIgeyBbRigwKSArICBGJyhOLzIpXSAraiBbRigwKSAtICBGJyhOLzIpXSB9CisKKyAgICAgICAgVkxEMSAgICBkWDAsW3BTcmNdLHN0ZXAKKyAgICAgICAgQUREICAgICBwT3V0MSxwT3V0LHN0ZXAgICAgICAgICAgICAgICBALy8gcE91dDEgPSBwT3V0KyBOLzIqOCBieXRlcworCisgICAgICAgIFZMRDEgICAgZFgxLFtwU3JjXSEKKyAgICAgICAgQC8vIHR3U3RlcCA9IDNOLzggKiA4IGJ5dGVzIHBvaW50aW5nIHRvIFdeMQorICAgICAgICBTVUIgICAgIHR3U3RlcCxzdGVwLHNpemUsTFNMICMxCisKKyAgICAgICAgTU9WICAgICBzdGVwMSxzaXplLExTTCAjMiAgICAgICAgICAgICBALy8gc3RlcDEgPSBOLzQgKiA4ID0gTi8yKjQgYnl0ZXMKKyAgICAgICAgU1VCICAgICBzdGVwMSxzdGVwMSwjOCAgICAgICAgICAgICAgICBALy8gKE4vNC0xKSo4IGJ5dGVzCisKKyAgICAgICAgVkFERCAgICBkWTAsZFgwLGRYMSAgICAgICAgICAgICAgICAgICBALy8gW2IrZCB8IGErY10KKyAgICAgICAgVlNVQiAgICBkWTEsZFgwLGRYMSAgICAgICAgICAgICAgICAgICBALy8gW2ItZCB8IGEtY10KKyAgICAgICAgVk1VTCAgICBkWTAsIGRZMCwgaGFsZlswXQorICAgICAgICBWTVVMICAgIGRZMSwgZFkxLCBoYWxmWzBdCisKKyAgICAgICAgQC8vIGRZMD0gW2EtYyB8IGErY10gO2RZMT0gW2ItZCB8IGIrZF0KKyAgICAgICAgVlpJUCAgICBkWTAsZFkxCisKKyAgICAgICAgVlNVQiAgIGRYMCxkWTAsZFkxCisgICAgICAgIFNVQlMgICBzaXplLHNpemUsIzIKKyAgICAgICAgVkFERCAgIGRYMSxkWTAsZFkxCisKKyAgICAgICAgU1VCICAgICBwU3JjLHBTcmMsc3RlcAorCisgICAgICAgIFZTVDEgICAgZFgwWzBdLFtwT3V0MV0hCisgICAgICAgIEFERCAgICAgcFR3aWRkbGVUbXAscFR3aWRkbGUsIzggICAgICAgQC8vIFdeMgorICAgICAgICBWU1QxICAgIGRYMVsxXSxbcE91dDFdIQorICAgICAgICBBREQgICAgIGFyZ1R3aWRkbGUxLHBUd2lkZGxlLHR3U3RlcCAgIEAvLyBXXjEKKworCisgICAgICAgIEJMVCAgICAgZGVjcmVtZW50U2NhbGVcbmFtZQorICAgICAgICBCRVEgICAgIGxhc3RFbGVtZW50XG5hbWUKKworCisgICAgICAgIEAvLyBaKGspID0gMS8yW0YoaykgKyAgRicoTi8yLWspXSAraipXXigtaykgW0YoaykgLSAgRicoTi8yLWspXQorICAgICAgICBALy8gTm90ZTogV15rIGlzIHN0b3JlZCBhcyBuZWdhdGl2ZSB2YWx1ZXMgaW4gdGhlIHRhYmxlIGFuZCBhbHNvCisgICAgICAgIEAvLyBuZWVkIHRvIGNvbmp1Z2F0ZSB0aGUgdmFsdWVzIGZyb20gdGhlIHRhYmxlLgorICAgICAgICBALy8KKyAgICAgICAgQC8vIFByb2Nlc3MgNCBlbGVtZW50cyBhdCBhIHRpbWUuIEUuZzogWigxKSxaKDIpIGFuZCBaKE4vMi0yKSxaKE4vMi0xKQorICAgICAgICBALy8gc2luY2UgYm90aCBvZiB0aGVtIHJlcXVpcmUgRigxKSxGKDIpIGFuZCBGKE4vMi0yKSxGKE4vMi0xKQorCisKKyAgICAgICAgU1VCICAgICBzdGVwLHN0ZXAsIzI0CitldmVuT2RkQnV0dGVyZmx5TG9vcFxuYW1lIDoKKworCisgICAgICAgIFZMRDEgICAgZFcwcixbYXJnVHdpZGRsZTFdLHN0ZXAxCisgICAgICAgIFZMRDEgICAgZFcxcixbYXJnVHdpZGRsZTFdIQorCisgICAgICAgIFZMRDIgICAge2RYMHIsZFgwaX0sW3BTcmNdLHN0ZXAKKyAgICAgICAgU1VCICAgICBhcmdUd2lkZGxlMSxhcmdUd2lkZGxlMSxzdGVwMQorICAgICAgICBWTEQyICAgIHtkWDFyLGRYMWl9LFtwU3JjXSEKKworICAgICAgICBTVUIgICAgIHN0ZXAxLHN0ZXAxLCM4ICAgICAgICAgICAgICAgIEAvLyAoTi80LTIpKjggYnl0ZXMKKyAgICAgICAgVkxEMSAgICBkVzBpLFtwVHdpZGRsZVRtcF0sc3RlcDEKKyAgICAgICAgVkxEMSAgICBkVzFpLFtwVHdpZGRsZVRtcF0hCisgICAgICAgIFNVQiAgICAgcFNyYyxwU3JjLHN0ZXAKKworICAgICAgICBTVUIgICAgIHBUd2lkZGxlVG1wLHBUd2lkZGxlVG1wLHN0ZXAxCisgICAgICAgIFZSRVY2NCAgZFgxcixkWDFyCisgICAgICAgIFZSRVY2NCAgZFgxaSxkWDFpCisgICAgICAgIFNVQlMgICAgc2l6ZSxzaXplLCM0CisKKworICAgICAgICBWU1VCICAgIGRUMixkWDByLGRYMXIgICAgICAgICAgICAgICAgIEAvLyBhLWMKKyAgICAgICAgVkFERCAgICBkVDMsZFgwaSxkWDFpICAgICAgICAgICAgICAgICBALy8gYitkCisgICAgICAgIFZBREQgICAgZFQwLGRYMHIsZFgxciAgICAgICAgICAgICAgICAgQC8vIGErYworICAgICAgICBWU1VCICAgIGRUMSxkWDBpLGRYMWkgICAgICAgICAgICAgICAgIEAvLyBiLWQKKyAgICAgICAgU1VCICAgICBzdGVwMSxzdGVwMSwjOAorCisgICAgICAgIFZNVUwgICAgZFQyLCBkVDIsIGhhbGZbMF0KKyAgICAgICAgVk1VTCAgICBkVDMsIGRUMywgaGFsZlswXQorCisgICAgICAgIFZNVUwgICAgZFQwLCBkVDAsIGhhbGZbMF0KKyAgICAgICAgVk1VTCAgICBkVDEsIGRUMSwgaGFsZlswXQorCisgICAgICAgIFZaSVAgICAgZFcxcixkVzFpCisgICAgICAgIFZaSVAgICAgZFcwcixkVzBpCisKKworICAgICAgICBWTVVMICAgZFgxcixkVzFyLGRUMgorICAgICAgICBWTVVMICAgZFgxaSxkVzFyLGRUMworICAgICAgICBWTVVMICAgZFgwcixkVzByLGRUMgorICAgICAgICBWTVVMICAgZFgwaSxkVzByLGRUMworCisgICAgICAgIFZNTFMgICBkWDFyLGRXMWksZFQzCisgICAgICAgIFZNTEEgICBkWDFpLGRXMWksZFQyCisKKyAgICAgICAgVk1MQSAgIGRYMHIsZFcwaSxkVDMKKyAgICAgICAgVk1MUyAgIGRYMGksZFcwaSxkVDIKKworCisgICAgICAgIFZBREQgICAgZFkxcixkVDAsZFgxaSAgICAgICAgICAgICAgICAgQC8vIEYoTi8yIC0xKQorICAgICAgICBWU1VCICAgIGRZMWksZFgxcixkVDEKKworICAgICAgICBWUkVWNjQgIGRZMXIsZFkxcgorICAgICAgICBWUkVWNjQgIGRZMWksZFkxaQorCisKKyAgICAgICAgVkFERCAgICBkWTByLGRUMCxkWDBpICAgICAgICAgICAgICAgICBALy8gRigxKQorICAgICAgICBWU1VCICAgIGRZMGksZFQxLGRYMHIKKworCisgICAgICAgIFZTVDIgICAge2RZMHIsZFkwaX0sW3BPdXQxXSxzdGVwCisgICAgICAgIFZTVDIgICAge2RZMXIsZFkxaX0sW3BPdXQxXSEKKyAgICAgICAgU1VCICAgICBwT3V0MSxwT3V0MSxzdGVwCisgICAgICAgIFNVQiAgICAgc3RlcCxzdGVwLCMzMiAgICAgICAgICAgICAgICAgQC8vIChOLzItNCkqOCBieXRlcworCisKKyAgICAgICAgQkdUICAgICBldmVuT2RkQnV0dGVyZmx5TG9vcFxuYW1lCisKKworICAgICAgICBALy8gc2V0IGJvdGggdGhlIHB0cnMgdG8gdGhlIGxhc3QgZWxlbWVudAorICAgICAgICBTVUIgICAgIHBTcmMscFNyYywjOAorICAgICAgICBTVUIgICAgIHBPdXQxLHBPdXQxLCM4CisKKyAgICAgICAgQC8vIExhc3QgZWxlbWVudCBjYW4gYmUgZXhwYW5kZWQgYXMgZm9sbG93cworICAgICAgICBALy8gMS8yW1ooaykgKyBaJyhrKV0gLSBqIHdeLWsgW1ooaykgLSBaJyhrKV0gKHNpbmNlIFdeayBpcyBzdG9yZWQgYXMKKyAgICAgICAgQC8vIC12ZSkKKyAgICAgICAgQC8vIDEvMlsoYStqYikgKyAoYS1qYildIC0gaiB3Xi1rIFsoYStqYikgLSAoYS1qYildCisgICAgICAgIEAvLyAxLzJbMmErajBdIC0gaiAoYy1qZCkgWzArajJiXQorICAgICAgICBALy8gKGErYmMsIC1iZCkKKyAgICAgICAgQC8vIFNpbmNlIChjLGQpID0gKDAsMSkgZm9yIHRoZSBsYXN0IGVsZW1lbnQsIHJlc3VsdCBpcyBqdXN0IChhLC1iKQorCitsYXN0RWxlbWVudFxuYW1lIDoKKyAgICAgICAgVkxEMSAgICBkWDByLFtwU3JjXQorCisgICAgICAgIFZTVDEgICAgZFgwclswXSxbcE91dDFdIQorICAgICAgICBWTkVHICAgIGRYMHIsZFgwcgorICAgICAgICBWU1QxICAgIGRYMHJbMV0sW3BPdXQxXQorCisKKworZGVjcmVtZW50U2NhbGVcbmFtZSA6CisKKyAgICAgICAgLmVuZG0KKworICAgICAgICBNX1NUQVJUIGFybVNQX0ZGVEludl9DQ1NUb1JfRjMyX3ByZVR3aWRkbGVSYWRpeDJfdW5zYWZlLHI0CisKKyAgICAgICAgICAgIEZGVFNUQUdFICJGQUxTRSIsIlRSVUUiLEludgorICAgICAgICBNX0VORAorCisgICAgICAgIC5lbmQKZGlmZiAtLWdpdCBhL2RsL2FybVNQX0ZGVEludl9DQ1NUb1JfUzMyX3ByZVR3aWRkbGVSYWRpeDJfdW5zYWZlX3MuUyBiL2RsL2FybVNQX0ZGVEludl9DQ1NUb1JfUzMyX3ByZVR3aWRkbGVSYWRpeDJfdW5zYWZlX3MuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYzFjYWQwCi0tLSAvZGV2L251bGwKKysrIGIvZGwvYXJtU1BfRkZUSW52X0NDU1RvUl9TMzJfcHJlVHdpZGRsZVJhZGl4Ml91bnNhZmVfcy5TCkBAIC0wLDAgKzEsMzIxIEBACitALy8KK0AvLyAgQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorQC8vCitALy8gIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKK0AvLyAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCitALy8gIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKK0AvLyAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorQC8vICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KK0AvLworQC8vICBUaGlzIGZpbGUgd2FzIG9yaWdpbmFsbHkgbGljZW5zZWQgYXMgZm9sbG93cy4gSXQgaGFzIGJlZW4KK0AvLyAgcmVsaWNlbnNlZCB3aXRoIHBlcm1pc3Npb24gZnJvbSB0aGUgY29weXJpZ2h0IGhvbGRlcnMuCitALy8KKworQC8vIAorQC8vIEZpbGUgTmFtZTogIGFybVNQX0ZGVEludl9DQ1NUb1JfUzMyX3ByZVR3aWRkbGVSYWRpeDJfdW5zYWZlX3MucworQC8vIE9wZW5NQVggREw6IHYxLjAuMgorQC8vIExhc3QgTW9kaWZpZWQgUmV2aXNpb246ICAgNzQ4NQorQC8vIExhc3QgTW9kaWZpZWQgRGF0ZTogICAgICAgRnJpLCAyMSBTZXAgMjAwNworQC8vIAorQC8vIChjKSBDb3B5cmlnaHQgMjAwNy0yMDA4IEFSTSBMaW1pdGVkLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorQC8vIAorQC8vIAorQC8vCitALy8gRGVzY3JpcHRpb246CitALy8gQ29tcHV0ZSB0aGUgInByZVR3aWRkbGVSYWRpeDIiIHN0YWdlIHByaW9yIHRvIHRoZSBjYWxsIHRvIHRoZSBjb21wbGV4RkZUICAKK0AvLyBJdCBkb2VzIGEgWihrKSA9IEZldmVuKGspICsgaldeKC1rKSBGT2RkKGspOyBrPTAsMSwyLC4uLk4vMi0xIGNvbXB1dGF0aW9uCitALy8gSXQgaW1wbGVtZW50cyBib3RoICJzY2FsZWQiKGJ5IDEvMikgYW5kICJ1bnNjbGFlZCIgdmVyc2lvbnMgb2YgdGhlIGFib3ZlIGZvcm11bGEKK0AvLyAKKworICAgICAgICAKK0AvLyBJbmNsdWRlIHN0YW5kYXJkIGhlYWRlcnMKKworI2luY2x1ZGUgIm9teHR5cGVzX3MuaCIKKyNpbmNsdWRlICJhcm1DT01NX3MuaCIKKyAgICAgICAgCisgICAgICAgIAorQC8vIEltcG9ydCBzeW1ib2xzIHJlcXVpcmVkIGZyb20gb3RoZXIgZmlsZXMKK0AvLyAoRm9yIGV4YW1wbGUgdGFibGVzKQorICAgICAgICAKKyAgICAgICAgICAgICAgICAKK0AvLyBTZXQgZGVidWdnaW5nIGxldmVsICAgICAgICAKK0AvL0RFQlVHX09OICAgIFNFVEwge1RSVUV9CisKKworCitALy8gR3VhcmRpbmcgaW1wbGVtZW50YXRpb24gYnkgdGhlIHByb2Nlc3NvciBuYW1lCisgICAgCisgICAgCisgICAgCisgICAgICBALy8gR3VhcmRpbmcgaW1wbGVtZW50YXRpb24gYnkgdGhlIHByb2Nlc3NvciBuYW1lCisgICAgCisgICAgCisgICAgCitALy9JbnB1dCBSZWdpc3RlcnMKKworI2RlZmluZSBwU3JjICAgICAgICAgICAgcjAKKyNkZWZpbmUgcERzdCAgICAgICAgICAgIHIxCisjZGVmaW5lIHBGRlRTcGVjICAgICAgICByMgorI2RlZmluZSBzY2FsZSAgICAgICAgICAgcjMKKworCitALy8gT3V0cHV0IHJlZ2lzdGVycworI2RlZmluZSByZXN1bHQgICAgICAgICAgcjAKKworQC8vTG9jYWwgU2NyYXRjaCBSZWdpc3RlcnMKKworI2RlZmluZSBhcmdUd2lkZGxlICAgICAgcjEKKyNkZWZpbmUgYXJnRHN0ICAgICAgICAgIHIyCisjZGVmaW5lIGFyZ1NjYWxlICAgICAgICByNAorI2RlZmluZSB0bXBPcmRlciAgICAgICAgcjQKKyNkZWZpbmUgcFR3aWRkbGUgICAgICAgIHI0CisjZGVmaW5lIHBPdXQgICAgICAgICAgICByNQorI2RlZmluZSBzdWJGRlRTaXplICAgICAgcjcgICAgIAorI2RlZmluZSBzdWJGRlROdW0gICAgICAgcjYKKyNkZWZpbmUgTiAgICAgICAgICAgICAgIHI2CisjZGVmaW5lIG9yZGVyICAgICAgICAgICByMTQKKyNkZWZpbmUgZGlmZiAgICAgICAgICAgIHI5CisjZGVmaW5lIGNvdW50ICAgICAgICAgICByOCAgICAgICAgICAgICAgICAgICBALy8gVG90YWwgbnVtIG9mIHJhZGl4IHN0YWdlcyByZXF1aXJlZCB0byBjb21wbGUgdGhlIEZGVAorI2RlZmluZSB4MHIgICAgICAgICAgICAgcjQgICAgCisjZGVmaW5lIHgwaSAgICAgICAgICAgICByNQorI2RlZmluZSBkaWZmTWludXNPbmUgICAgcjIKKyNkZWZpbmUgcm91bmQgICAgICAgICAgIHIzCisKKyNkZWZpbmUgcE91dDEgICAgICAgICAgIHIyCisjZGVmaW5lIHNpemUgICAgICAgICAgICByNworI2RlZmluZSBzdGVwICAgICAgICAgICAgcjggICAgICAgICAgICAKKyNkZWZpbmUgc3RlcDEgICAgICAgICAgIHI5CisjZGVmaW5lIHR3U3RlcCAgICAgICAgICByMTAKKyNkZWZpbmUgcFR3aWRkbGVUbXAgICAgIHIxMQorI2RlZmluZSBhcmdUd2lkZGxlMSAgICAgcjEyCisjZGVmaW5lIHplcm8gICAgICAgICAgICByMTQKKworQC8vIE5lb24gcmVnaXN0ZXJzCisKKyNkZWZpbmUgZFgwICAgICBEMC5TMzIKKyNkZWZpbmUgZFNoaWZ0ICBEMS5TMzIKKyNkZWZpbmUgZFgxICAgICBEMS5TMzIKKyNkZWZpbmUgZFkwICAgICBEMi5TMzIKKyNkZWZpbmUgZFkxICAgICBEMy5TMzIKKyNkZWZpbmUgZFgwciAgICBEMC5TMzIgICAgICAgICAgICAKKyNkZWZpbmUgZFgwaSAgICBEMS5TMzIKKyNkZWZpbmUgZFgxciAgICBEMi5TMzIKKyNkZWZpbmUgZFgxaSAgICBEMy5TMzIKKyNkZWZpbmUgZFcwciAgICBENC5TMzIKKyNkZWZpbmUgZFcwaSAgICBENS5TMzIKKyNkZWZpbmUgZFcxciAgICBENi5TMzIKKyNkZWZpbmUgZFcxaSAgICBENy5TMzIKKyNkZWZpbmUgZFQwICAgICBEOC5TMzIKKyNkZWZpbmUgZFQxICAgICBEOS5TMzIKKyNkZWZpbmUgZFQyICAgICBEMTAuUzMyCisjZGVmaW5lIGRUMyAgICAgRDExLlMzMgorI2RlZmluZSBxVDAgICAgIFE2LlM2NAorI2RlZmluZSBxVDEgICAgIFE3LlM2NAorI2RlZmluZSBxVDIgICAgIFE4LlM2NAorI2RlZmluZSBxVDMgICAgIFE5LlM2NAorI2RlZmluZSBkWTByICAgIEQ0LlMzMgorI2RlZmluZSBkWTBpICAgIEQ1LlMzMgorI2RlZmluZSBkWTFyICAgIEQ2LlMzMgorI2RlZmluZSBkWTFpICAgIEQ3LlMzMgorCisjZGVmaW5lIGRZMiAgICAgRDQuUzMyCisjZGVmaW5lIGRZMyAgICAgRDUuUzMyCisjZGVmaW5lIGRXMCAgICAgRDYuUzMyCisjZGVmaW5lIGRXMSAgICAgRDcuUzMyCisjZGVmaW5lIGRXMFRtcCAgRDEwLlMzMgorI2RlZmluZSBkVzFOZWcgIEQxMS5TMzIKKworCitAIFN0cnVjdHVyZSBvZmZzZXRzIGZvciB0aGUgRkZUU3BlYyAgICAgICAgICAgICAKKyAgICAgICAgLnNldCAgICBBUk1zRkZUU3BlY19OLCAwCisgICAgICAgIC5zZXQgICAgQVJNc0ZGVFNwZWNfcEJpdFJldiwgNAorICAgICAgICAuc2V0ICAgIEFSTXNGRlRTcGVjX3BUd2lkZGxlLCA4CisgICAgICAgIC5zZXQgICAgQVJNc0ZGVFNwZWNfcEJ1ZiwgMTIKKworCisgICAgICAgIC5NQUNSTyBGRlRTVEFHRSBzY2FsZWQsIGludmVyc2UsIG5hbWUKKyAgICAgICAgCisgICAgICAgIEAvLyBSZWFkIHRoZSBzaXplIGZyb20gc3RydWN0dXJlIGFuZCB0YWtlIGxvZworICAgICAgICBMRFIgICAgIE4sIFtwRkZUU3BlYywgI0FSTXNGRlRTcGVjX05dCisgICAgICAgIAorICAgICAgICBALy8gUmVhZCBvdGhlciBzdHJ1Y3R1cmUgcGFyYW1ldGVycworICAgICAgICBMRFIgICAgIHBUd2lkZGxlLCBbcEZGVFNwZWMsICNBUk1zRkZUU3BlY19wVHdpZGRsZV0KKyAgICAgICAgTERSICAgICBwT3V0LCBbcEZGVFNwZWMsICNBUk1zRkZUU3BlY19wQnVmXQorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBNT1YgICAgIHNpemUsTixBU1IgIzEgICAgICAgICAgICAgICAgICAgIEAvLyBwcmVzZXJ2ZSB0aGUgY29udGVudHMgb2YgTgorICAgICAgICBNT1YgICAgIHN0ZXAsTixMU0wgIzIgICAgICAgICAgICAgICAgICAgIEAvLyBzdGVwID0gTi8yICogOCBieXRlcworICAgICAgICAKKyAgICAgICAgCisgICAgICAgIEAvLyBaKGspID0gMS8yIHtbRihrKSArICBGJyhOLzItayldICtqKldeKC1rKSBbRihrKSAtICBGJyhOLzItayldfQorICAgICAgICBALy8gTm90ZTogV14oaykgaXMgc3RvcmVkIGFzIG5lZ2F0ZWQgdmFsdWUgYW5kIGFsc28gbmVlZCB0byBjb25qdWdhdGUgdGhlIHZhbHVlcyBmcm9tIHRoZSB0YWJsZQorICAgICAgICAKKyAgICAgICAgQC8vIFooMCkgOiBubyBuZWVkIG9mIHR3aWRkbGUgbXVsdGlwbHkKKyAgICAgICAgQC8vIFooMCkgPSAxLzIgeyBbRigwKSArICBGJyhOLzIpXSAraiBbRigwKSAtICBGJyhOLzIpXSB9CisgICAgICAgIAorICAgICAgICBWTEQxICAgIGRYMCxbcFNyY10sc3RlcAorICAgICAgICBBREQgICAgIHBPdXQxLHBPdXQsc3RlcCAgICAgICAgICAgICAgICAgIEAvLyBwT3V0MSA9IHBPdXQrIE4vMio4IGJ5dGVzIAorICAgICAgICAgICAgICAgIAorICAgICAgICBWTEQxICAgIGRYMSxbcFNyY10hCisgICAgICAgIFNVQiAgICAgdHdTdGVwLHN0ZXAsc2l6ZSxMU0wgIzEgICAgICAgICAgQC8vIHR3U3RlcCA9IDNOLzggKiA4IGJ5dGVzIHBvaW50aW5nIHRvIFdeMQorICAgICAgICAKKyAgICAgICAgTU9WICAgICBzdGVwMSxzaXplLExTTCAjMiAgICAgICAgICAgICAgICBALy8gc3RlcDEgPSBOLzQgKiA4ID0gTi8yKjQgYnl0ZXMKKyAgICAgICAgU1VCICAgICBzdGVwMSxzdGVwMSwjOCAgICAgICAgICAgICAgICAgICBALy8gKE4vNC0xKSo4IGJ5dGVzCisgICAgICAgIAorICAgICAgICBWSEFERCAgICBkWTAsZFgwLGRYMSAgICAgICAgICAgICAgICAgICAgIEAvLyBbYitkIHwgYStjXQorICAgICAgICBWSFNVQiAgICBkWTEsZFgwLGRYMSAgICAgICAgICAgICAgICAgICAgIEAvLyBbYi1kIHwgYS1jXSAKKyAgICAgICAgVlpJUCAgICBkWTAsZFkxICAgICAgICAgICAgICAgICAgICAgICAgICBALy8gZFkwPSBbYS1jIHwgYStjXSA7ZFkxPSBbYi1kIHwgYitkXSAKKyAgICAgICAgCisgICAgICAgIC5pZmVxcyAgIlxzY2FsZWQiLCAiVFJVRSIKKyAgICAgICAgICAgIFZIU1VCICAgZFgwLGRZMCxkWTEKKyAgICAgICAgICAgIFNVQlMgICAgc2l6ZSxzaXplLCMyCisgICAgICAgICAgICBWSEFERCAgIGRYMSxkWTAsZFkxCisgICAgICAgIC5lbHNlCisgICAgICAgICAgICBWU1VCICAgZFgwLGRZMCxkWTEKKyAgICAgICAgICAgIFNVQlMgICAgc2l6ZSxzaXplLCMyCisgICAgICAgICAgICBWQUREICAgZFgxLGRZMCxkWTEKKyAgICAgICAgLmVuZGlmCisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBTVUIgICAgIHBTcmMscFNyYyxzdGVwCisgICAgICAgIAorICAgICAgICBWU1QxICAgIGRYMFswXSxbcE91dDFdIQorICAgICAgICBBREQgICAgIHBUd2lkZGxlVG1wLHBUd2lkZGxlLCM4ICAgICAgICAgICAgICAgIEAvLyBXXjIKKyAgICAgICAgVlNUMSAgICBkWDFbMV0sW3BPdXQxXSEKKyAgICAgICAgQUREICAgICBhcmdUd2lkZGxlMSxwVHdpZGRsZSx0d1N0ZXAgICAgICAgICAgICBALy8gV14xIAorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIEJMVCAgICAgZGVjcmVtZW50U2NhbGVcbmFtZQorICAgICAgICBCRVEgICAgIGxhc3RFbGVtZW50XG5hbWUKKyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgQC8vIFooaykgPSAxLzJbRihrKSArICBGJyhOLzItayldICtqKldeKC1rKSBbRihrKSAtICBGJyhOLzItayldCisgICAgICAgIEAvLyBOb3RlOiBXXmsgaXMgc3RvcmVkIGFzIG5lZ2F0aXZlIHZhbHVlcyBpbiB0aGUgdGFibGUgYW5kIGFsc28gbmVlZCB0byBjb25qdWdhdGUgdGhlIHZhbHVlcyBmcm9tIHRoZSB0YWJsZQorICAgICAgICBALy8gUHJvY2VzcyA0IGVsZW1lbnRzIGF0IGEgdGltZS4gRS5nOiBaKDEpLFooMikgYW5kIFooTi8yLTIpLFooTi8yLTEpIHNpbmNlIGJvdGggb2YgdGhlbQorICAgICAgICBALy8gcmVxdWlyZSBGKDEpLEYoMikgYW5kIEYoTi8yLTIpLEYoTi8yLTEpCisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgU1VCICAgICBzdGVwLHN0ZXAsIzI0CitldmVuT2RkQnV0dGVyZmx5TG9vcFxuYW1lIDogICAgIAorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIFZMRDEgICAgZFcwcixbYXJnVHdpZGRsZTFdLHN0ZXAxCisgICAgICAgIFZMRDEgICAgZFcxcixbYXJnVHdpZGRsZTFdIQorICAgICAgICAKKyAgICAgICAgVkxEMiAgICB7ZFgwcixkWDBpfSxbcFNyY10sc3RlcAorICAgICAgICBTVUIgICAgIGFyZ1R3aWRkbGUxLGFyZ1R3aWRkbGUxLHN0ZXAxCisgICAgICAgIFZMRDIgICAge2RYMXIsZFgxaX0sW3BTcmNdIQorICAgICAgICAKKyAgICAgICAgU1VCICAgICBzdGVwMSxzdGVwMSwjOCAgICAgICAgICAgICAgICAgICAgICAgICAgQC8vIChOLzQtMikqOCBieXRlcworICAgICAgICBWTEQxICAgIGRXMGksW3BUd2lkZGxlVG1wXSxzdGVwMQorICAgICAgICBWTEQxICAgIGRXMWksW3BUd2lkZGxlVG1wXSEKKyAgICAgICAgU1VCICAgICBwU3JjLHBTcmMsc3RlcAorICAgICAgICAKKyAgICAgICAgU1VCICAgICBwVHdpZGRsZVRtcCxwVHdpZGRsZVRtcCxzdGVwMQorICAgICAgICBWUkVWNjQgIGRYMXIsZFgxcgorICAgICAgICBWUkVWNjQgIGRYMWksZFgxaQorICAgICAgICBTVUJTICAgIHNpemUsc2l6ZSwjNAorICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBWSFNVQiAgICBkVDIsZFgwcixkWDFyICAgICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyBhLWMKKyAgICAgICAgVkhBREQgICAgZFQzLGRYMGksZFgxaSAgICAgICAgICAgICAgICAgICAgICAgICAgICBALy8gYitkCisgICAgICAgIFNVQiAgICAgc3RlcDEsc3RlcDEsIzgKKyAgICAgICAgVkhBREQgICAgZFQwLGRYMHIsZFgxciAgICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyBhK2MKKyAgICAgICAgVkhTVUIgICAgZFQxLGRYMGksZFgxaSAgICAgICAgICAgICAgICAgICAgICAgICAgICBALy8gYi1kCisgICAgICAgIAorICAgICAgICBWWklQICAgIGRXMXIsZFcxaQorICAgICAgICBWWklQICAgIGRXMHIsZFcwaQorICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIFZNVUxMICAgcVQwLGRXMXIsZFQyCisgICAgICAgIFZNTFNMICAgcVQwLGRXMWksZFQzCisgICAgICAgIFZNVUxMICAgcVQxLGRXMXIsZFQzCisgICAgICAgIFZNTEFMICAgcVQxLGRXMWksZFQyCisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBWTVVMTCAgIHFUMixkVzByLGRUMgorICAgICAgICBWTUxBTCAgIHFUMixkVzBpLGRUMworICAgICAgICBWTVVMTCAgIHFUMyxkVzByLGRUMworICAgICAgICBWTUxTTCAgIHFUMyxkVzBpLGRUMgorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIFZSU0hSTiAgZFgxcixxVDAsIzMxCisgICAgICAgIFZSU0hSTiAgZFgxaSxxVDEsIzMxCisgICAgICAgIAorICAgICAgICAuaWZlcXMgICJcc2NhbGVkIiwgIlRSVUUiCisgICAgICAgICAgICBWSEFERCAgICBkWTFyLGRUMCxkWDFpICAgICAgICAgICAgICAgICAgICAgICAgICAgQC8vIEYoTi8yIC0xKQorICAgICAgICAgICAgVkhTVUIgICAgZFkxaSxkWDFyLGRUMQorICAgICAgICAuZWxzZQorICAgICAgICAgICAgVkFERCAgICBkWTFyLGRUMCxkWDFpICAgICAgICAgICAgICAgICAgICAgICAgICAgQC8vIEYoTi8yIC0xKQorICAgICAgICAgICAgVlNVQiAgICBkWTFpLGRYMXIsZFQxCisKKyAgICAgICAgLmVuZGlmCisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgVlJFVjY0ICBkWTFyLGRZMXIKKyAgICAgICAgVlJFVjY0ICBkWTFpLGRZMWkKKyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIFZSU0hSTiAgZFgwcixxVDIsIzMxCisgICAgICAgIFZSU0hSTiAgZFgwaSxxVDMsIzMxCisgICAgICAgIAorICAgICAgICAuaWZlcXMgICJcc2NhbGVkIiwgIlRSVUUiCisgICAgICAgICAgICBWSEFERCAgICBkWTByLGRUMCxkWDBpICAgICAgICAgICAgICAgICAgICAgICAgICAgQC8vIEYoMSkKKyAgICAgICAgICAgIFZIU1VCICAgIGRZMGksZFQxLGRYMHIKKyAgICAgICAgLmVsc2UKKyAgICAgICAgICAgIFZBREQgICAgZFkwcixkVDAsZFgwaSAgICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyBGKDEpCisgICAgICAgICAgICBWU1VCICAgIGRZMGksZFQxLGRYMHIKKyAgICAgICAgLmVuZGlmCisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgVlNUMiAgICB7ZFkwcixkWTBpfSxbcE91dDFdLHN0ZXAKKyAgICAgICAgVlNUMiAgICB7ZFkxcixkWTFpfSxbcE91dDFdIQorICAgICAgICBTVUIgICAgIHBPdXQxLHBPdXQxLHN0ZXAKKyAgICAgICAgU1VCICAgICBzdGVwLHN0ZXAsIzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyAoTi8yLTQpKjggYnl0ZXMKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBCR1QgICAgIGV2ZW5PZGRCdXR0ZXJmbHlMb29wXG5hbWUKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBTVUIgICAgIHBTcmMscFNyYywjOCAgICAgICAgICAgICAgICBALy8gc2V0IGJvdGggdGhlIHB0cnMgdG8gdGhlIGxhc3QgZWxlbWVudAorICAgICAgICBTVUIgICAgIHBPdXQxLHBPdXQxLCM4CisgICAgICAgIAorICAgICAgICBALy8gTGFzdCBlbGVtZW50IGNhbiBiZSBleHBhbmRlZCBhcyBmb2xsb3dzCisgICAgICAgIEAvLyAxLzJbWihrKSArIFonKGspXSAtIGogd14tayBbWihrKSAtIFonKGspXSAoc2luY2UgV15rIGlzIHN0b3JlZCBhcyAtdmUpCisgICAgICAgIEAvLyAxLzJbKGEramIpICsgKGEtamIpXSAtIGogd14tayBbKGEramIpIC0gKGEtamIpXQorICAgICAgICBALy8gMS8yWzJhK2owXSAtIGogKGMtamQpIFswK2oyYl0KKyAgICAgICAgQC8vIChhK2JjLCAtYmQpCisgICAgICAgIEAvLyBTaW5jZSAoYyxkKSA9ICgwLDEpIGZvciB0aGUgbGFzdCBlbGVtZW50LCByZXN1bHQgaXMganVzdCAoYSwtYikKKyAgICAgICAgCitsYXN0RWxlbWVudFxuYW1lIDogICAgICAKKyAgICAgICAgVkxEMSAgICBkWDByLFtwU3JjXQorICAgICAgICAKKyAgICAgICAgLmlmZXFzICAiXHNjYWxlZCIsICJUUlVFIgorICAgICAgICAgICAgVlNIUiAgICBkWDByLGRYMHIsIzEKKyAgICAgICAgLmVuZGlmCisgICAgICAgIAorICAgICAgICBWU1QxICAgIGRYMHJbMF0sW3BPdXQxXSEKKyAgICAgICAgVk5FRyAgICBkWDByLGRYMHIKKyAgICAgICAgVlNUMSAgICBkWDByWzFdLFtwT3V0MV0KKyAgICAgICAgCisgICAgICAgIAorCitkZWNyZW1lbnRTY2FsZVxuYW1lIDogICAgICAgICAgCisgICAgICAgIAorICAgICAgICAuaWZlcXMgICJcc2NhbGVkIiwgIlRSVUUiCisgICAgICAgICAgICBTVUIgc2NhbGUsc2NhbGUsIzEKKyAgICAgICAgLmVuZGlmCisgICAgICAgIAorICAgICAgICAuZW5kbQorICAgICAgICAKKyAgICAgICAgTV9TVEFSVCBhcm1TUF9GRlRJbnZfQ0NTVG9SX1MzMl9wcmVUd2lkZGxlUmFkaXgyX3Vuc2FmZSxyNAorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIEZGVFNUQUdFICJGQUxTRSIsIlRSVUUiLEludgorICAgICAgICBNX0VORAorICAgICAgICAKKyAgICAgICAgTV9TVEFSVCBhcm1TUF9GRlRJbnZfQ0NTVG9SX1MzMl9TZnNfcHJlVHdpZGRsZVJhZGl4Ml91bnNhZmUscjQKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBGRlRTVEFHRSAiVFJVRSIsIlRSVUUiLEludlNmcworICAgICAgICBNX0VORAorCisgICAgICAgIAorICAgICAgICAuZW5kCmRpZmYgLS1naXQgYS9kbC9hcm1TUF9GRlRfQ1RvQ19GQzMyX1JhZGl4Ml9mc191bnNhZmVfcy5TIGIvZGwvYXJtU1BfRkZUX0NUb0NfRkMzMl9SYWRpeDJfZnNfdW5zYWZlX3MuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNWFlZmQ1Ci0tLSAvZGV2L251bGwKKysrIGIvZGwvYXJtU1BfRkZUX0NUb0NfRkMzMl9SYWRpeDJfZnNfdW5zYWZlX3MuUwpAQCAtMCwwICsxLDEzNCBAQAorQC8vCitALy8gIENvcHlyaWdodCAoYykgMjAxMyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KK0AvLworQC8vICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCitALy8gIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorQC8vICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCitALy8gIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKK0AvLyAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCitALy8KK0AvLyAgVGhpcyBpcyBhIG1vZGlmaWNhdGlvbiBvZiBhcm1TUF9GRlRfQ1RvQ19TQzMyX1JhZGl4Ml9mc191bnNhZmVfcy5TCitALy8gIHRvIHN1cHBvcnQgZmxvYXQgaW5zdGVhZCBvZiBTQzMyLgorQC8vCisKK0AvLworQC8vIERlc2NyaXB0aW9uOgorQC8vIENvbXB1dGUgdGhlIGZpcnN0IHN0YWdlIG9mIGEgUmFkaXggMiBESVQgaW4tb3JkZXIgb3V0LW9mLXBsYWNlIEZGVAorQC8vIHN0YWdlIGZvciBhIE4gcG9pbnQgY29tcGxleCBzaWduYWwuCitALy8KK0AvLworCisKK0AvLyBJbmNsdWRlIHN0YW5kYXJkIGhlYWRlcnMKKworI2luY2x1ZGUgIm9teHR5cGVzX3MuaCIKKyNpbmNsdWRlICJhcm1DT01NX3MuaCIKKworCitALy8gSW1wb3J0IHN5bWJvbHMgcmVxdWlyZWQgZnJvbSBvdGhlciBmaWxlcworQC8vIChGb3IgZXhhbXBsZSB0YWJsZXMpCisKKworCisKK0AvLyBTZXQgZGVidWdnaW5nIGxldmVsCitALy9ERUJVR19PTiAgICBTRVRMIHtUUlVFfQorCisKKworQC8vIEd1YXJkaW5nIGltcGxlbWVudGF0aW9uIGJ5IHRoZSBwcm9jZXNzb3IgbmFtZQorCisKKworQC8vIEd1YXJkaW5nIGltcGxlbWVudGF0aW9uIGJ5IHRoZSBwcm9jZXNzb3IgbmFtZQorCisKK0AvL0lucHV0IFJlZ2lzdGVycworCisjZGVmaW5lIHBTcmMgICAgICAgICAgICByMAorI2RlZmluZSBwRHN0ICAgICAgICAgICAgcjIKKyNkZWZpbmUgcFR3aWRkbGUgICAgICAgIHIxCisjZGVmaW5lIHBQaW5nUG9uZ0J1ZiAgICByNQorI2RlZmluZSBzdWJGRlROdW0gICAgICAgcjYKKyNkZWZpbmUgc3ViRkZUU2l6ZSAgICAgIHI3CisKKworQC8vT3V0cHV0IFJlZ2lzdGVycworCisKK0AvL0xvY2FsIFNjcmF0Y2ggUmVnaXN0ZXJzCisKKyNkZWZpbmUgcG9pbnRTdGVwICAgICAgIHIzCisjZGVmaW5lIG91dFBvaW50U3RlcCAgICByMworI2RlZmluZSBncnBTaXplICAgICAgICAgcjQKKyNkZWZpbmUgc2V0Q291bnQgICAgICAgIHI0CisjZGVmaW5lIHN0ZXAgICAgICAgICAgICByOAorI2RlZmluZSBkc3RTdGVwICAgICAgICAgcjgKKworQC8vIE5lb24gUmVnaXN0ZXJzCisKKyNkZWZpbmUgZFgwICAgICBEMC5GMzIKKyNkZWZpbmUgZFgxICAgICBEMS5GMzIKKyNkZWZpbmUgZFkwICAgICBEMi5GMzIKKyNkZWZpbmUgZFkxICAgICBEMy5GMzIKKworCisgICAgICAgIC5NQUNSTyBGRlRTVEFHRSBzY2FsZWQsIGludmVyc2UsIG5hbWUKKworICAgICAgICBALy8gRGVmaW5lIHN0YWNrIGFyZ3VtZW50cworCisKKyAgICAgICAgQC8vIHVwZGF0ZSBzdWJGRlRTaXplIGFuZCBzdWJGRlROdW0gaW50byBSTjYgYW5kIFJONyBmb3IgdGhlIG5leHQgc3RhZ2UKKworCisgICAgICAgIE1PViAgICAgICAgc3ViRkZUU2l6ZSwjMgorICAgICAgICBMU1IgICAgICAgIGdycFNpemUsc3ViRkZUTnVtLCMxCisgICAgICAgIE1PViAgICAgICAgc3ViRkZUTnVtLGdycFNpemUKKworCisgICAgICAgIEAvLyBwVDArMSBpbmNyZW1lbnRzIHBUMCBieSA4IGJ5dGVzCisgICAgICAgIEAvLyBwVDArcG9pbnRTdGVwID0gaW5jcmVtZW50IG9mIDgqcG9pbnRTdGVwIGJ5dGVzID0gNCpncnBTaXplIGJ5dGVzCisgICAgICAgIEAvLyBOb3RlOiBvdXRQb2ludFN0ZXAgPSBwb2ludFN0ZXAgZm9yIGZpcnN0c3RhZ2UKKyAgICAgICAgQC8vIE5vdGU6IHNldENvdW50ID0gZ3JwU2l6ZS8yIChyZXVzZSB0aGUgdXBkYXRlZCBncnBTaXplIGZvciBzZXRDb3VudCkKKworICAgICAgICBNT1YgICAgICAgIHBvaW50U3RlcCxncnBTaXplLExTTCAjMworICAgICAgICBSU0IgICAgICAgIHN0ZXAscG9pbnRTdGVwLCM4CisKKworICAgICAgICBALy8gTG9vcCBvbiB0aGUgc2V0cyBmb3IgZ3JwIHplcm8KKworZ3JwWmVyb1NldExvb3BcbmFtZSA6CisKKyAgICAgICAgVkxEMSAgICBkWDAsW3BTcmNdLHBvaW50U3RlcAorICAgICAgICBWTEQxICAgIGRYMSxbcFNyY10sc3RlcCAgICAgICAgICAgICAgICAgICBALy8gc3RlcCA9IC1wb2ludFN0ZXAgKyA4CisgICAgICAgIFNVQlMgICAgc2V0Q291bnQsc2V0Q291bnQsIzEKKworICAgICAgICBWQUREICAgIGRZMCxkWDAsZFgxCisgICAgICAgIFZTVUIgICAgZFkxLGRYMCxkWDEKKworICAgICAgICBWU1QxICAgIGRZMCxbcERzdF0sb3V0UG9pbnRTdGVwCisgICAgICAgIEAvLyBkc3RTdGVwID0gIHN0ZXAgPSAtcG9pbnRTdGVwICsgOAorICAgICAgICBWU1QxICAgIGRZMSxbcERzdF0sZHN0U3RlcAorCisgICAgICAgIEJHVCAgICAgZ3JwWmVyb1NldExvb3BcbmFtZQorCisKKyAgICAgICAgQC8vIHJlc2V0IHBTcmMgdG8gcERzdCBmb3IgdGhlIG5leHQgc3RhZ2UKKyAgICAgICAgU1VCICAgICBwU3JjLHBEc3QscG9pbnRTdGVwICAgICAgICAgICAgICAgICAgICAgQC8vIHBEc3QgLT0gMipncnBTaXplCisgICAgICAgIE1PViAgICAgcERzdCxwUGluZ1BvbmdCdWYKKworICAgICAgICAuZW5kbQorCisKKworICAgICAgICBNX1NUQVJUIGFybVNQX0ZGVEZ3ZF9DVG9DX0ZDMzJfUmFkaXgyX2ZzX091dE9mUGxhY2VfdW5zYWZlLHI0CisgICAgICAgIEZGVFNUQUdFICJGQUxTRSIsIkZBTFNFIixmd2QKKyAgICAgICAgTV9FTkQKKworCisKKyAgICAgICAgTV9TVEFSVCBhcm1TUF9GRlRJbnZfQ1RvQ19GQzMyX1JhZGl4Ml9mc19PdXRPZlBsYWNlX3Vuc2FmZSxyNAorICAgICAgICBGRlRTVEFHRSAiRkFMU0UiLCJUUlVFIixpbnYKKyAgICAgICAgTV9FTkQKKworCS5lbmQKZGlmZiAtLWdpdCBhL2RsL2FybVNQX0ZGVF9DVG9DX0ZDMzJfUmFkaXgyX2xzX3Vuc2FmZV9zLlMgYi9kbC9hcm1TUF9GRlRfQ1RvQ19GQzMyX1JhZGl4Ml9sc191bnNhZmVfcy5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwMDA4MTMKLS0tIC9kZXYvbnVsbAorKysgYi9kbC9hcm1TUF9GRlRfQ1RvQ19GQzMyX1JhZGl4Ml9sc191bnNhZmVfcy5TCkBAIC0wLDAgKzEsMTUzIEBACitALy8KK0AvLyAgQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorQC8vCitALy8gIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKK0AvLyAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCitALy8gIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKK0AvLyAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorQC8vICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KK0AvLworQC8vICBUaGlzIGlzIGEgbW9kaWZpY2F0aW9uIG9mIGFybVNQX0ZGVF9DVG9DX1NDMzJfUmFkaXgyX2xzX3Vuc2FmZV9zLlMKK0AvLyAgdG8gc3VwcG9ydCBmbG9hdCBpbnN0ZWFkIG9mIFNDMzIuCitALy8KKworQC8vCitALy8gRGVzY3JpcHRpb246CitALy8gQ29tcHV0ZSB0aGUgbGFzdCBzdGFnZSBvZiBhIFJhZGl4IDIgRElUIGluLW9yZGVyIG91dC1vZi1wbGFjZSBGRlQKK0AvLyBzdGFnZSBmb3IgYSBOIHBvaW50IGNvbXBsZXggc2lnbmFsLgorQC8vCitALy8KKworCitALy8gSW5jbHVkZSBzdGFuZGFyZCBoZWFkZXJzCisKKyNpbmNsdWRlICJvbXh0eXBlc19zLmgiCisjaW5jbHVkZSAiYXJtQ09NTV9zLmgiCisKKworQC8vIEltcG9ydCBzeW1ib2xzIHJlcXVpcmVkIGZyb20gb3RoZXIgZmlsZXMKK0AvLyAoRm9yIGV4YW1wbGUgdGFibGVzKQorCisKKworCitALy8gU2V0IGRlYnVnZ2luZyBsZXZlbAorQC8vREVCVUdfT04gICAgU0VUTCB7VFJVRX0KKworCitALy8gR3VhcmRpbmcgaW1wbGVtZW50YXRpb24gYnkgdGhlIHByb2Nlc3NvciBuYW1lCisKKworQC8vSW5wdXQgUmVnaXN0ZXJzCisKKyNkZWZpbmUgcFNyYyAgICAgICAgICAgIHIwCisjZGVmaW5lIHBEc3QgICAgICAgICAgICByMgorI2RlZmluZSBwVHdpZGRsZSAgICAgICAgcjEKKyNkZWZpbmUgc3ViRkZUTnVtICAgICAgIHI2CisjZGVmaW5lIHN1YkZGVFNpemUgICAgICByNworCisKK0AvL091dHB1dCBSZWdpc3RlcnMKKworCitALy9Mb2NhbCBTY3JhdGNoIFJlZ2lzdGVycworCisKKyNkZWZpbmUgb3V0UG9pbnRTdGVwICAgIHIzCisjZGVmaW5lIGdycENvdW50ICAgICAgICByNAorI2RlZmluZSBkc3RTdGVwICAgICAgICAgcjUKKyNkZWZpbmUgcFRtcCAgICAgICAgICAgIHI0CisKK0AvLyBOZW9uIFJlZ2lzdGVycworCisjZGVmaW5lIGRXciAgICAgZDAuZjMyCisjZGVmaW5lIGRXaSAgICAgZDEuZjMyCisjZGVmaW5lIGRYcjAgICAgZDIuZjMyCisjZGVmaW5lIGRYaTAgICAgZDMuZjMyCisjZGVmaW5lIGRYcjEgICAgZDQuZjMyCisjZGVmaW5lIGRYaTEgICAgZDUuZjMyCisjZGVmaW5lIGRZcjAgICAgZDYuZjMyCisjZGVmaW5lIGRZaTAgICAgZDcuZjMyCisjZGVmaW5lIGRZcjEgICAgZDguZjMyCisjZGVmaW5lIGRZaTEgICAgZDkuZjMyCisjZGVmaW5lIHFUMCAgICAgZDEwLmYzMgorI2RlZmluZSBxVDEgICAgIGQxMi5mMzIKKworICAgICAgICAuTUFDUk8gRkZUU1RBR0Ugc2NhbGVkLCBpbnZlcnNlLCBuYW1lCisKKworICAgICAgICBNT1YgICAgIG91dFBvaW50U3RlcCxzdWJGRlRTaXplLExTTCAjMworICAgICAgICBALy8gVXBkYXRlIGdycENvdW50IGFuZCBncnBTaXplIHJpZ2h0YXdheQorCisgICAgICAgIE1PViAgICAgc3ViRkZUTnVtLCMxICAgICAgICAgICAgICAgICAgICAgICAgICAgIEAvL2FmdGVyIHRoZSBsYXN0IHN0YWdlCisgICAgICAgIExTTCAgICAgZ3JwQ291bnQsc3ViRkZUU2l6ZSwjMQorCisgICAgICAgIEAvLyB1cGRhdGUgc3ViRkZUU2l6ZSBmb3IgdGhlIG5leHQgc3RhZ2UKKyAgICAgICAgTU9WICAgICBzdWJGRlRTaXplLGdycENvdW50CisKKyAgICAgICAgUlNCICAgICAgZHN0U3RlcCxvdXRQb2ludFN0ZXAsIzE2CisKKworICAgICAgICBALy8gTG9vcCBvbiAyIGdycHMgYXQgYSB0aW1lIGZvciB0aGUgbGFzdCBzdGFnZQorCityYWRpeDJsc0dycExvb3BcbmFtZSA6CisgICAgICAgIEAgZFdyID0gW3BUd2lkZGxlWzBdLlJlLCBwVHdpZGRsZVsxXS5SZV0KKyAgICAgICAgQCBkV2kgPSBbcFR3aWRkbGVbMF0uSW0sIHBUd2lkZGxlWzFdLkltXQorICAgICAgICBWTEQyICAgIHtkV3IsZFdpfSxbcFR3aWRkbGUgOjY0XSEKKworICAgICAgICBAIGRYcjAgPSBbcFNyY1swXS5SZSwgcFNyY1syXS5SZV0KKyAgICAgICAgQCBkWGkwID0gW3BTcmNbMF0uSW0sIHBTcmNbMl0uSW1dCisgICAgICAgIEAgZFhyMSA9IFtwU3JjWzFdLlJlLCBwU3JjWzNdLlJlXQorICAgICAgICBAIGRYaTEgPSBbcFNyY1sxXS5JbSwgcFNyY1szXS5JbV0KKyAgICAgICAgVkxENCAgICB7ZFhyMCxkWGkwLGRYcjEsZFhpMX0sW3BTcmMgOjEyOF0hCisgICAgICAgIFNVQlMgICAgZ3JwQ291bnQsZ3JwQ291bnQsIzQgICAgICAgICAgICAgICAgICAgQC8vIGdycENvdW50IGlzIG11bHRpcGxpZWQgYnkgMgorCisgICAgICAgIC5pZmVxcyAgIlxpbnZlcnNlIiwgIlRSVUUiCisgICAgICAgICAgICBWTVVMICAgcVQwLGRXcixkWHIxCisgICAgICAgICAgICBWTUxBICAgcVQwLGRXaSxkWGkxICAgICAgICAgICAgICAgICAgICAgICBALy8gcmVhbCBwYXJ0CisgICAgICAgICAgICBWTVVMICAgcVQxLGRXcixkWGkxCisgICAgICAgICAgICBWTUxTICAgcVQxLGRXaSxkWHIxICAgICAgICAgICAgICAgICAgICAgICBALy8gaW1hZyBwYXJ0CisKKyAgICAgICAgLmVsc2UKKworICAgICAgICAgICAgVk1VTCAgIHFUMCxkV3IsZFhyMQorICAgICAgICAgICAgVk1MUyAgIHFUMCxkV2ksZFhpMSAgICAgICAgICAgICAgICAgICAgICAgQC8vIHJlYWwgcGFydAorICAgICAgICAgICAgVk1VTCAgIHFUMSxkV3IsZFhpMQorICAgICAgICAgICAgVk1MQSAgIHFUMSxkV2ksZFhyMSAgICAgICAgICAgICAgICAgICAgICAgQC8vIGltYWcgcGFydAorCisgICAgICAgIC5lbmRpZgorCisgICAgICAgIFZTVUIgICAgZFlyMCxkWHIwLHFUMAorICAgICAgICBWU1VCICAgIGRZaTAsZFhpMCxxVDEKKyAgICAgICAgVkFERCAgICBkWXIxLGRYcjAscVQwCisgICAgICAgIFZBREQgICAgZFlpMSxkWGkwLHFUMQorCisgICAgICAgIFZTVDIgICAge2RZcjAsZFlpMH0sW3BEc3RdLG91dFBvaW50U3RlcAorICAgICAgICBWU1QyICAgIHtkWXIxLGRZaTF9LFtwRHN0XSxkc3RTdGVwICAgICAgICAgICAgICAgICAgQC8vIGRzdFN0ZXAgPSAgc3RlcCA9IC1vdXRQb2ludFN0ZXAgKyAxNgorCisgICAgICAgIEJHVCAgICAgcmFkaXgybHNHcnBMb29wXG5hbWUKKworCisgICAgICAgIEAvLyBSZXNldCBhbmQgU3dhcCBwU3JjIGFuZCBwRHN0IGZvciB0aGUgbmV4dCBzdGFnZQorICAgICAgICBNT1YgICAgIHBUbXAscERzdAorICAgICAgICBTVUIgICAgIHBEc3QscFNyYyxvdXRQb2ludFN0ZXAsTFNMICMxICAgICAgIEAvLyBwRHN0IC09IDQqc2l6ZTsgcFNyYyAtPSA4KnNpemUgYnl0ZXMKKyAgICAgICAgU1VCICAgICBwU3JjLHBUbXAsb3V0UG9pbnRTdGVwCisKKyAgICAgICAgQC8vIFJlc2V0IHBUd2lkZGxlIGZvciB0aGUgbmV4dCBzdGFnZQorICAgICAgICBTVUIgICAgIHBUd2lkZGxlLHBUd2lkZGxlLG91dFBvaW50U3RlcCAgICAgIEAvLyBwVHdpZGRsZSAtPSA0KnNpemUgYnl0ZXMKKworICAgICAgICAuZW5kbQorCisKKworICAgICAgICBNX1NUQVJUIGFybVNQX0ZGVEZ3ZF9DVG9DX0ZDMzJfUmFkaXgyX2xzX091dE9mUGxhY2VfdW5zYWZlLHI0LCIiCisgICAgICAgIEZGVFNUQUdFICJGQUxTRSIsIkZBTFNFIixmd2QKKyAgICAgICAgTV9FTkQKKworCisKKyAgICAgICAgTV9TVEFSVCBhcm1TUF9GRlRJbnZfQ1RvQ19GQzMyX1JhZGl4Ml9sc19PdXRPZlBsYWNlX3Vuc2FmZSxyNAorICAgICAgICBGRlRTVEFHRSAiRkFMU0UiLCJUUlVFIixpbnYKKyAgICAgICAgTV9FTkQKKworCS5lbmQKZGlmZiAtLWdpdCBhL2RsL2FybVNQX0ZGVF9DVG9DX0ZDMzJfUmFkaXgyX3Vuc2FmZV9zLlMgYi9kbC9hcm1TUF9GRlRfQ1RvQ19GQzMyX1JhZGl4Ml91bnNhZmVfcy5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjODg4ZWUKLS0tIC9kZXYvbnVsbAorKysgYi9kbC9hcm1TUF9GRlRfQ1RvQ19GQzMyX1JhZGl4Ml91bnNhZmVfcy5TCkBAIC0wLDAgKzEsMTkxIEBACitALy8KK0AvLyAgQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorQC8vCitALy8gIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKK0AvLyAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCitALy8gIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKK0AvLyAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorQC8vICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KK0AvLworQC8vICBUaGlzIGlzIGEgbW9kaWZpY2F0aW9uIG9mIGFybVNQX0ZGVF9DVG9DX1NDMzJfUmFkaXgyX3Vuc2FmZV9zLnMKK0AvLyAgdG8gc3VwcG9ydCBmbG9hdCBpbnN0ZWFkIG9mIFNDMzIuCitALy8KKworQC8vIERlc2NyaXB0aW9uOgorQC8vIENvbXB1dGUgYSBSYWRpeCAyIERJVCBpbi1vcmRlciBvdXQtb2YtcGxhY2UgRkZUIHN0YWdlIGZvciBhbiBOIHBvaW50CitALy8gY29tcGxleCBzaWduYWwuICBUaGlzIGhhbmRsZXMgdGhlIGdlbmVyYWwgc3RhZ2UsIG5vdCB0aGUgZmlyc3Qgb3IgbGFzdAorQC8vIHN0YWdlLgorQC8vCitALy8KKworCitALy8gSW5jbHVkZSBzdGFuZGFyZCBoZWFkZXJzCisKKyNpbmNsdWRlICJvbXh0eXBlc19zLmgiCisjaW5jbHVkZSAiYXJtQ09NTV9zLmgiCisKKworQC8vIEltcG9ydCBzeW1ib2xzIHJlcXVpcmVkIGZyb20gb3RoZXIgZmlsZXMKK0AvLyAoRm9yIGV4YW1wbGUgdGFibGVzKQorCisKKworQC8vIFNldCBkZWJ1Z2dpbmcgbGV2ZWwKK0AvL0RFQlVHX09OICAgIFNFVEwge1RSVUV9CisKKworCitALy8gR3VhcmRpbmcgaW1wbGVtZW50YXRpb24gYnkgdGhlIHByb2Nlc3NvciBuYW1lCisKKworCisKK0AvLyBHdWFyZGluZyBpbXBsZW1lbnRhdGlvbiBieSB0aGUgcHJvY2Vzc29yIG5hbWUKKworCitALy9JbnB1dCBSZWdpc3RlcnMKKworI2RlZmluZSBwU3JjICAgICAgICAgICAgcjAKKyNkZWZpbmUgcERzdCAgICAgICAgICAgIHIyCisjZGVmaW5lIHBUd2lkZGxlICAgICAgICByMQorI2RlZmluZSBzdWJGRlROdW0gICAgICAgcjYKKyNkZWZpbmUgc3ViRkZUU2l6ZSAgICAgIHI3CisKKworQC8vT3V0cHV0IFJlZ2lzdGVycworCisKK0AvL0xvY2FsIFNjcmF0Y2ggUmVnaXN0ZXJzCisKKyNkZWZpbmUgb3V0UG9pbnRTdGVwICAgIHIzCisjZGVmaW5lIHBvaW50U3RlcCAgICAgICByNAorI2RlZmluZSBncnBDb3VudCAgICAgICAgcjUKKyNkZWZpbmUgc2V0Q291bnQgICAgICAgIHI4CitALy9jb25zdCAgICAgICAgICAgUk4gIDkKKyNkZWZpbmUgc3RlcCAgICAgICAgICAgIHIxMAorI2RlZmluZSBkc3RTdGVwICAgICAgICAgcjExCisjZGVmaW5lIHBUYWJsZSAgICAgICAgICByOQorI2RlZmluZSBwVG1wICAgICAgICAgICAgcjkKKworQC8vIE5lb24gUmVnaXN0ZXJzCisKKyNkZWZpbmUgZFcgICAgICBEMC5GMzIKKyNkZWZpbmUgZFgwICAgICBEMi5GMzIKKyNkZWZpbmUgZFgxICAgICBEMy5GMzIKKyNkZWZpbmUgZFgyICAgICBENC5GMzIKKyNkZWZpbmUgZFgzICAgICBENS5GMzIKKyNkZWZpbmUgZFkwICAgICBENi5GMzIKKyNkZWZpbmUgZFkxICAgICBENy5GMzIKKyNkZWZpbmUgZFkyICAgICBEOC5GMzIKKyNkZWZpbmUgZFkzICAgICBEOS5GMzIKKyNkZWZpbmUgcVQwICAgICBEMTAuRjMyCisjZGVmaW5lIHFUMSAgICAgRDExLkYzMgorCisKKyAgICAgICAgLk1BQ1JPIEZGVFNUQUdFIHNjYWxlZCwgaW52ZXJzZSwgbmFtZQorCisgICAgICAgIEAvLyBEZWZpbmUgc3RhY2sgYXJndW1lbnRzCisKKworICAgICAgICBALy8gVXBkYXRlIGdycENvdW50IGFuZCBncnBTaXplIHJpZ2h0YXdheSBpbm9yZGVyIHRvIHJldXNlIHBHcnBDb3VudAorICAgICAgICBALy8gYW5kIHBHcnBTaXplIHJlZ3MKKworICAgICAgICBMU1IgICAgIHN1YkZGVE51bSxzdWJGRlROdW0sIzEgICAgICAgICAgICAgICAgICAgICAgQC8vZ3JwU2l6ZQorICAgICAgICBMU0wgICAgIGdycENvdW50LHN1YkZGVFNpemUsIzEKKworCisgICAgICAgIEAvLyBwVDArMSBpbmNyZW1lbnRzIHBUMCBieSA4IGJ5dGVzCisgICAgICAgIEAvLyBwVDArcG9pbnRTdGVwID0gaW5jcmVtZW50IG9mIDgqcG9pbnRTdGVwIGJ5dGVzID0gNCpncnBTaXplIGJ5dGVzCisgICAgICAgIE1PViAgICAgcG9pbnRTdGVwLHN1YkZGVE51bSxMU0wgIzIKKworICAgICAgICBALy8gdXBkYXRlIHN1YkZGVFNpemUgZm9yIHRoZSBuZXh0IHN0YWdlCisgICAgICAgIE1PViAgICAgc3ViRkZUU2l6ZSxncnBDb3VudAorCisgICAgICAgIEAvLyBwT3V0MCsxIGluY3JlbWVudHMgcE91dDAgYnkgOCBieXRlcworICAgICAgICBALy8gcE91dDArb3V0UG9pbnRTdGVwID09IGluY3JlbWVudCBvZiA4Km91dFBvaW50U3RlcCBieXRlcyA9CisgICAgICAgIEAvLyAgICA0KnNpemUgYnl0ZXMKKyAgICAgICAgU01VTEJCICBvdXRQb2ludFN0ZXAsZ3JwQ291bnQscG9pbnRTdGVwCisgICAgICAgIExTTCAgICAgcG9pbnRTdGVwLHBvaW50U3RlcCwjMQorCisKKyAgICAgICAgUlNCICAgICAgc3RlcCxwb2ludFN0ZXAsIzE2CisgICAgICAgIFJTQiAgICAgIGRzdFN0ZXAsb3V0UG9pbnRTdGVwLCMxNgorCisgICAgICAgIEAvLyBMb29wIG9uIHRoZSBncm91cHMKKworcmFkaXgyR3JwTG9vcFxuYW1lIDoKKyAgICAgICAgTU9WICAgICAgc2V0Q291bnQscG9pbnRTdGVwLExTUiAjMworICAgICAgICBWTEQxICAgICBkVyxbcFR3aWRkbGVdLHBvaW50U3RlcCAgICAgICAgICAgICAgICBALy9bd2kgfCB3cl0KKworCisgICAgICAgIEAvLyBMb29wIG9uIHRoZSBzZXRzCisKKworcmFkaXgyU2V0TG9vcFxuYW1lIDoKKworCisgICAgICAgIEAvLyBwb2ludDA6IGRYMC1yZWFsIHBhcnQgZFgxLWltZyBwYXJ0CisgICAgICAgIFZMRDIgICAge2RYMCxkWDF9LFtwU3JjXSxwb2ludFN0ZXAKKyAgICAgICAgQC8vIHBvaW50MTogZFgyLXJlYWwgcGFydCBkWDMtaW1nIHBhcnQKKyAgICAgICAgVkxEMiAgICB7ZFgyLGRYM30sW3BTcmNdLHN0ZXAKKworICAgICAgICBTVUJTICAgIHNldENvdW50LHNldENvdW50LCMyCisKKyAgICAgICAgLmlmZXFzICAiXGludmVyc2UiLCAiVFJVRSIKKyAgICAgICAgICAgIFZNVUwgICBxVDAsZFgyLGRXWzBdCisgICAgICAgICAgICBWTUxBICAgcVQwLGRYMyxkV1sxXSAgICAgICAgICAgICAgICAgICAgICAgQC8vIHJlYWwgcGFydAorICAgICAgICAgICAgVk1VTCAgIHFUMSxkWDMsZFdbMF0KKyAgICAgICAgICAgIFZNTFMgICBxVDEsZFgyLGRXWzFdICAgICAgICAgICAgICAgICAgICAgICBALy8gaW1hZyBwYXJ0CisKKyAgICAgICAgLmVsc2UKKworICAgICAgICAgICAgVk1VTCAgIHFUMCxkWDIsZFdbMF0KKyAgICAgICAgICAgIFZNTFMgICBxVDAsZFgzLGRXWzFdICAgICAgICAgICAgICAgICAgICAgICBALy8gcmVhbCBwYXJ0CisgICAgICAgICAgICBWTVVMICAgcVQxLGRYMyxkV1swXQorICAgICAgICAgICAgVk1MQSAgIHFUMSxkWDIsZFdbMV0gICAgICAgICAgICAgICAgICAgICAgIEAvLyBpbWFnIHBhcnQKKworICAgICAgICAuZW5kaWYKKworICAgICAgICBWU1VCICAgIGRZMCxkWDAscVQwCisgICAgICAgIFZTVUIgICAgZFkxLGRYMSxxVDEKKyAgICAgICAgVkFERCAgICBkWTIsZFgwLHFUMAorICAgICAgICBWQUREICAgIGRZMyxkWDEscVQxCisKKyAgICAgICAgVlNUMiAgICB7ZFkwLGRZMX0sW3BEc3RdLG91dFBvaW50U3RlcAorICAgICAgICBALy8gZHN0U3RlcCA9IC1vdXRQb2ludFN0ZXAgKyAxNgorICAgICAgICBWU1QyICAgIHtkWTIsZFkzfSxbcERzdF0sZHN0U3RlcAorCisgICAgICAgIEJHVCAgICAgcmFkaXgyU2V0TG9vcFxuYW1lCisKKyAgICAgICAgU1VCUyAgICBncnBDb3VudCxncnBDb3VudCwjMgorICAgICAgICBBREQgICAgIHBTcmMscFNyYyxwb2ludFN0ZXAKKyAgICAgICAgQkdUICAgICByYWRpeDJHcnBMb29wXG5hbWUKKworCisgICAgICAgIEAvLyBSZXNldCBhbmQgU3dhcCBwU3JjIGFuZCBwRHN0IGZvciB0aGUgbmV4dCBzdGFnZQorICAgICAgICBNT1YgICAgIHBUbXAscERzdAorICAgICAgICBALy8gcERzdCAtPSA0KnNpemU7IHBTcmMgLT0gOCpzaXplIGJ5dGVzCisgICAgICAgIFNVQiAgICAgcERzdCxwU3JjLG91dFBvaW50U3RlcCxMU0wgIzEKKyAgICAgICAgU1VCICAgICBwU3JjLHBUbXAsb3V0UG9pbnRTdGVwCisKKyAgICAgICAgQC8vIFJlc2V0IHBUd2lkZGxlIGZvciB0aGUgbmV4dCBzdGFnZQorICAgICAgICBALy8gcFR3aWRkbGUgLT0gNCpzaXplIGJ5dGVzCisgICAgICAgIFNVQiAgICAgcFR3aWRkbGUscFR3aWRkbGUsb3V0UG9pbnRTdGVwCisKKworICAgICAgICAuZW5kbQorCisKKworICAgICAgICBNX1NUQVJUIGFybVNQX0ZGVEZ3ZF9DVG9DX0ZDMzJfUmFkaXgyX091dE9mUGxhY2VfdW5zYWZlLHI0CisgICAgICAgIEZGVFNUQUdFICJGQUxTRSIsIkZBTFNFIixGV0QKKyAgICAgICAgTV9FTkQKKworCisKKyAgICAgICAgTV9TVEFSVCBhcm1TUF9GRlRJbnZfQ1RvQ19GQzMyX1JhZGl4Ml9PdXRPZlBsYWNlX3Vuc2FmZSxyNAorICAgICAgICBGRlRTVEFHRSAiRkFMU0UiLCJUUlVFIixJTlYKKyAgICAgICAgTV9FTkQKKworCisgICAgICAgIC5lbmQKZGlmZiAtLWdpdCBhL2RsL2FybVNQX0ZGVF9DVG9DX0ZDMzJfUmFkaXg0X2ZzX3Vuc2FmZV9zLlMgYi9kbC9hcm1TUF9GRlRfQ1RvQ19GQzMyX1JhZGl4NF9mc191bnNhZmVfcy5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI2NmE4ZWYKLS0tIC9kZXYvbnVsbAorKysgYi9kbC9hcm1TUF9GRlRfQ1RvQ19GQzMyX1JhZGl4NF9mc191bnNhZmVfcy5TCkBAIC0wLDAgKzEsMjQzIEBACitALy8KK0AvLyAgQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorQC8vCitALy8gIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKK0AvLyAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCitALy8gIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKK0AvLyAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorQC8vICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KK0AvLworQC8vCitALy8gIFRoaXMgaXMgYSBtb2RpZmljYXRpb24gb2YgYXJtU1BfRkZUX0NUb0NfU0MzMl9SYWRpeDRfZnNfdW5zYWZlX3MucworQC8vICB0byBzdXBwb3J0IGZsb2F0IGluc3RlYWQgb2YgU0MzMi4KK0AvLworCitALy8KK0AvLyBEZXNjcmlwdGlvbjoKK0AvLyBDb21wdXRlIGEgZmlyc3Qgc3RhZ2UgUmFkaXggNCBGRlQgc3RhZ2UgZm9yIGEgTiBwb2ludCBjb21wbGV4IHNpZ25hbAorQC8vCitALy8KKworCitALy8gSW5jbHVkZSBzdGFuZGFyZCBoZWFkZXJzCisKKyNpbmNsdWRlICJvbXh0eXBlc19zLmgiCisjaW5jbHVkZSAiYXJtQ09NTV9zLmgiCisKK0AvLyBJbXBvcnQgc3ltYm9scyByZXF1aXJlZCBmcm9tIG90aGVyIGZpbGVzCitALy8gKEZvciBleGFtcGxlIHRhYmxlcykKKworCisKKworQC8vIFNldCBkZWJ1Z2dpbmcgbGV2ZWwKK0AvL0RFQlVHX09OICAgIFNFVEwge1RSVUV9CisKKworCitALy8gR3VhcmRpbmcgaW1wbGVtZW50YXRpb24gYnkgdGhlIHByb2Nlc3NvciBuYW1lCisKKworCitALy8gR3VhcmRpbmcgaW1wbGVtZW50YXRpb24gYnkgdGhlIHByb2Nlc3NvciBuYW1lCisKKworQC8vSW5wdXQgUmVnaXN0ZXJzCisKKyNkZWZpbmUgcFNyYyAgICAgICAgICAgIHIwCisjZGVmaW5lIHBEc3QgICAgICAgICAgICByMgorI2RlZmluZSBwVHdpZGRsZSAgICAgICAgcjEKKyNkZWZpbmUgcFBpbmdQb25nQnVmICAgIHI1CisjZGVmaW5lIHN1YkZGVE51bSAgICAgICByNgorI2RlZmluZSBzdWJGRlRTaXplICAgICAgcjcKKworCitALy9PdXRwdXQgUmVnaXN0ZXJzCisKKworQC8vTG9jYWwgU2NyYXRjaCBSZWdpc3RlcnMKKworI2RlZmluZSBncnBTaXplICAgICAgICAgcjMKK0AvLyBSZXVzZSBncnBTaXplIGFzIHNldENvdW50CisjZGVmaW5lIHNldENvdW50ICAgICAgICByMworI2RlZmluZSBwb2ludFN0ZXAgICAgICAgcjQKKyNkZWZpbmUgb3V0UG9pbnRTdGVwICAgIHI0CisjZGVmaW5lIHNldFN0ZXAgICAgICAgICByOAorI2RlZmluZSBzdGVwMSAgICAgICAgICAgcjkKKyNkZWZpbmUgc3RlcDMgICAgICAgICAgIHIxMAorCitALy8gTmVvbiBSZWdpc3RlcnMKKworI2RlZmluZSBkWHIwICAgIEQwLkYzMgorI2RlZmluZSBkWGkwICAgIEQxLkYzMgorI2RlZmluZSBkWHIxICAgIEQyLkYzMgorI2RlZmluZSBkWGkxICAgIEQzLkYzMgorI2RlZmluZSBkWHIyICAgIEQ0LkYzMgorI2RlZmluZSBkWGkyICAgIEQ1LkYzMgorI2RlZmluZSBkWHIzICAgIEQ2LkYzMgorI2RlZmluZSBkWGkzICAgIEQ3LkYzMgorI2RlZmluZSBkWXIwICAgIEQ4LkYzMgorI2RlZmluZSBkWWkwICAgIEQ5LkYzMgorI2RlZmluZSBkWXIxICAgIEQxMC5GMzIKKyNkZWZpbmUgZFlpMSAgICBEMTEuRjMyCisjZGVmaW5lIGRZcjIgICAgRDEyLkYzMgorI2RlZmluZSBkWWkyICAgIEQxMy5GMzIKKyNkZWZpbmUgZFlyMyAgICBEMTQuRjMyCisjZGVmaW5lIGRZaTMgICAgRDE1LkYzMgorI2RlZmluZSBxWDAgICAgIFEwLkYzMgorI2RlZmluZSBxWDEgICAgIFExLkYzMgorI2RlZmluZSBxWDIgICAgIFEyLkYzMgorI2RlZmluZSBxWDMgICAgIFEzLkYzMgorI2RlZmluZSBxWTAgICAgIFE0LkYzMgorI2RlZmluZSBxWTEgICAgIFE1LkYzMgorI2RlZmluZSBxWTIgICAgIFE2LkYzMgorI2RlZmluZSBxWTMgICAgIFE3LkYzMgorI2RlZmluZSBkWnIwICAgIEQxNi5GMzIKKyNkZWZpbmUgZFppMCAgICBEMTcuRjMyCisjZGVmaW5lIGRacjEgICAgRDE4LkYzMgorI2RlZmluZSBkWmkxICAgIEQxOS5GMzIKKyNkZWZpbmUgZFpyMiAgICBEMjAuRjMyCisjZGVmaW5lIGRaaTIgICAgRDIxLkYzMgorI2RlZmluZSBkWnIzICAgIEQyMi5GMzIKKyNkZWZpbmUgZFppMyAgICBEMjMuRjMyCisjZGVmaW5lIHFaMCAgICAgUTguRjMyCisjZGVmaW5lIHFaMSAgICAgUTkuRjMyCisjZGVmaW5lIHFaMiAgICAgUTEwLkYzMgorI2RlZmluZSBxWjMgICAgIFExMS5GMzIKKworCisgICAgICAgIC5NQUNSTyBGRlRTVEFHRSBzY2FsZWQsIGludmVyc2UsIG5hbWUKKworICAgICAgICBALy8gRGVmaW5lIHN0YWNrIGFyZ3VtZW50cworCisgICAgICAgIEAvLyBwVDArMSBpbmNyZW1lbnRzIHBUMCBieSA4IGJ5dGVzCisgICAgICAgIEAvLyBwVDArcG9pbnRTdGVwID0gaW5jcmVtZW50IG9mIDgqcG9pbnRTdGVwIGJ5dGVzID0gMipncnBTaXplIGJ5dGVzCisgICAgICAgIEAvLyBOb3RlOiBvdXRQb2ludFN0ZXAgPSBwb2ludFN0ZXAgZm9yIGZpcnN0c3RhZ2UKKworICAgICAgICBNT1YgICAgIHBvaW50U3RlcCxzdWJGRlROdW0sTFNMICMxCisKKworICAgICAgICBALy8gVXBkYXRlIHBTdWJGRlRTaXplIGFuZCBwU3ViRkZUTnVtIHJlZ3MKKyAgICAgICAgVkxEMiAgICB7ZFhyMCxkWGkwfSxbcFNyYyA6MTI4XSxwb2ludFN0ZXAgICAgICAgICAgQC8vICBkYXRhWzBdCisgICAgICAgIEAvLyBzdWJGRlRTaXplID0gMSBmb3IgdGhlIGZpcnN0IHN0YWdlCisgICAgICAgIE1PViAgICAgc3ViRkZUU2l6ZSwjNAorCisgICAgICAgIEAvLyBOb3RlOiBzZXRDb3VudCA9IHN1YkZGVE51bS80IChyZXVzZSB0aGUgZ3JwU2l6ZSByZWcgZm9yIHNldENvdW50KQorICAgICAgICBMU1IgICAgIGdycFNpemUsc3ViRkZUTnVtLCMyCisgICAgICAgIFZMRDIgICAge2RYcjEsZFhpMX0sW3BTcmMgOjEyOF0scG9pbnRTdGVwICAgICAgICAgIEAvLyAgZGF0YVsxXQorICAgICAgICBNT1YgICAgIHN1YkZGVE51bSxncnBTaXplCisKKworICAgICAgICBALy8gQ2FsY3VsYXRlIHRoZSBzdGVwIG9mIGlucHV0IGRhdGEgZm9yIHRoZSBuZXh0IHNldAorICAgICAgICBALy9NT1YgICAgIHNldFN0ZXAscG9pbnRTdGVwLExTTCAjMQorICAgICAgICBNT1YgICAgIHNldFN0ZXAsZ3JwU2l6ZSxMU0wgIzQKKyAgICAgICAgVkxEMiAgICB7ZFhyMixkWGkyfSxbcFNyYyA6MTI4XSxwb2ludFN0ZXAgICAgICAgICAgQC8vICBkYXRhWzJdCisgICAgICAgIEAvLyBzZXRTdGVwID0gMypwb2ludFN0ZXAKKyAgICAgICAgQUREICAgICBzZXRTdGVwLHNldFN0ZXAscG9pbnRTdGVwCisgICAgICAgIEAvLyBzZXRTdGVwID0gLSAzKnBvaW50U3RlcCsxNgorICAgICAgICBSU0IgICAgIHNldFN0ZXAsc2V0U3RlcCwjMTYKKworICAgICAgICBALy8gIGRhdGFbM10gJiB1cGRhdGUgcFNyYyBmb3IgdGhlIG5leHQgc2V0CisgICAgICAgIFZMRDIgICAge2RYcjMsZFhpM30sW3BTcmMgOjEyOF0sc2V0U3RlcAorICAgICAgICBALy8gc3RlcDEgPSAyKnBvaW50U3RlcAorICAgICAgICBNT1YgICAgIHN0ZXAxLHBvaW50U3RlcCxMU0wgIzEKKworICAgICAgICBWQUREICAgIHFZMCxxWDAscVgyCisKKyAgICAgICAgQC8vIHN0ZXAzID0gLXBvaW50U3RlcAorICAgICAgICBSU0IgICAgIHN0ZXAzLHBvaW50U3RlcCwjMAorCisgICAgICAgIEAvLyBncnAgPSAwIGEgc3BlY2lhbCBjYXNlIHNpbmNlIGFsbCB0aGUgdHdpZGRsZSBmYWN0b3JzIGFyZSAxCisgICAgICAgIEAvLyBMb29wIG9uIHRoZSBzZXRzIDogMiBzZXRzIGF0IGEgdGltZQorCityYWRpeDRmc0dycFplcm9TZXRMb29wXG5hbWUgOgorCisKKworICAgICAgICBALy8gRGVjcmVtZW50IHNldGNvdW50CisgICAgICAgIFNVQlMgICAgc2V0Q291bnQsc2V0Q291bnQsIzIKKworCisgICAgICAgIEAvLyBmaW5pc2ggZmlyc3Qgc3RhZ2Ugb2YgNCBwb2ludCBGRlQKKworCisgICAgICAgIFZTVUIgICAgcVkyLHFYMCxxWDIKKworICAgICAgICBWTEQyICAgIHtkWHIwLGRYaTB9LFtwU3JjIDoxMjhdLHN0ZXAxICAgICAgICAgIEAvLyAgZGF0YVswXQorICAgICAgICBWQUREICAgIHFZMSxxWDEscVgzCisgICAgICAgIFZMRDIgICAge2RYcjIsZFhpMn0sW3BTcmMgOjEyOF0sc3RlcDMgICAgICAgICAgQC8vICBkYXRhWzJdCisgICAgICAgIFZTVUIgICAgcVkzLHFYMSxxWDMKKworCisgICAgICAgIEAvLyBmaW5pc2ggc2Vjb25kIHN0YWdlIG9mIDQgcG9pbnQgRkZUCisKKyAgICAgICAgLmlmZXFzICJcaW52ZXJzZSIsICJUUlVFIgorCisgICAgICAgICAgICBWTEQyICAgIHtkWHIxLGRYaTF9LFtwU3JjIDoxMjhdLHN0ZXAxICAgICAgICAgIEAvLyAgZGF0YVsxXQorICAgICAgICAgICAgVkFERCAgICBxWjAscVkwLHFZMQorCisgICAgICAgICAgICBALy8gIGRhdGFbM10gJiB1cGRhdGUgcFNyYyBmb3IgdGhlIG5leHQgc2V0CisgICAgICAgICAgICBWTEQyICAgIHtkWHIzLGRYaTN9LFtwU3JjIDoxMjhdLHNldFN0ZXAKKyAgICAgICAgICAgIFZTVUIgICAgZFpyMyxkWXIyLGRZaTMKKworICAgICAgICAgICAgVlNUMiAgICB7ZFpyMCxkWmkwfSxbcERzdCA6MTI4XSxvdXRQb2ludFN0ZXAKKyAgICAgICAgICAgIFZBREQgICAgZFppMyxkWWkyLGRZcjMKKworICAgICAgICAgICAgVlNVQiAgICBxWjEscVkwLHFZMQorICAgICAgICAgICAgVlNUMiAgICB7ZFpyMyxkWmkzfSxbcERzdCA6MTI4XSxvdXRQb2ludFN0ZXAKKworICAgICAgICAgICAgVkFERCAgICBkWnIyLGRZcjIsZFlpMworICAgICAgICAgICAgVlNUMiAgICB7ZFpyMSxkWmkxfSxbcERzdCA6MTI4XSxvdXRQb2ludFN0ZXAKKyAgICAgICAgICAgIFZTVUIgICAgZFppMixkWWkyLGRZcjMKKworICAgICAgICAgICAgVkFERCAgICBxWTAscVgwLHFYMiAgICAgICAgICAgICAgICAgICAgIEAvLyB1MCBmb3IgbmV4dCBpdGVyYXRpb24KKyAgICAgICAgICAgIFZTVDIgICAge2RacjIsZFppMn0sW3BEc3QgOjEyOF0sc2V0U3RlcAorCisKKyAgICAgICAgLmVsc2UKKworICAgICAgICAgICAgVkxEMiAgICB7ZFhyMSxkWGkxfSxbcFNyYyA6MTI4XSxzdGVwMSAgICAgICAgICBALy8gIGRhdGFbMV0KKyAgICAgICAgICAgIFZBREQgICAgcVowLHFZMCxxWTEKKworICAgICAgICAgICAgQC8vICBkYXRhWzNdICYgdXBkYXRlIHBTcmMgZm9yIHRoZSBuZXh0IHNldAorICAgICAgICAgICAgVkxEMiAgICB7ZFhyMyxkWGkzfSxbcFNyYyA6MTI4XSxzZXRTdGVwCisgICAgICAgICAgICBWQUREICAgIGRacjIsZFlyMixkWWkzCisKKyAgICAgICAgICAgIFZTVDIgICAge2RacjAsZFppMH0sW3BEc3QgOjEyOF0sb3V0UG9pbnRTdGVwCisgICAgICAgICAgICBWU1VCICAgIGRaaTIsZFlpMixkWXIzCisKKyAgICAgICAgICAgIFZTVUIgICAgcVoxLHFZMCxxWTEKKyAgICAgICAgICAgIFZTVDIgICAge2RacjIsZFppMn0sW3BEc3QgOjEyOF0sb3V0UG9pbnRTdGVwCisKKyAgICAgICAgICAgIFZTVUIgICAgZFpyMyxkWXIyLGRZaTMKKyAgICAgICAgICAgIFZTVDIgICAge2RacjEsZFppMX0sW3BEc3QgOjEyOF0sb3V0UG9pbnRTdGVwCisgICAgICAgICAgICBWQUREICAgIGRaaTMsZFlpMixkWXIzCisKKyAgICAgICAgICAgIFZBREQgICAgcVkwLHFYMCxxWDIgICAgICAgICAgICAgICAgICAgICBALy8gdTAgZm9yIG5leHQgaXRlcmF0aW9uCisgICAgICAgICAgICBWU1QyICAgIHtkWnIzLGRaaTN9LFtwRHN0IDoxMjhdLHNldFN0ZXAKKworICAgICAgICAuZW5kaWYKKworICAgICAgICBCR1QgICAgIHJhZGl4NGZzR3JwWmVyb1NldExvb3BcbmFtZQorCisgICAgICAgIEAvLyByZXNldCBwU3JjIHRvIHBEc3QgZm9yIHRoZSBuZXh0IHN0YWdlCisgICAgICAgIFNVQiAgICAgcFNyYyxwRHN0LHBvaW50U3RlcCAgICAgICAgICAgICAgICAgICAgIEAvLyBwRHN0IC09IDIqZ3JwU2l6ZQorICAgICAgICBNT1YgICAgIHBEc3QscFBpbmdQb25nQnVmCisKKworICAgICAgICAuZW5kbQorCisKKworICAgICAgICBNX1NUQVJUIGFybVNQX0ZGVEZ3ZF9DVG9DX0ZDMzJfUmFkaXg0X2ZzX091dE9mUGxhY2VfdW5zYWZlLHI0CisgICAgICAgIEZGVFNUQUdFICJGQUxTRSIsIkZBTFNFIixmd2QKKyAgICAgICAgTV9FTkQKKworCisKKyAgICAgICAgTV9TVEFSVCBhcm1TUF9GRlRJbnZfQ1RvQ19GQzMyX1JhZGl4NF9mc19PdXRPZlBsYWNlX3Vuc2FmZSxyNAorICAgICAgICBGRlRTVEFHRSAiRkFMU0UiLCJUUlVFIixpbnYKKyAgICAgICAgTV9FTkQKKworCisgICAgICAgIC5lbmQKZGlmZiAtLWdpdCBhL2RsL2FybVNQX0ZGVF9DVG9DX0ZDMzJfUmFkaXg0X2xzX3Vuc2FmZV9zLlMgYi9kbC9hcm1TUF9GRlRfQ1RvQ19GQzMyX1JhZGl4NF9sc191bnNhZmVfcy5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhODQwZWQKLS0tIC9kZXYvbnVsbAorKysgYi9kbC9hcm1TUF9GRlRfQ1RvQ19GQzMyX1JhZGl4NF9sc191bnNhZmVfcy5TCkBAIC0wLDAgKzEsMzM1IEBACitALy8KK0AvLyAgQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorQC8vCitALy8gIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKK0AvLyAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCitALy8gIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKK0AvLyAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorQC8vICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KK0AvLworQC8vICBUaGlzIGlzIGEgbW9kaWZpY2F0aW9uIG9mIGFybVNQX0ZGVF9DVG9DX1NDMzJfUmFkaXg0X2xzX3Vuc2FmZV9zLnMKK0AvLyAgdG8gc3VwcG9ydCBmbG9hdCBpbnN0ZWFkIG9mIFNDMzIuCitALy8KKworQC8vCitALy8gRGVzY3JpcHRpb246CitALy8gQ29tcHV0ZSBhIFJhZGl4IDQgRkZUIHN0YWdlIGZvciBhIE4gcG9pbnQgY29tcGxleCBzaWduYWwKK0AvLworQC8vCisKKworQC8vIEluY2x1ZGUgc3RhbmRhcmQgaGVhZGVycworCisjaW5jbHVkZSAib214dHlwZXNfcy5oIgorI2luY2x1ZGUgImFybUNPTU1fcy5oIgorCitALy8gSW1wb3J0IHN5bWJvbHMgcmVxdWlyZWQgZnJvbSBvdGhlciBmaWxlcworQC8vIChGb3IgZXhhbXBsZSB0YWJsZXMpCisKKworCisKK0AvLyBTZXQgZGVidWdnaW5nIGxldmVsCitALy9ERUJVR19PTiAgICBTRVRMIHtUUlVFfQorCisKK0AvLyBHdWFyZGluZyBpbXBsZW1lbnRhdGlvbiBieSB0aGUgcHJvY2Vzc29yIG5hbWUKKworCitALy8gSW1wb3J0IHN5bWJvbHMgcmVxdWlyZWQgZnJvbSBvdGhlciBmaWxlcworQC8vIChGb3IgZXhhbXBsZSB0YWJsZXMpCisgICAgQC8vSU1QT1JUICBhcm1BQUNfY29uc3RUYWJsZQorCitALy9JbnB1dCBSZWdpc3RlcnMKKworI2RlZmluZSBwU3JjICAgICAgICAgICAgcjAKKyNkZWZpbmUgcERzdCAgICAgICAgICAgIHIyCisjZGVmaW5lIHBUd2lkZGxlICAgICAgICByMQorI2RlZmluZSBzdWJGRlROdW0gICAgICAgcjYKKyNkZWZpbmUgc3ViRkZUU2l6ZSAgICAgIHI3CisKKworCitALy9PdXRwdXQgUmVnaXN0ZXJzCisKKworQC8vTG9jYWwgU2NyYXRjaCBSZWdpc3RlcnMKKworI2RlZmluZSBvdXRQb2ludFN0ZXAgICAgcjMKKyNkZWZpbmUgZ3JwQ291bnQgICAgICAgIHI0CisjZGVmaW5lIGRzdFN0ZXAgICAgICAgICByNQorI2RlZmluZSBncnBUd1N0ZXAgICAgICAgcjgKKyNkZWZpbmUgc3RlcFR3aWRkbGUgICAgIHI5CisjZGVmaW5lIHR3U3RlcCAgICAgICAgICByMTAKKyNkZWZpbmUgcFRtcCAgICAgICAgICAgIHI0CisjZGVmaW5lIHN0ZXAxNiAgICAgICAgICByMTEKKyNkZWZpbmUgc3RlcDI0ICAgICAgICAgIHIxMgorCisKK0AvLyBOZW9uIFJlZ2lzdGVycworCisjZGVmaW5lIGRCdXR0ZXJmbHkxUmVhbDAyICAgICAgIEQwLkYzMgorI2RlZmluZSBkQnV0dGVyZmx5MUltYWcwMiAgICAgICBEMS5GMzIKKyNkZWZpbmUgZEJ1dHRlcmZseTFSZWFsMTMgICAgICAgRDIuRjMyCisjZGVmaW5lIGRCdXR0ZXJmbHkxSW1hZzEzICAgICAgIEQzLkYzMgorI2RlZmluZSBkQnV0dGVyZmx5MlJlYWwwMiAgICAgICBENC5GMzIKKyNkZWZpbmUgZEJ1dHRlcmZseTJJbWFnMDIgICAgICAgRDUuRjMyCisjZGVmaW5lIGRCdXR0ZXJmbHkyUmVhbDEzICAgICAgIEQ2LkYzMgorI2RlZmluZSBkQnV0dGVyZmx5MkltYWcxMyAgICAgICBENy5GMzIKKyNkZWZpbmUgZFhyMCAgICAgICAgICAgICAgICAgICAgRDAuRjMyCisjZGVmaW5lIGRYaTAgICAgICAgICAgICAgICAgICAgIEQxLkYzMgorI2RlZmluZSBkWHIxICAgICAgICAgICAgICAgICAgICBEMi5GMzIKKyNkZWZpbmUgZFhpMSAgICAgICAgICAgICAgICAgICAgRDMuRjMyCisjZGVmaW5lIGRYcjIgICAgICAgICAgICAgICAgICAgIEQ0LkYzMgorI2RlZmluZSBkWGkyICAgICAgICAgICAgICAgICAgICBENS5GMzIKKyNkZWZpbmUgZFhyMyAgICAgICAgICAgICAgICAgICAgRDYuRjMyCisjZGVmaW5lIGRYaTMgICAgICAgICAgICAgICAgICAgIEQ3LkYzMgorCisjZGVmaW5lIGRZcjAgICAgICAgICAgICAgICAgICAgIEQxNi5GMzIKKyNkZWZpbmUgZFlpMCAgICAgICAgICAgICAgICAgICAgRDE3LkYzMgorI2RlZmluZSBkWXIxICAgICAgICAgICAgICAgICAgICBEMTguRjMyCisjZGVmaW5lIGRZaTEgICAgICAgICAgICAgICAgICAgIEQxOS5GMzIKKyNkZWZpbmUgZFlyMiAgICAgICAgICAgICAgICAgICAgRDIwLkYzMgorI2RlZmluZSBkWWkyICAgICAgICAgICAgICAgICAgICBEMjEuRjMyCisjZGVmaW5lIGRZcjMgICAgICAgICAgICAgICAgICAgIEQyMi5GMzIKKyNkZWZpbmUgZFlpMyAgICAgICAgICAgICAgICAgICAgRDIzLkYzMgorCisjZGVmaW5lIGRXMXIgICAgICAgICAgICAgICAgICAgIEQ4LkYzMgorI2RlZmluZSBkVzFpICAgICAgICAgICAgICAgICAgICBEOS5GMzIKKyNkZWZpbmUgZFcyciAgICAgICAgICAgICAgICAgICAgRDEwLkYzMgorI2RlZmluZSBkVzJpICAgICAgICAgICAgICAgICAgICBEMTEuRjMyCisjZGVmaW5lIGRXM3IgICAgICAgICAgICAgICAgICAgIEQxMi5GMzIKKyNkZWZpbmUgZFczaSAgICAgICAgICAgICAgICAgICAgRDEzLkYzMgorI2RlZmluZSBxVDAgICAgICAgICAgICAgICAgICAgICBkMTQuZjMyCisjZGVmaW5lIHFUMSAgICAgICAgICAgICAgICAgICAgIGQxNi5GMzIKKyNkZWZpbmUgcVQyICAgICAgICAgICAgICAgICAgICAgZDE4LkYzMgorI2RlZmluZSBxVDMgICAgICAgICAgICAgICAgICAgICBkMjAuZjMyCisjZGVmaW5lIHFUNCAgICAgICAgICAgICAgICAgICAgIGQyMi5mMzIKKyNkZWZpbmUgcVQ1ICAgICAgICAgICAgICAgICAgICAgZDI0LmYzMgorCisjZGVmaW5lIGRacjAgICAgICAgICAgICAgICAgICAgIEQxNC5GMzIKKyNkZWZpbmUgZFppMCAgICAgICAgICAgICAgICAgICAgRDE1LkYzMgorI2RlZmluZSBkWnIxICAgICAgICAgICAgICAgICAgICBEMjYuRjMyCisjZGVmaW5lIGRaaTEgICAgICAgICAgICAgICAgICAgIEQyNy5GMzIKKyNkZWZpbmUgZFpyMiAgICAgICAgICAgICAgICAgICAgRDI4LkYzMgorI2RlZmluZSBkWmkyICAgICAgICAgICAgICAgICAgICBEMjkuRjMyCisjZGVmaW5lIGRacjMgICAgICAgICAgICAgICAgICAgIEQzMC5GMzIKKyNkZWZpbmUgZFppMyAgICAgICAgICAgICAgICAgICAgRDMxLkYzMgorCisjZGVmaW5lIHFYMCAgICAgICAgICAgICAgICAgICAgIFEwLkYzMgorI2RlZmluZSBxWTAgICAgICAgICAgICAgICAgICAgICBROC5GMzIKKyNkZWZpbmUgcVkxICAgICAgICAgICAgICAgICAgICAgUTkuRjMyCisjZGVmaW5lIHFZMiAgICAgICAgICAgICAgICAgICAgIFExMC5GMzIKKyNkZWZpbmUgcVkzICAgICAgICAgICAgICAgICAgICAgUTExLkYzMgorI2RlZmluZSBxWjAgICAgICAgICAgICAgICAgICAgICBRNy5GMzIKKyNkZWZpbmUgcVoxICAgICAgICAgICAgICAgICAgICAgUTEzLkYzMgorI2RlZmluZSBxWjIgICAgICAgICAgICAgICAgICAgICBRMTQuRjMyCisjZGVmaW5lIHFaMyAgICAgICAgICAgICAgICAgICAgIFExNS5GMzIKKworCisKKyAgICAgICAgLk1BQ1JPIEZGVFNUQUdFIHNjYWxlZCwgaW52ZXJzZSAsIG5hbWUKKworICAgICAgICBALy8gRGVmaW5lIHN0YWNrIGFyZ3VtZW50cworCisKKyAgICAgICAgQC8vIHBPdXQwKzEgaW5jcmVtZW50cyBwT3V0MCBieSA4IGJ5dGVzCisgICAgICAgIEAvLyBwT3V0MCtvdXRQb2ludFN0ZXAgPT0gaW5jcmVtZW50IG9mIDgqb3V0UG9pbnRTdGVwIGJ5dGVzCisgICAgICAgIE1PViAgICAgb3V0UG9pbnRTdGVwLHN1YkZGVFNpemUsTFNMICMzCisKKyAgICAgICAgQC8vIFVwZGF0ZSBncnBDb3VudCBhbmQgZ3JwU2l6ZSByaWdodGF3YXkKKworICAgICAgICBWTEQyICAgIHtkVzFyLGRXMWl9LFtwVHdpZGRsZSA6MTI4XSAgICAgICAgICAgICBALy8gW3dpfHdyXQorICAgICAgICBNT1YgICAgIHN0ZXAxNiwjMTYKKyAgICAgICAgTFNMICAgICBncnBDb3VudCxzdWJGRlRTaXplLCMyCisKKyAgICAgICAgVkxEMSAgICBkVzJyLFtwVHdpZGRsZSA6NjRdICAgICAgICAgICAgICAgICAgICAgQC8vIFt3aXx3cl0KKyAgICAgICAgTU9WICAgICBzdWJGRlROdW0sIzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgQC8vYWZ0ZXIgdGhlIGxhc3Qgc3RhZ2UKKworICAgICAgICBWTEQxICAgIGRXM3IsW3BUd2lkZGxlIDo2NF0sc3RlcDE2ICAgICAgICAgICAgICBALy8gW3dpfHdyXQorICAgICAgICBNT1YgICAgIHN0ZXBUd2lkZGxlLCMwCisKKyAgICAgICAgVkxEMSAgICBkVzJpLFtwVHdpZGRsZSA6NjRdISAgICAgICAgICAgICAgICAgICAgQC8vIFt3aXx3cl0KKyAgICAgICAgU1VCICAgICBncnBUd1N0ZXAsc3RlcFR3aWRkbGUsIzggICAgICAgICAgICAgICAgQC8vIGdycFR3U3RlcCA9IC04IHRvIHN0YXJ0IHdpdGgKKworICAgICAgICBALy8gdXBkYXRlIHN1YkZGVFNpemUgZm9yIHRoZSBuZXh0IHN0YWdlCisgICAgICAgIE1PViAgICAgc3ViRkZUU2l6ZSxncnBDb3VudAorICAgICAgICBWTEQxICAgIGRXM2ksW3BUd2lkZGxlIDo2NF0sZ3JwVHdTdGVwICAgICAgICAgICBALy8gW3dpfHdyXQorICAgICAgICBNT1YgICAgIGRzdFN0ZXAsb3V0UG9pbnRTdGVwLExTTCAjMQorCisgICAgICAgIEAvLyBBQy5yIEFDLmkgQkQuciBCRC5pCisgICAgICAgIFZMRDQgICAgIHtkQnV0dGVyZmx5MVJlYWwwMixkQnV0dGVyZmx5MUltYWcwMixkQnV0dGVyZmx5MVJlYWwxMyxkQnV0dGVyZmx5MUltYWcxM30sW3BTcmMgOjI1Nl0hCisgICAgICAgIEFERCAgICAgZHN0U3RlcCxkc3RTdGVwLG91dFBvaW50U3RlcCAgICAgICAgICAgIEAvLyBkc3RTdGVwID0gMypvdXRQb2ludFN0ZXAKKyAgICAgICAgUlNCICAgICBkc3RTdGVwLGRzdFN0ZXAsIzE2ICAgICAgICAgICAgICAgICAgICAgQC8vIGRzdFN0ZXAgPSAtIDMqb3V0UG9pbnRTdGVwKzE2CisgICAgICAgIE1PViAgICAgc3RlcDI0LCMyNAorCisgICAgICAgIEAvLyBBQy5yIEFDLmkgQkQuciBCRC5pCisgICAgICAgIFZMRDQgICAgIHtkQnV0dGVyZmx5MlJlYWwwMixkQnV0dGVyZmx5MkltYWcwMixkQnV0dGVyZmx5MlJlYWwxMyxkQnV0dGVyZmx5MkltYWcxM30sW3BTcmMgOjI1Nl0hCisKKworICAgICAgICBALy8gUHJvY2VzcyB0d28gZ3JvdXBzIGF0IGEgdGltZQorCityYWRpeDRsc0dycExvb3BcbmFtZSA6CisKKyAgICAgICAgVlpJUCAgICBkVzJyLGRXMmkKKyAgICAgICAgQUREICAgICBzdGVwVHdpZGRsZSxzdGVwVHdpZGRsZSwjMTYKKyAgICAgICAgVlpJUCAgICBkVzNyLGRXM2kKKyAgICAgICAgQUREICAgICBncnBUd1N0ZXAsc3RlcFR3aWRkbGUsIzQKKyAgICAgICAgVlVaUCAgICAgZEJ1dHRlcmZseTFSZWFsMTMsIGRCdXR0ZXJmbHkyUmVhbDEzICAgQC8vIEIuciBELnIKKyAgICAgICAgU1VCICAgICB0d1N0ZXAsc3RlcFR3aWRkbGUsIzE2ICAgICAgICAgICAgICAgICAgQC8vIC0xNitzdGVwVHdpZGRsZQorICAgICAgICBWVVpQICAgICBkQnV0dGVyZmx5MUltYWcxMywgZEJ1dHRlcmZseTJJbWFnMTMgICBALy8gQi5pIEQuaQorICAgICAgICBNT1YgICAgIGdycFR3U3RlcCxncnBUd1N0ZXAsTFNMICMxCisgICAgICAgIFZVWlAgICAgIGRCdXR0ZXJmbHkxUmVhbDAyLCBkQnV0dGVyZmx5MlJlYWwwMiAgIEAvLyBBLnIgQy5yCisgICAgICAgIFJTQiAgICAgZ3JwVHdTdGVwLGdycFR3U3RlcCwjMCAgICAgICAgICAgICAgICAgIEAvLyAtOC0yKnN0ZXBUd2lkZGxlCisKKworICAgICAgICBWVVpQICAgICBkQnV0dGVyZmx5MUltYWcwMiwgZEJ1dHRlcmZseTJJbWFnMDIgICBALy8gQS5pIEMuaQorCisKKyAgICAgICAgQC8vIGdycENvdW50IGlzIG11bHRpcGxpZWQgYnkgNAorICAgICAgICBTVUJTICAgIGdycENvdW50LGdycENvdW50LCM4CisKKyAgICAgICAgLmlmZXFzICAiXGludmVyc2UiLCAiVFJVRSIKKyAgICAgICAgICAgIFZNVUwgICBkWnIxLGRXMXIsZFhyMQorICAgICAgICAgICAgVk1MQSAgIGRacjEsZFcxaSxkWGkxICAgICAgICAgICAgICAgICAgICAgICBALy8gcmVhbCBwYXJ0CisgICAgICAgICAgICBWTVVMICAgZFppMSxkVzFyLGRYaTEKKyAgICAgICAgICAgIFZNTFMgICBkWmkxLGRXMWksZFhyMSAgICAgICAgICAgICAgICAgICAgICAgQC8vIGltYWcgcGFydAorCisgICAgICAgIC5lbHNlCisKKyAgICAgICAgICAgIFZNVUwgICBkWnIxLGRXMXIsZFhyMQorICAgICAgICAgICAgVk1MUyAgIGRacjEsZFcxaSxkWGkxICAgICAgICAgICAgICAgICAgICAgICBALy8gcmVhbCBwYXJ0CisgICAgICAgICAgICBWTVVMICAgZFppMSxkVzFyLGRYaTEKKyAgICAgICAgICAgIFZNTEEgICBkWmkxLGRXMWksZFhyMSAgICAgICAgICAgICAgICAgICAgICAgQC8vIGltYWcgcGFydAorCisgICAgICAgIC5lbmRpZgorCisgICAgICAgIFZMRDIgICAge2RXMXIsZFcxaX0sW3BUd2lkZGxlIDoxMjhdLHN0ZXBUd2lkZGxlICAgICAgQC8vIFt3aXx3cl0KKworICAgICAgICAuaWZlcXMgICJcaW52ZXJzZSIsICJUUlVFIgorICAgICAgICAgICAgVk1VTCAgIGRacjIsZFcycixkWHIyCisgICAgICAgICAgICBWTUxBICAgZFpyMixkVzJpLGRYaTIgICAgICAgICAgICAgICAgICAgICAgIEAvLyByZWFsIHBhcnQKKyAgICAgICAgICAgIFZNVUwgICBkWmkyLGRXMnIsZFhpMgorICAgICAgICAgICAgVkxEMSAgIGRXMnIsW3BUd2lkZGxlIDo2NF0sc3RlcDE2ICAgICAgICAgICBALy8gW3dpfHdyXQorICAgICAgICAgICAgVk1MUyAgIGRaaTIsZFcyaSxkWHIyICAgICAgICAgICAgICAgICAgICAgICBALy8gaW1hZyBwYXJ0CisKKyAgICAgICAgLmVsc2UKKworICAgICAgICAgICAgVk1VTCAgIGRacjIsZFcycixkWHIyCisgICAgICAgICAgICBWTUxTICAgZFpyMixkVzJpLGRYaTIgICAgICAgICAgICAgICAgICAgICAgIEAvLyByZWFsIHBhcnQKKyAgICAgICAgICAgIFZNVUwgICBkWmkyLGRXMnIsZFhpMgorICAgICAgICAgICAgVkxEMSAgICBkVzJyLFtwVHdpZGRsZSA6NjRdLHN0ZXAxNiAgICAgICAgICBALy8gW3dpfHdyXQorICAgICAgICAgICAgVk1MQSAgIGRaaTIsZFcyaSxkWHIyICAgICAgICAgICAgICAgICAgICAgICBALy8gaW1hZyBwYXJ0CisKKyAgICAgICAgLmVuZGlmCisKKworICAgICAgICBWTEQxICAgIGRXMmksW3BUd2lkZGxlIDo2NF0sdHdTdGVwICAgICAgICAgICAgICBALy8gW3dpfHdyXQorCisgICAgICAgIEAvLyBtb3ZlIHFYMCBzbyBhcyB0byBsb2FkIGZvciB0aGUgbmV4dCBpdGVyYXRpb24KKyAgICAgICAgVk1PViAgICAgcVowLHFYMAorICAgICAgICBALy8gQUMuciBBQy5pIEJELnIgQkQuaQorICAgICAgICBWTEQ0ICAgICB7ZEJ1dHRlcmZseTFSZWFsMDIsZEJ1dHRlcmZseTFJbWFnMDIsZEJ1dHRlcmZseTFSZWFsMTMsZEJ1dHRlcmZseTFJbWFnMTN9LFtwU3JjIDoyNTZdIQorCisKKyAgICAgICAgLmlmZXFzICAiXGludmVyc2UiLCAiVFJVRSIKKyAgICAgICAgICAgIFZNVUwgICBkWnIzLGRXM3IsZFhyMworICAgICAgICAgICAgVk1MQSAgIGRacjMsZFczaSxkWGkzICAgICAgICAgICAgICAgICAgICAgICBALy8gcmVhbCBwYXJ0CisgICAgICAgICAgICBWTVVMICAgZFppMyxkVzNyLGRYaTMKKyAgICAgICAgICAgIFZMRDEgICAgZFczcixbcFR3aWRkbGUgOjY0XSxzdGVwMjQKKyAgICAgICAgICAgIFZNTFMgICBkWmkzLGRXM2ksZFhyMyAgICAgICAgICAgICAgICAgICAgICAgQC8vIGltYWcgcGFydAorCisgICAgICAgIC5lbHNlCisKKyAgICAgICAgICAgIFZNVUwgICBkWnIzLGRXM3IsZFhyMworICAgICAgICAgICAgVk1MUyAgIGRacjMsZFczaSxkWGkzICAgICAgICAgICAgICAgICAgICAgICBALy8gcmVhbCBwYXJ0CisgICAgICAgICAgICBWTVVMICAgZFppMyxkVzNyLGRYaTMKKyAgICAgICAgICAgIFZMRDEgICAgZFczcixbcFR3aWRkbGUgOjY0XSxzdGVwMjQKKyAgICAgICAgICAgIFZNTEEgICBkWmkzLGRXM2ksZFhyMyAgICAgICAgICAgICAgICAgICAgICAgQC8vIGltYWcgcGFydAorCisgICAgICAgIC5lbmRpZgorCisgICAgICAgIFZMRDEgICAgZFczaSxbcFR3aWRkbGUgOjY0XSxncnBUd1N0ZXAgICAgICAgICAgIEAvLyBbd2l8d3JdCisKKyAgICAgICAgQC8vIEFDLnIgQUMuaSBCRC5yIEJELmkKKyAgICAgICAgVkxENCAgICAge2RCdXR0ZXJmbHkyUmVhbDAyLGRCdXR0ZXJmbHkySW1hZzAyLGRCdXR0ZXJmbHkyUmVhbDEzLGRCdXR0ZXJmbHkySW1hZzEzfSxbcFNyYyA6MjU2XSEKKworCisgICAgICAgIEAvLyBmaW5pc2ggZmlyc3Qgc3RhZ2Ugb2YgNCBwb2ludCBGRlQKKworICAgICAgICBWQUREICAgIHFZMCxxWjAscVoyCisgICAgICAgIFZTVUIgICAgcVkyLHFaMCxxWjIKKyAgICAgICAgVkFERCAgICBxWTEscVoxLHFaMworICAgICAgICBWU1VCICAgIHFZMyxxWjEscVozCisKKworICAgICAgICBALy8gZmluaXNoIHNlY29uZCBzdGFnZSBvZiA0IHBvaW50IEZGVAorCisgICAgICAgIC5pZmVxcyAgIlxpbnZlcnNlIiwgIlRSVUUiCisKKyAgICAgICAgICAgIFZTVUIgICAgcVowLHFZMixxWTEKKworICAgICAgICAgICAgVkFERCAgICBkWnIzLGRZcjAsZFlpMworICAgICAgICAgICAgVlNUMiAgICB7ZFpyMCxkWmkwfSxbcERzdCA6MTI4XSxvdXRQb2ludFN0ZXAKKyAgICAgICAgICAgIFZTVUIgICAgZFppMyxkWWkwLGRZcjMKKworICAgICAgICAgICAgVkFERCAgICBxWjIscVkyLHFZMQorICAgICAgICAgICAgVlNUMiAgICB7ZFpyMyxkWmkzfSxbcERzdCA6MTI4XSxvdXRQb2ludFN0ZXAKKworICAgICAgICAgICAgVlNVQiAgICBkWnIxLGRZcjAsZFlpMworICAgICAgICAgICAgVlNUMiAgICB7ZFpyMixkWmkyfSxbcERzdCA6MTI4XSxvdXRQb2ludFN0ZXAKKyAgICAgICAgICAgIFZBREQgICAgZFppMSxkWWkwLGRZcjMKKworICAgICAgICAgICAgQC8vIGRzdFN0ZXAgPSAtb3V0UG9pbnRTdGVwICsgMTYKKyAgICAgICAgICAgIFZTVDIgICAge2RacjEsZFppMX0sW3BEc3QgOjEyOF0sZHN0U3RlcAorCisKKyAgICAgICAgLmVsc2UKKworICAgICAgICAgICAgVlNVQiAgICBxWjAscVkyLHFZMQorCisgICAgICAgICAgICBWU1VCICAgIGRacjEsZFlyMCxkWWkzCisgICAgICAgICAgICBWU1QyICAgIHtkWnIwLGRaaTB9LFtwRHN0IDoxMjhdLG91dFBvaW50U3RlcAorICAgICAgICAgICAgVkFERCAgICBkWmkxLGRZaTAsZFlyMworCisgICAgICAgICAgICBWQUREICAgIHFaMixxWTIscVkxCisgICAgICAgICAgICBWU1QyICAgIHtkWnIxLGRaaTF9LFtwRHN0IDoxMjhdLG91dFBvaW50U3RlcAorCisgICAgICAgICAgICBWQUREICAgIGRacjMsZFlyMCxkWWkzCisgICAgICAgICAgICBWU1QyICAgIHtkWnIyLGRaaTJ9LFtwRHN0IDoxMjhdLG91dFBvaW50U3RlcAorICAgICAgICAgICAgVlNVQiAgICBkWmkzLGRZaTAsZFlyMworCisgICAgICAgICAgICBALy8gZHN0U3RlcCA9IC1vdXRQb2ludFN0ZXAgKyAxNgorICAgICAgICAgICAgVlNUMiAgICB7ZFpyMyxkWmkzfSxbcERzdCA6MTI4XSxkc3RTdGVwCisKKworICAgICAgICAuZW5kaWYKKworICAgICAgICBCR1QgICAgIHJhZGl4NGxzR3JwTG9vcFxuYW1lCisKKworICAgICAgICBALy8gUmVzZXQgYW5kIFN3YXAgcFNyYyBhbmQgcERzdCBmb3IgdGhlIG5leHQgc3RhZ2UKKyAgICAgICAgTU9WICAgICBwVG1wLHBEc3QKKyAgICAgICAgQC8vIEV4dHJhIGluY3JlbWVudCBkb25lIGluIGZpbmFsIGl0ZXJhdGlvbiBvZiB0aGUgbG9vcAorICAgICAgICBTVUIgICAgIHBTcmMscFNyYywjNjQKKyAgICAgICAgQC8vIHBEc3QgLT0gNCpzaXplOyBwU3JjIC09IDgqc2l6ZSBieXRlcworICAgICAgICBTVUIgICAgIHBEc3QscFNyYyxvdXRQb2ludFN0ZXAsTFNMICMyCisgICAgICAgIFNVQiAgICAgcFNyYyxwVG1wLG91dFBvaW50U3RlcAorICAgICAgICBTVUIgICAgIHBUd2lkZGxlLHBUd2lkZGxlLHN1YkZGVFNpemUsTFNMICMxCisgICAgICAgIEAvLyBFeHRyYSBpbmNyZW1lbnQgZG9uZSBpbiBmaW5hbCBpdGVyYXRpb24gb2YgdGhlIGxvb3AKKyAgICAgICAgU1VCICAgICBwVHdpZGRsZSxwVHdpZGRsZSwjMTYKKworICAgICAgICAuZW5kbQorCisKKyAgICAgICAgTV9TVEFSVCBhcm1TUF9GRlRGd2RfQ1RvQ19GQzMyX1JhZGl4NF9sc19PdXRPZlBsYWNlX3Vuc2FmZSxyNAorICAgICAgICBGRlRTVEFHRSAiRkFMU0UiLCJGQUxTRSIsZndkCisgICAgICAgIE1fRU5ECisKKworICAgICAgICBNX1NUQVJUIGFybVNQX0ZGVEludl9DVG9DX0ZDMzJfUmFkaXg0X2xzX091dE9mUGxhY2VfdW5zYWZlLHI0CisgICAgICAgIEZGVFNUQUdFICJGQUxTRSIsIlRSVUUiLGludgorICAgICAgICBNX0VORAorCisKKyAgICAgICAgLmVuZApkaWZmIC0tZ2l0IGEvZGwvYXJtU1BfRkZUX0NUb0NfRkMzMl9SYWRpeDRfdW5zYWZlX3MuUyBiL2RsL2FybVNQX0ZGVF9DVG9DX0ZDMzJfUmFkaXg0X3Vuc2FmZV9zLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjQwNTQ4MwotLS0gL2Rldi9udWxsCisrKyBiL2RsL2FybVNQX0ZGVF9DVG9DX0ZDMzJfUmFkaXg0X3Vuc2FmZV9zLlMKQEAgLTAsMCArMSwzMjQgQEAKK0AvLworQC8vICBDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitALy8KK0AvLyAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorQC8vICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKK0AvLyAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorQC8vICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CitALy8gIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorQC8vCitALy8KK0AvLyAgVGhpcyBpcyBhIG1vZGlmaWNhdGlvbiBvZiBhcm1TUF9GRlRfQ1RvQ19TQzMyX1JhZGl4NF91bnNhZmVfcy5zCitALy8gIHRvIHN1cHBvcnQgZmxvYXQgaW5zdGVhZCBvZiBTQzMyLgorQC8vCisKK0AvLworQC8vIERlc2NyaXB0aW9uOgorQC8vIENvbXB1dGUgYSBSYWRpeCA0IEZGVCBzdGFnZSBmb3IgYSBOIHBvaW50IGNvbXBsZXggc2lnbmFsCitALy8KK0AvLworCisKK0AvLyBJbmNsdWRlIHN0YW5kYXJkIGhlYWRlcnMKKworI2luY2x1ZGUgIm9teHR5cGVzX3MuaCIKKyNpbmNsdWRlICJhcm1DT01NX3MuaCIKKworCitALy8gSW1wb3J0IHN5bWJvbHMgcmVxdWlyZWQgZnJvbSBvdGhlciBmaWxlcworQC8vIChGb3IgZXhhbXBsZSB0YWJsZXMpCisKKworCisKK0AvLyBTZXQgZGVidWdnaW5nIGxldmVsCitALy9ERUJVR19PTiAgICBTRVRMIHtUUlVFfQorCisKKworQC8vIEd1YXJkaW5nIGltcGxlbWVudGF0aW9uIGJ5IHRoZSBwcm9jZXNzb3IgbmFtZQorCisKKworCitALy8gR3VhcmRpbmcgaW1wbGVtZW50YXRpb24gYnkgdGhlIHByb2Nlc3NvciBuYW1lCisKKworQC8vIEltcG9ydCBzeW1ib2xzIHJlcXVpcmVkIGZyb20gb3RoZXIgZmlsZXMKK0AvLyAoRm9yIGV4YW1wbGUgdGFibGVzKQorCisKK0AvL0lucHV0IFJlZ2lzdGVycworCisjZGVmaW5lIHBTcmMgICAgICAgICAgICByMAorI2RlZmluZSBwRHN0ICAgICAgICAgICAgcjIKKyNkZWZpbmUgcFR3aWRkbGUgICAgICAgIHIxCisjZGVmaW5lIHN1YkZGVE51bSAgICAgICByNgorI2RlZmluZSBzdWJGRlRTaXplICAgICAgcjcKKworCisKK0AvL091dHB1dCBSZWdpc3RlcnMKKworCitALy9Mb2NhbCBTY3JhdGNoIFJlZ2lzdGVycworCisjZGVmaW5lIGdycENvdW50ICAgICAgICByMworI2RlZmluZSBwb2ludFN0ZXAgICAgICAgcjQKKyNkZWZpbmUgb3V0UG9pbnRTdGVwICAgIHI1CisjZGVmaW5lIHN0ZXBUd2lkZGxlICAgICByMTIKKyNkZWZpbmUgc2V0Q291bnQgICAgICAgIHIxNAorI2RlZmluZSBzcmNTdGVwICAgICAgICAgcjgKKyNkZWZpbmUgc2V0U3RlcCAgICAgICAgIHI5CisjZGVmaW5lIGRzdFN0ZXAgICAgICAgICByMTAKKyNkZWZpbmUgdHdTdGVwICAgICAgICAgIHIxMQorI2RlZmluZSB0MSAgICAgICAgICAgICAgcjMKKworQC8vIE5lb24gUmVnaXN0ZXJzCisKKyNkZWZpbmUgZFcxICAgICBEMC5GMzIKKyNkZWZpbmUgZFcyICAgICBEMS5GMzIKKyNkZWZpbmUgZFczICAgICBEMi5GMzIKKworI2RlZmluZSBkWHIwICAgIEQ0LkYzMgorI2RlZmluZSBkWGkwICAgIEQ1LkYzMgorI2RlZmluZSBkWHIxICAgIEQ2LkYzMgorI2RlZmluZSBkWGkxICAgIEQ3LkYzMgorI2RlZmluZSBkWHIyICAgIEQ4LkYzMgorI2RlZmluZSBkWGkyICAgIEQ5LkYzMgorI2RlZmluZSBkWHIzICAgIEQxMC5GMzIKKyNkZWZpbmUgZFhpMyAgICBEMTEuRjMyCisjZGVmaW5lIGRZcjAgICAgRDEyLkYzMgorI2RlZmluZSBkWWkwICAgIEQxMy5GMzIKKyNkZWZpbmUgZFlyMSAgICBEMTQuRjMyCisjZGVmaW5lIGRZaTEgICAgRDE1LkYzMgorI2RlZmluZSBkWXIyICAgIEQxNi5GMzIKKyNkZWZpbmUgZFlpMiAgICBEMTcuRjMyCisjZGVmaW5lIGRZcjMgICAgRDE4LkYzMgorI2RlZmluZSBkWWkzICAgIEQxOS5GMzIKKyNkZWZpbmUgcVQwICAgICBkMTYuZjMyCisjZGVmaW5lIHFUMSAgICAgZDE4LmYzMgorI2RlZmluZSBxVDIgICAgIGQxMi5mMzIKKyNkZWZpbmUgcVQzICAgICBkMTQuZjMyCisjZGVmaW5lIGRacjAgICAgRDIwLkYzMgorI2RlZmluZSBkWmkwICAgIEQyMS5GMzIKKyNkZWZpbmUgZFpyMSAgICBEMjIuRjMyCisjZGVmaW5lIGRaaTEgICAgRDIzLkYzMgorI2RlZmluZSBkWnIyICAgIEQyNC5GMzIKKyNkZWZpbmUgZFppMiAgICBEMjUuRjMyCisjZGVmaW5lIGRacjMgICAgRDI2LkYzMgorI2RlZmluZSBkWmkzICAgIEQyNy5GMzIKKworI2RlZmluZSBxWTAgICAgIFE2LkYzMgorI2RlZmluZSBxWTEgICAgIFE3LkYzMgorI2RlZmluZSBxWTIgICAgIFE4LkYzMgorI2RlZmluZSBxWTMgICAgIFE5LkYzMgorI2RlZmluZSBxWDAgICAgIFEyLkYzMgorI2RlZmluZSBxWjAgICAgIFExMC5GMzIKKyNkZWZpbmUgcVoxICAgICBRMTEuRjMyCisjZGVmaW5lIHFaMiAgICAgUTEyLkYzMgorI2RlZmluZSBxWjMgICAgIFExMy5GMzIKKworICAgICAgICAuTUFDUk8gRkZUU1RBR0Ugc2NhbGVkLCBpbnZlcnNlICwgbmFtZQorCisgICAgICAgIEAvLyBEZWZpbmUgc3RhY2sgYXJndW1lbnRzCisKKworICAgICAgICBALy8gVXBkYXRlIGdycENvdW50IGFuZCBncnBTaXplIHJpZ2h0YXdheSBpbm9yZGVyIHRvIHJldXNlCisgICAgICAgIEAvLyBwR3JwQ291bnQgYW5kIHBHcnBTaXplIHJlZ3MKKworICAgICAgICBMU0wgICAgIGdycENvdW50LHN1YkZGVFNpemUsIzIKKyAgICAgICAgTFNSICAgICBzdWJGRlROdW0sc3ViRkZUTnVtLCMyCisgICAgICAgIE1PViAgICAgc3ViRkZUU2l6ZSxncnBDb3VudAorCisgICAgICAgIFZMRDEgICAgIGRXMSxbcFR3aWRkbGVdICAgICAgICAgICAgICAgICAgICBALy9bd2kgfCB3cl0KKyAgICAgICAgQC8vIHBUMCsxIGluY3JlbWVudHMgcFQwIGJ5IDggYnl0ZXMKKyAgICAgICAgQC8vIHBUMCtwb2ludFN0ZXAgPSBpbmNyZW1lbnQgb2YgOCpwb2ludFN0ZXAgYnl0ZXMgPSAyKmdycFNpemUgYnl0ZXMKKyAgICAgICAgTU9WICAgICBwb2ludFN0ZXAsc3ViRkZUTnVtLExTTCAjMQorCisKKyAgICAgICAgQC8vIHBPdXQwKzEgaW5jcmVtZW50cyBwT3V0MCBieSA4IGJ5dGVzCisgICAgICAgIEAvLyBwT3V0MCtvdXRQb2ludFN0ZXAgPT0gaW5jcmVtZW50IG9mIDgqb3V0UG9pbnRTdGVwIGJ5dGVzCisgICAgICAgIEAvLyAgID0gMipzaXplIGJ5dGVzCisKKyAgICAgICAgTU9WICAgICBzdGVwVHdpZGRsZSwjMAorICAgICAgICBWTEQxICAgICBkVzIsW3BUd2lkZGxlXSAgICAgICAgICAgICAgICAgICAgQC8vW3dpIHwgd3JdCisgICAgICAgIFNNVUxCQiAgb3V0UG9pbnRTdGVwLGdycENvdW50LHBvaW50U3RlcAorICAgICAgICBMU0wgICAgIHBvaW50U3RlcCxwb2ludFN0ZXAsIzIgICAgICAgICAgICAgQC8vIDIqZ3JwU2l6ZQorCisgICAgICAgIFZMRDEgICAgIGRXMyxbcFR3aWRkbGVdICAgICAgICAgICAgICAgICAgICBALy9bd2kgfCB3cl0KKyAgICAgICAgTU9WICAgICBzcmNTdGVwLHBvaW50U3RlcCxMU0wgIzEgICAgICAgICAgIEAvLyBzcmNTdGVwID0gMipwb2ludFN0ZXAKKyAgICAgICAgQUREICAgICBzZXRTdGVwLHNyY1N0ZXAscG9pbnRTdGVwICAgICAgICAgIEAvLyBzZXRTdGVwID0gMypwb2ludFN0ZXAKKworICAgICAgICBSU0IgICAgIHNldFN0ZXAsc2V0U3RlcCwjMCAgICAgICAgICAgICAgICAgQC8vIHNldFN0ZXAgPSAtIDMqcG9pbnRTdGVwCisgICAgICAgIFNVQiAgICAgc3JjU3RlcCxzcmNTdGVwLCMxNiAgICAgICAgICAgICAgICBALy8gc3JjU3RlcCA9IDIqcG9pbnRTdGVwLTE2CisKKyAgICAgICAgTU9WICAgICBkc3RTdGVwLG91dFBvaW50U3RlcCxMU0wgIzEKKyAgICAgICAgQUREICAgICBkc3RTdGVwLGRzdFN0ZXAsb3V0UG9pbnRTdGVwICAgICAgIEAvLyBkc3RTdGVwID0gMypvdXRQb2ludFN0ZXAKKyAgICAgICAgQC8vIGRzdFN0ZXAgPSAtIDMqb3V0UG9pbnRTdGVwKzE2CisgICAgICAgIFJTQiAgICAgZHN0U3RlcCxkc3RTdGVwLCMxNgorCisKKworcmFkaXg0R3JwTG9vcFxuYW1lIDoKKworICAgICAgICBWTEQyICAgIHtkWHIwLGRYaTB9LFtwU3JjXSxwb2ludFN0ZXAgICAgICAgQC8vICBkYXRhWzBdCisgICAgICAgIEFERCAgICAgIHN0ZXBUd2lkZGxlLHN0ZXBUd2lkZGxlLHBvaW50U3RlcAorICAgICAgICBWTEQyICAgIHtkWHIxLGRYaTF9LFtwU3JjXSxwb2ludFN0ZXAgICAgICAgQC8vICBkYXRhWzFdCisgICAgICAgIEAvLyBzZXQgcFR3aWRkbGUgdG8gdGhlIGZpcnN0IHBvaW50CisgICAgICAgIEFERCAgICAgIHBUd2lkZGxlLHBUd2lkZGxlLHN0ZXBUd2lkZGxlCisgICAgICAgIFZMRDIgICAge2RYcjIsZFhpMn0sW3BTcmNdLHBvaW50U3RlcCAgICAgICBALy8gIGRhdGFbMl0KKyAgICAgICAgTU9WICAgICAgdHdTdGVwLHN0ZXBUd2lkZGxlLExTTCAjMgorCisgICAgICAgIEAvLyAgZGF0YVszXSAmIHVwZGF0ZSBwU3JjIGZvciB0aGUgbmV4dCBzZXQKKyAgICAgICAgVkxEMiAgICB7ZFhyMyxkWGkzfSxbcFNyY10sc2V0U3RlcAorICAgICAgICBTVUIgICAgICB0d1N0ZXAsc3RlcFR3aWRkbGUsdHdTdGVwICAgICAgICAgQC8vIHR3U3RlcCA9IC0zKnN0ZXBUd2lkZGxlCisKKyAgICAgICAgTU9WICAgICAgc2V0Q291bnQscG9pbnRTdGVwLExTUiAjMworICAgICAgICBALy8gc2V0IHBTcmMgdG8gZGF0YVswXSBvZiB0aGUgbmV4dCBzZXQKKyAgICAgICAgQUREICAgICBwU3JjLHBTcmMsIzE2CisgICAgICAgIEAvLyBpbmNyZW1lbnQgdG8gZGF0YVsxXSBvZiB0aGUgbmV4dCBzZXQKKyAgICAgICAgQUREICAgICBwU3JjLHBTcmMscG9pbnRTdGVwCisKKworICAgICAgICBALy8gTG9vcCBvbiB0aGUgc2V0cworCityYWRpeDRTZXRMb29wXG5hbWUgOgorCisKKworICAgICAgICBTVUJTICAgIHNldENvdW50LHNldENvdW50LCMyCisKKyAgICAgICAgLmlmZXFzICAiXGludmVyc2UiLCAiVFJVRSIKKyAgICAgICAgICAgIFZNVUwgICBkWnIxLGRYcjEsZFcxWzBdCisgICAgICAgICAgICBWTVVMICAgZFppMSxkWGkxLGRXMVswXQorICAgICAgICAgICAgVk1VTCAgIGRacjIsZFhyMixkVzJbMF0KKyAgICAgICAgICAgIFZNVUwgICBkWmkyLGRYaTIsZFcyWzBdCisgICAgICAgICAgICBWTVVMICAgZFpyMyxkWHIzLGRXM1swXQorICAgICAgICAgICAgVk1VTCAgIGRaaTMsZFhpMyxkVzNbMF0KKworICAgICAgICAgICAgVk1MQSAgIGRacjEsZFhpMSxkVzFbMV0gICAgICAgICAgICAgICAgQC8vIHJlYWwgcGFydAorICAgICAgICAgICAgVk1MUyAgIGRaaTEsZFhyMSxkVzFbMV0gICAgICAgICAgICAgICAgQC8vIGltYWcgcGFydAorCisgICAgICAgICAgICBALy8gIGRhdGFbMV0gZm9yIG5leHQgaXRlcmF0aW9uCisgICAgICAgICAgICBWTEQyICAgIHtkWHIxLGRYaTF9LFtwU3JjXSxwb2ludFN0ZXAKKworICAgICAgICAgICAgVk1MQSAgIGRacjIsZFhpMixkVzJbMV0gICAgICAgICAgICAgICAgQC8vIHJlYWwgcGFydAorICAgICAgICAgICAgVk1MUyAgIGRaaTIsZFhyMixkVzJbMV0gICAgICAgICAgICAgICAgQC8vIGltYWcgcGFydAorCisgICAgICAgICAgICBALy8gIGRhdGFbMl0gZm9yIG5leHQgaXRlcmF0aW9uCisgICAgICAgICAgICBWTEQyICAgIHtkWHIyLGRYaTJ9LFtwU3JjXSxwb2ludFN0ZXAKKworICAgICAgICAgICAgVk1MQSAgIGRacjMsZFhpMyxkVzNbMV0gICAgICAgICAgICAgICAgQC8vIHJlYWwgcGFydAorICAgICAgICAgICAgVk1MUyAgIGRaaTMsZFhyMyxkVzNbMV0gICAgICAgICAgICAgICAgQC8vIGltYWcgcGFydAorICAgICAgICAuZWxzZQorICAgICAgICAgICAgVk1VTCAgIGRacjEsZFhyMSxkVzFbMF0KKyAgICAgICAgICAgIFZNVUwgICBkWmkxLGRYaTEsZFcxWzBdCisgICAgICAgICAgICBWTVVMICAgZFpyMixkWHIyLGRXMlswXQorICAgICAgICAgICAgVk1VTCAgIGRaaTIsZFhpMixkVzJbMF0KKyAgICAgICAgICAgIFZNVUwgICBkWnIzLGRYcjMsZFczWzBdCisgICAgICAgICAgICBWTVVMICAgZFppMyxkWGkzLGRXM1swXQorCisgICAgICAgICAgICBWTUxTICAgZFpyMSxkWGkxLGRXMVsxXSAgICAgICAgICAgICAgICBALy8gcmVhbCBwYXJ0CisgICAgICAgICAgICBWTUxBICAgZFppMSxkWHIxLGRXMVsxXSAgICAgICAgICAgICAgICBALy8gaW1hZyBwYXJ0CisKKyAgICAgICAgICAgIEAvLyAgZGF0YVsxXSBmb3IgbmV4dCBpdGVyYXRpb24KKyAgICAgICAgICAgIFZMRDIgICAge2RYcjEsZFhpMX0sW3BTcmNdLHBvaW50U3RlcAorCisgICAgICAgICAgICBWTUxTICAgZFpyMixkWGkyLGRXMlsxXSAgICAgICAgICAgICAgICBALy8gcmVhbCBwYXJ0CisgICAgICAgICAgICBWTUxBICAgZFppMixkWHIyLGRXMlsxXSAgICAgICAgICAgICAgICBALy8gaW1hZyBwYXJ0CisKKyAgICAgICAgICAgIEAvLyAgZGF0YVsyXSBmb3IgbmV4dCBpdGVyYXRpb24KKyAgICAgICAgICAgIFZMRDIgICAge2RYcjIsZFhpMn0sW3BTcmNdLHBvaW50U3RlcAorCisgICAgICAgICAgICBWTUxTICAgZFpyMyxkWGkzLGRXM1sxXSAgICAgICAgICAgICAgICBALy8gcmVhbCBwYXJ0CisgICAgICAgICAgICBWTUxBICAgZFppMyxkWHIzLGRXM1sxXSAgICAgICAgICAgICAgICBALy8gaW1hZyBwYXJ0CisgICAgICAgIC5lbmRpZgorCisgICAgICAgIEAvLyAgZGF0YVszXSAmIHVwZGF0ZSBwU3JjIHRvIGRhdGFbMF0KKyAgICAgICAgVkxEMiAgICB7ZFhyMyxkWGkzfSxbcFNyY10sc2V0U3RlcAorCisgICAgICAgIEAvLyBmaW5pc2ggZmlyc3Qgc3RhZ2Ugb2YgNCBwb2ludCBGRlQKKyAgICAgICAgVkFERCAgICBxWTAscVgwLHFaMgorICAgICAgICBWU1VCICAgIHFZMixxWDAscVoyCisKKyAgICAgICAgQC8vICBkYXRhWzBdIGZvciBuZXh0IGl0ZXJhdGlvbgorICAgICAgICBWTEQyICAgIHtkWHIwLGRYaTB9LFtwU3JjIDoxMjhdIQorICAgICAgICBWQUREICAgIHFZMSxxWjEscVozCisgICAgICAgIFZTVUIgICAgcVkzLHFaMSxxWjMKKworICAgICAgICBALy8gZmluaXNoIHNlY29uZCBzdGFnZSBvZiA0IHBvaW50IEZGVAorCisgICAgICAgIFZTVUIgICAgcVowLHFZMixxWTEKKworCisgICAgICAgIC5pZmVxcyAgIlxpbnZlcnNlIiwgIlRSVUUiCisKKyAgICAgICAgICAgIFZBREQgICAgZFpyMyxkWXIwLGRZaTMKKyAgICAgICAgICAgIFZTVDIgICAge2RacjAsZFppMH0sW3BEc3QgOjEyOF0sb3V0UG9pbnRTdGVwCisgICAgICAgICAgICBWU1VCICAgIGRaaTMsZFlpMCxkWXIzCisKKyAgICAgICAgICAgIFZBREQgICAgcVoyLHFZMixxWTEKKyAgICAgICAgICAgIFZTVDIgICAge2RacjMsZFppM30sW3BEc3QgOjEyOF0sb3V0UG9pbnRTdGVwCisKKyAgICAgICAgICAgIFZTVUIgICAgZFpyMSxkWXIwLGRZaTMKKyAgICAgICAgICAgIFZTVDIgICAge2RacjIsZFppMn0sW3BEc3QgOjEyOF0sb3V0UG9pbnRTdGVwCisgICAgICAgICAgICBWQUREICAgIGRaaTEsZFlpMCxkWXIzCisKKyAgICAgICAgICAgIFZTVDIgICAge2RacjEsZFppMX0sW3BEc3QgOjEyOF0sZHN0U3RlcAorCisKKyAgICAgICAgLmVsc2UKKworICAgICAgICAgICAgVlNVQiAgICBkWnIxLGRZcjAsZFlpMworICAgICAgICAgICAgVlNUMiAgICB7ZFpyMCxkWmkwfSxbcERzdCA6MTI4XSxvdXRQb2ludFN0ZXAKKyAgICAgICAgICAgIFZBREQgICAgZFppMSxkWWkwLGRZcjMKKworICAgICAgICAgICAgVkFERCAgICBxWjIscVkyLHFZMQorICAgICAgICAgICAgVlNUMiAgICB7ZFpyMSxkWmkxfSxbcERzdCA6MTI4XSxvdXRQb2ludFN0ZXAKKworICAgICAgICAgICAgVkFERCAgICBkWnIzLGRZcjAsZFlpMworICAgICAgICAgICAgVlNUMiAgICB7ZFpyMixkWmkyfSxbcERzdCA6MTI4XSxvdXRQb2ludFN0ZXAKKyAgICAgICAgICAgIFZTVUIgICAgZFppMyxkWWkwLGRZcjMKKworICAgICAgICAgICAgVlNUMiAgICB7ZFpyMyxkWmkzfSxbcERzdCA6MTI4XSxkc3RTdGVwCisKKworICAgICAgICAuZW5kaWYKKworICAgICAgICBALy8gaW5jcmVtZW50IHRvIGRhdGFbMV0gb2YgdGhlIG5leHQgc2V0CisgICAgICAgIEFERCAgICAgcFNyYyxwU3JjLHBvaW50U3RlcAorICAgICAgICBCR1QgICAgIHJhZGl4NFNldExvb3BcbmFtZQorCisKKyAgICAgICAgVkxEMSAgICAgZFcxLFtwVHdpZGRsZSA6NjRdLHN0ZXBUd2lkZGxlICAgIEAvL1t3aSB8IHdyXQorICAgICAgICBALy8gc3VidHJhY3QgNCBzaW5jZSBncnBDb3VudCBtdWx0aXBsaWVkIGJ5IDQKKyAgICAgICAgU1VCUyAgICBncnBDb3VudCxncnBDb3VudCwjNAorICAgICAgICBWTEQxICAgICBkVzIsW3BUd2lkZGxlIDo2NF0sc3RlcFR3aWRkbGUgICAgQC8vW3dpIHwgd3JdCisgICAgICAgIEAvLyBpbmNyZW1lbnQgcFNyYyBmb3IgdGhlIG5leHQgZ3JwCisgICAgICAgIEFERCAgICAgcFNyYyxwU3JjLHNyY1N0ZXAKKyAgICAgICAgVkxEMSAgICAgZFczLFtwVHdpZGRsZSA6NjRdLHR3U3RlcCAgICAgICAgIEAvL1t3aSB8IHdyXQorICAgICAgICBCR1QgICAgIHJhZGl4NEdycExvb3BcbmFtZQorCisKKyAgICAgICAgQC8vIFJlc2V0IGFuZCBTd2FwIHBTcmMgYW5kIHBEc3QgZm9yIHRoZSBuZXh0IHN0YWdlCisgICAgICAgIE1PViAgICAgdDEscERzdAorICAgICAgICBALy8gcERzdCAtPSAyKnNpemU7IHBTcmMgLT0gOCpzaXplIGJ5dGVzCisgICAgICAgIFNVQiAgICAgcERzdCxwU3JjLG91dFBvaW50U3RlcCxMU0wgIzIKKyAgICAgICAgU1VCICAgICBwU3JjLHQxLG91dFBvaW50U3RlcAorCisKKyAgICAgICAgLmVuZG0KKworCisgICAgICAgIE1fU1RBUlQgYXJtU1BfRkZURndkX0NUb0NfRkMzMl9SYWRpeDRfT3V0T2ZQbGFjZV91bnNhZmUscjQKKyAgICAgICAgICAgIEZGVFNUQUdFICJGQUxTRSIsIkZBTFNFIixGV0QKKyAgICAgICAgTV9FTkQKKworCisgICAgICAgIE1fU1RBUlQgYXJtU1BfRkZUSW52X0NUb0NfRkMzMl9SYWRpeDRfT3V0T2ZQbGFjZV91bnNhZmUscjQKKyAgICAgICAgICAgIEZGVFNUQUdFICJGQUxTRSIsIlRSVUUiLElOVgorICAgICAgICBNX0VORAorCisKKyAgICAgICAgLmVuZApkaWZmIC0tZ2l0IGEvZGwvYXJtU1BfRkZUX0NUb0NfRkMzMl9SYWRpeDhfZnNfdW5zYWZlX3MuUyBiL2RsL2FybVNQX0ZGVF9DVG9DX0ZDMzJfUmFkaXg4X2ZzX3Vuc2FmZV9zLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDZlYjcxYgotLS0gL2Rldi9udWxsCisrKyBiL2RsL2FybVNQX0ZGVF9DVG9DX0ZDMzJfUmFkaXg4X2ZzX3Vuc2FmZV9zLlMKQEAgLTAsMCArMSw0MTggQEAKK0AvLworQC8vICBDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitALy8KK0AvLyAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorQC8vICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKK0AvLyAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorQC8vICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CitALy8gIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorQC8vCitALy8gIFRoaXMgaXMgYSBtb2RpZmljYXRpb24gb2YgYXJtU1BfRkZUX0NUb0NfRkMzMl9SYWRpeDhfZnNfdW5zYWZlX3MucworQC8vICB0byBzdXBwb3J0IGZsb2F0IGluc3RlYWQgb2YgU0MzMi4KK0AvLworCitALy8KK0AvLyBEZXNjcmlwdGlvbjoKK0AvLyBDb21wdXRlIGEgZmlyc3Qgc3RhZ2UgUmFkaXggOCBGRlQgc3RhZ2UgZm9yIGEgTiBwb2ludCBjb21wbGV4IHNpZ25hbAorQC8vCitALy8KKworCitALy8gSW5jbHVkZSBzdGFuZGFyZCBoZWFkZXJzCisKKyNpbmNsdWRlICJvbXh0eXBlc19zLmgiCisjaW5jbHVkZSAiYXJtQ09NTV9zLmgiCisKK0AvLyBJbXBvcnQgc3ltYm9scyByZXF1aXJlZCBmcm9tIG90aGVyIGZpbGVzCitALy8gKEZvciBleGFtcGxlIHRhYmxlcykKKworCitALy8gU2V0IGRlYnVnZ2luZyBsZXZlbAorQC8vREVCVUdfT04gICAgU0VUTCB7VFJVRX0KKworCisKK0AvLyBHdWFyZGluZyBpbXBsZW1lbnRhdGlvbiBieSB0aGUgcHJvY2Vzc29yIG5hbWUKKworCisKKworQC8vIEd1YXJkaW5nIGltcGxlbWVudGF0aW9uIGJ5IHRoZSBwcm9jZXNzb3IgbmFtZQorCitALy9JbnB1dCBSZWdpc3RlcnMKKworI2RlZmluZSBwU3JjICAgICAgICAgICAgcjAKKyNkZWZpbmUgcERzdCAgICAgICAgICAgIHIyCisjZGVmaW5lIHBUd2lkZGxlICAgICAgICByMQorI2RlZmluZSBzdWJGRlROdW0gICAgICAgcjYKKyNkZWZpbmUgc3ViRkZUU2l6ZSAgICAgIHI3CitALy8gZGVzdCBidWZmZXIgZm9yIHRoZSBuZXh0IHN0YWdlIChub3QgcFNyYyBmb3IgZmlyc3Qgc3RhZ2UpCisjZGVmaW5lIHBQaW5nUG9uZ0J1ZiAgICByNQorCisKK0AvL091dHB1dCBSZWdpc3RlcnMKKworCitALy9Mb2NhbCBTY3JhdGNoIFJlZ2lzdGVycworCisjZGVmaW5lIGdycFNpemUgICAgICAgICByMworQC8vIFJldXNlIGdycFNpemUgYXMgc2V0Q291bnQKKyNkZWZpbmUgc2V0Q291bnQgICAgICAgIHIzCisjZGVmaW5lIHBvaW50U3RlcCAgICAgICByNAorI2RlZmluZSBvdXRQb2ludFN0ZXAgICAgcjQKKyNkZWZpbmUgc2V0U3RlcCAgICAgICAgIHI4CisjZGVmaW5lIHN0ZXAxICAgICAgICAgICByOQorI2RlZmluZSBzdGVwMiAgICAgICAgICAgcjEwCisjZGVmaW5lIHQwICAgICAgICAgICAgICByMTEKKworCitALy8gTmVvbiBSZWdpc3RlcnMKKworI2RlZmluZSBkWHIwICAgIEQwLkYzMgorI2RlZmluZSBkWGkwICAgIEQxLkYzMgorI2RlZmluZSBkWHIxICAgIEQyLkYzMgorI2RlZmluZSBkWGkxICAgIEQzLkYzMgorI2RlZmluZSBkWHIyICAgIEQ0LkYzMgorI2RlZmluZSBkWGkyICAgIEQ1LkYzMgorI2RlZmluZSBkWHIzICAgIEQ2LkYzMgorI2RlZmluZSBkWGkzICAgIEQ3LkYzMgorI2RlZmluZSBkWHI0ICAgIEQ4LkYzMgorI2RlZmluZSBkWGk0ICAgIEQ5LkYzMgorI2RlZmluZSBkWHI1ICAgIEQxMC5GMzIKKyNkZWZpbmUgZFhpNSAgICBEMTEuRjMyCisjZGVmaW5lIGRYcjYgICAgRDEyLkYzMgorI2RlZmluZSBkWGk2ICAgIEQxMy5GMzIKKyNkZWZpbmUgZFhyNyAgICBEMTQuRjMyCisjZGVmaW5lIGRYaTcgICAgRDE1LkYzMgorI2RlZmluZSBxWDAgICAgIFEwLkYzMgorI2RlZmluZSBxWDEgICAgIFExLkYzMgorI2RlZmluZSBxWDIgICAgIFEyLkYzMgorI2RlZmluZSBxWDMgICAgIFEzLkYzMgorI2RlZmluZSBxWDQgICAgIFE0LkYzMgorI2RlZmluZSBxWDUgICAgIFE1LkYzMgorI2RlZmluZSBxWDYgICAgIFE2LkYzMgorI2RlZmluZSBxWDcgICAgIFE3LkYzMgorCisjZGVmaW5lIGRVcjAgICAgRDE2LkYzMgorI2RlZmluZSBkVWkwICAgIEQxNy5GMzIKKyNkZWZpbmUgZFVyMiAgICBEMTguRjMyCisjZGVmaW5lIGRVaTIgICAgRDE5LkYzMgorI2RlZmluZSBkVXI0ICAgIEQyMC5GMzIKKyNkZWZpbmUgZFVpNCAgICBEMjEuRjMyCisjZGVmaW5lIGRVcjYgICAgRDIyLkYzMgorI2RlZmluZSBkVWk2ICAgIEQyMy5GMzIKKyNkZWZpbmUgZFVyMSAgICBEMjQuRjMyCisjZGVmaW5lIGRVaTEgICAgRDI1LkYzMgorI2RlZmluZSBkVXIzICAgIEQyNi5GMzIKKyNkZWZpbmUgZFVpMyAgICBEMjcuRjMyCisjZGVmaW5lIGRVcjUgICAgRDI4LkYzMgorI2RlZmluZSBkVWk1ICAgIEQyOS5GMzIKK0AvLyByZXVzZSBkWHI3IGFuZCBkWGk3CisjZGVmaW5lIGRVcjcgICAgRDMwLkYzMgorI2RlZmluZSBkVWk3ICAgIEQzMS5GMzIKKyNkZWZpbmUgcVUwICAgICBROC5GMzIKKyNkZWZpbmUgcVUxICAgICBRMTIuRjMyCisjZGVmaW5lIHFVMiAgICAgUTkuRjMyCisjZGVmaW5lIHFVMyAgICAgUTEzLkYzMgorI2RlZmluZSBxVTQgICAgIFExMC5GMzIKKyNkZWZpbmUgcVU1ICAgICBRMTQuRjMyCisjZGVmaW5lIHFVNiAgICAgUTExLkYzMgorI2RlZmluZSBxVTcgICAgIFExNS5GMzIKKworCisjZGVmaW5lIGRWcjAgICAgRDI0LkYzMgorI2RlZmluZSBkVmkwICAgIEQyNS5GMzIKKyNkZWZpbmUgZFZyMiAgICBEMjYuRjMyCisjZGVmaW5lIGRWaTIgICAgRDI3LkYzMgorI2RlZmluZSBkVnI0ICAgIEQyOC5GMzIKKyNkZWZpbmUgZFZpNCAgICBEMjkuRjMyCisjZGVmaW5lIGRWcjYgICAgRDMwLkYzMgorI2RlZmluZSBkVmk2ICAgIEQzMS5GMzIKKyNkZWZpbmUgZFZyMSAgICBEMTYuRjMyCisjZGVmaW5lIGRWaTEgICAgRDE3LkYzMgorI2RlZmluZSBkVnIzICAgIEQxOC5GMzIKKyNkZWZpbmUgZFZpMyAgICBEMTkuRjMyCisjZGVmaW5lIGRWcjUgICAgRDIwLkYzMgorI2RlZmluZSBkVmk1ICAgIEQyMS5GMzIKKyNkZWZpbmUgZFZyNyAgICBEMjIuRjMyCisjZGVmaW5lIGRWaTcgICAgRDIzLkYzMgorI2RlZmluZSBxVjAgICAgIFExMi5GMzIKKyNkZWZpbmUgcVYxICAgICBROC5GMzIKKyNkZWZpbmUgcVYyICAgICBRMTMuRjMyCisjZGVmaW5lIHFWMyAgICAgUTkuRjMyCisjZGVmaW5lIHFWNCAgICAgUTE0LkYzMgorI2RlZmluZSBxVjUgICAgIFExMC5GMzIKKyNkZWZpbmUgcVY2ICAgICBRMTUuRjMyCisjZGVmaW5lIHFWNyAgICAgUTExLkYzMgorCisjZGVmaW5lIGRZcjAgICAgRDE2LkYzMgorI2RlZmluZSBkWWkwICAgIEQxNy5GMzIKKyNkZWZpbmUgZFlyMiAgICBEMTguRjMyCisjZGVmaW5lIGRZaTIgICAgRDE5LkYzMgorI2RlZmluZSBkWXI0ICAgIEQyMC5GMzIKKyNkZWZpbmUgZFlpNCAgICBEMjEuRjMyCisjZGVmaW5lIGRZcjYgICAgRDIyLkYzMgorI2RlZmluZSBkWWk2ICAgIEQyMy5GMzIKKyNkZWZpbmUgZFlyMSAgICBEMjQuRjMyCisjZGVmaW5lIGRZaTEgICAgRDI1LkYzMgorI2RlZmluZSBkWXIzICAgIEQyNi5GMzIKKyNkZWZpbmUgZFlpMyAgICBEMjcuRjMyCisjZGVmaW5lIGRZcjUgICAgRDI4LkYzMgorI2RlZmluZSBkWWk1ICAgIEQyOS5GMzIKKyNkZWZpbmUgZFlyNyAgICBEMzAuRjMyCisjZGVmaW5lIGRZaTcgICAgRDMxLkYzMgorI2RlZmluZSBxWTAgICAgIFE4LkYzMgorI2RlZmluZSBxWTEgICAgIFExMi5GMzIKKyNkZWZpbmUgcVkyICAgICBROS5GMzIKKyNkZWZpbmUgcVkzICAgICBRMTMuRjMyCisjZGVmaW5lIHFZNCAgICAgUTEwLkYzMgorI2RlZmluZSBxWTUgICAgIFExNC5GMzIKKyNkZWZpbmUgcVk2ICAgICBRMTEuRjMyCisjZGVmaW5lIHFZNyAgICAgUTE1LkYzMgorCisjZGVmaW5lIGRUMCAgICAgRDE0LkYzMgorI2RlZmluZSBkVDEgICAgIEQxNS5GMzIKKworQC8vIERlZmluZSBjb25zdGFudHMKKyAgICAgICAgQCBzcXJ0KDEvMikKK09ORUJZU1FSVDI6ICAgICAuZmxvYXQgIDAuNzA3MTA2NzgxMTg2NTQ3NmUwCisKKworICAgICAgICAuTUFDUk8gRkZUU1RBR0Ugc2NhbGVkLCBpbnZlcnNlLCBuYW1lCisKKyAgICAgICAgQC8vIERlZmluZSBzdGFjayBhcmd1bWVudHMKKworICAgICAgICBALy8gVXBkYXRlIHBTdWJGRlRTaXplIGFuZCBwU3ViRkZUTnVtIHJlZ3MKKyAgICAgICAgQC8vIHN1YkZGVFNpemUgPSAxIGZvciB0aGUgZmlyc3Qgc3RhZ2UKKyAgICAgICAgTU9WICAgICBzdWJGRlRTaXplLCM4CisgICAgICAgIExEUiAgICAgdDAsPU9ORUJZU1FSVDIKKworICAgICAgICBALy8gTm90ZTogc2V0Q291bnQgPSBzdWJGRlROdW0vOCAocmV1c2UgdGhlIGdycFNpemUgcmVnIGZvciBzZXRDb3VudCkKKyAgICAgICAgTFNSICAgICBncnBTaXplLHN1YkZGVE51bSwjMworICAgICAgICBNT1YgICAgIHN1YkZGVE51bSxncnBTaXplCisKKworICAgICAgICBALy8gcFQwKzEgaW5jcmVtZW50cyBwVDAgYnkgOCBieXRlcworICAgICAgICBALy8gcFQwK3BvaW50U3RlcCA9IGluY3JlbWVudCBvZiA4KnBvaW50U3RlcCBieXRlcyA9IGdycFNpemUgYnl0ZXMKKyAgICAgICAgQC8vIE5vdGU6IG91dFBvaW50U3RlcCA9IHBvaW50U3RlcCBmb3IgZmlyc3RzdGFnZQorCisgICAgICAgIE1PViAgICAgcG9pbnRTdGVwLGdycFNpemUsTFNMICMzCisKKworICAgICAgICBALy8gQ2FsY3VsYXRlIHRoZSBzdGVwIG9mIGlucHV0IGRhdGEgZm9yIHRoZSBuZXh0IHNldAorICAgICAgICBALy9NT1YgICAgIHN0ZXAxLHBvaW50U3RlcCxMU0wgIzEgICAgICAgICAgICAgQC8vIHN0ZXAxID0gMipwb2ludFN0ZXAKKyAgICAgICAgVkxEMiAgICB7ZFhyMCxkWGkwfSxbcFNyYyA6MTI4XSxwb2ludFN0ZXAgICAgIEAvLyAgZGF0YVswXQorICAgICAgICBNT1YgICAgIHN0ZXAxLGdycFNpemUsTFNMICM0CisKKyAgICAgICAgTU9WICAgICBzdGVwMixwb2ludFN0ZXAsTFNMICMzCisgICAgICAgIFZMRDIgICAge2RYcjEsZFhpMX0sW3BTcmMgOjEyOF0scG9pbnRTdGVwICAgICBALy8gIGRhdGFbMV0KKyAgICAgICAgU1VCICAgICBzdGVwMixzdGVwMixwb2ludFN0ZXAgICAgICAgICAgICAgICAgIEAvLyBzdGVwMiA9IDcqcG9pbnRTdGVwCisgICAgICAgIEAvLyBzZXRTdGVwID0gLSA3KnBvaW50U3RlcCsxNgorICAgICAgICBSU0IgICAgIHNldFN0ZXAsc3RlcDIsIzE2CisKKyAgICAgICAgVkxEMiAgICB7ZFhyMixkWGkyfSxbcFNyYyA6MTI4XSxwb2ludFN0ZXAgICAgIEAvLyAgZGF0YVsyXQorICAgICAgICBWTEQyICAgIHtkWHIzLGRYaTN9LFtwU3JjIDoxMjhdLHBvaW50U3RlcCAgICAgQC8vICBkYXRhWzNdCisgICAgICAgIFZMRDIgICAge2RYcjQsZFhpNH0sW3BTcmMgOjEyOF0scG9pbnRTdGVwICAgICBALy8gIGRhdGFbNF0KKyAgICAgICAgVkxEMiAgICB7ZFhyNSxkWGk1fSxbcFNyYyA6MTI4XSxwb2ludFN0ZXAgICAgIEAvLyAgZGF0YVs1XQorICAgICAgICBWTEQyICAgIHtkWHI2LGRYaTZ9LFtwU3JjIDoxMjhdLHBvaW50U3RlcCAgICAgQC8vICBkYXRhWzZdCisgICAgICAgIEAvLyAgZGF0YVs3XSAmIHVwZGF0ZSBwU3JjIGZvciB0aGUgbmV4dCBzZXQKKyAgICAgICAgQC8vICBzZXRTdGVwID0gLTcqcG9pbnRTdGVwICsgMTYKKyAgICAgICAgVkxEMiAgICB7ZFhyNyxkWGk3fSxbcFNyYyA6MTI4XSxzZXRTdGVwCisgICAgICAgIEAvLyBncnAgPSAwIGEgc3BlY2lhbCBjYXNlIHNpbmNlIGFsbCB0aGUgdHdpZGRsZSBmYWN0b3JzIGFyZSAxCisgICAgICAgIEAvLyBMb29wIG9uIHRoZSBzZXRzCisKK3JhZGl4OGZzR3JwWmVyb1NldExvb3BcbmFtZSA6CisKKyAgICAgICAgQC8vIERlY3JlbWVudCBzZXRjb3VudAorICAgICAgICBTVUJTICAgIHNldENvdW50LHNldENvdW50LCMyCisKKworICAgICAgICBALy8gZmluaXNoIGZpcnN0IHN0YWdlIG9mIDggcG9pbnQgRkZUCisKKyAgICAgICAgVkFERCAgICBxVTAscVgwLHFYNAorICAgICAgICBWQUREICAgIHFVMixxWDEscVg1CisgICAgICAgIFZBREQgICAgcVU0LHFYMixxWDYKKyAgICAgICAgVkFERCAgICBxVTYscVgzLHFYNworCisgICAgICAgIEAvLyBmaW5pc2ggc2Vjb25kIHN0YWdlIG9mIDggcG9pbnQgRkZUCisKKyAgICAgICAgVkFERCAgICBxVjAscVUwLHFVNAorICAgICAgICBWU1VCICAgIHFWMixxVTAscVU0CisgICAgICAgIFZBREQgICAgcVY0LHFVMixxVTYKKyAgICAgICAgVlNVQiAgICBxVjYscVUyLHFVNgorCisgICAgICAgIEAvLyBmaW5pc2ggdGhpcmQgc3RhZ2Ugb2YgOCBwb2ludCBGRlQKKworICAgICAgICBWQUREICAgIHFZMCxxVjAscVY0CisgICAgICAgIFZTVUIgICAgcVk0LHFWMCxxVjQKKyAgICAgICAgVlNUMiAgICB7ZFlyMCxkWWkwfSxbcERzdCA6MTI4XSxzdGVwMSAgICAgICAgIEAvLyBzdG9yZSB5MAorCisgICAgICAgIC5pZmVxcyAgIlxpbnZlcnNlIiwgIlRSVUUiCisKKyAgICAgICAgICAgIFZTVUIgICAgZFlyMixkVnIyLGRWaTYKKyAgICAgICAgICAgIFZBREQgICAgZFlpMixkVmkyLGRWcjYKKworICAgICAgICAgICAgVkFERCAgICBkWXI2LGRWcjIsZFZpNgorICAgICAgICAgICAgVlNUMiAgICB7ZFlyMixkWWkyfSxbcERzdCA6MTI4XSxzdGVwMSAgICAgQC8vIHN0b3JlIHkyCisgICAgICAgICAgICBWU1VCICAgIGRZaTYsZFZpMixkVnI2CisKKyAgICAgICAgICAgIFZTVUIgICAgcVUxLHFYMCxxWDQKKyAgICAgICAgICAgIFZTVDIgICAge2RZcjQsZFlpNH0sW3BEc3QgOjEyOF0sc3RlcDEgICAgIEAvLyBzdG9yZSB5NAorCisgICAgICAgICAgICBWU1VCICAgIHFVMyxxWDEscVg1CisgICAgICAgICAgICBWU1VCICAgIHFVNSxxWDIscVg2CisgICAgICAgICAgICBWU1QyICAgIHtkWXI2LGRZaTZ9LFtwRHN0IDoxMjhdLHN0ZXAxICAgICBALy8gc3RvcmUgeTYKKworICAgICAgICAuRUxTRQorCisgICAgICAgICAgICBWQUREICAgIGRZcjYsZFZyMixkVmk2CisgICAgICAgICAgICBWU1VCICAgIGRZaTYsZFZpMixkVnI2CisKKyAgICAgICAgICAgIFZTVUIgICAgZFlyMixkVnIyLGRWaTYKKyAgICAgICAgICAgIFZTVDIgICAge2RZcjYsZFlpNn0sW3BEc3QgOjEyOF0sc3RlcDEgICAgIEAvLyBzdG9yZSB5MgorICAgICAgICAgICAgVkFERCAgICBkWWkyLGRWaTIsZFZyNgorCisKKyAgICAgICAgICAgIFZTVUIgICAgcVUxLHFYMCxxWDQKKyAgICAgICAgICAgIFZTVDIgICAge2RZcjQsZFlpNH0sW3BEc3QgOjEyOF0sc3RlcDEgICAgIEAvLyBzdG9yZSB5NAorICAgICAgICAgICAgVlNVQiAgICBxVTMscVgxLHFYNQorICAgICAgICAgICAgVlNVQiAgICBxVTUscVgyLHFYNgorICAgICAgICAgICAgVlNUMiAgICB7ZFlyMixkWWkyfSxbcERzdCA6MTI4XSxzdGVwMSAgICAgQC8vIHN0b3JlIHk2CisKKworICAgICAgICAuRU5ESUYKKworICAgICAgICBALy8gZmluaXNoIGZpcnN0IHN0YWdlIG9mIDggcG9pbnQgRkZUCisKKyAgICAgICAgVlNVQiAgICBxVTcscVgzLHFYNworICAgICAgICBWTEQxICAgIGRUMFswXSwgW3QwXQorCisgICAgICAgIEAvLyBmaW5pc2ggc2Vjb25kIHN0YWdlIG9mIDggcG9pbnQgRkZUCisKKyAgICAgICAgVlNVQiAgICBkVnIxLGRVcjEsZFVpNQorICAgICAgICBALy8gIGRhdGFbMF0gZm9yIG5leHQgaXRlcmF0aW9uCisgICAgICAgIFZMRDIgICAge2RYcjAsZFhpMH0sW3BTcmMgOjEyOF0scG9pbnRTdGVwCisgICAgICAgIFZBREQgICAgZFZpMSxkVWkxLGRVcjUKKyAgICAgICAgVkFERCAgICBkVnIzLGRVcjEsZFVpNQorICAgICAgICBWTEQyICAgIHtkWHIxLGRYaTF9LFtwU3JjIDoxMjhdLHBvaW50U3RlcCAgICAgQC8vICBkYXRhWzFdCisgICAgICAgIFZTVUIgICAgZFZpMyxkVWkxLGRVcjUKKworICAgICAgICBWU1VCICAgIGRWcjUsZFVyMyxkVWk3CisgICAgICAgIFZMRDIgICAge2RYcjIsZFhpMn0sW3BTcmMgOjEyOF0scG9pbnRTdGVwICAgICBALy8gIGRhdGFbMl0KKyAgICAgICAgVkFERCAgICBkVmk1LGRVaTMsZFVyNworICAgICAgICBWQUREICAgIGRWcjcsZFVyMyxkVWk3CisgICAgICAgIFZMRDIgICAge2RYcjMsZFhpM30sW3BTcmMgOjEyOF0scG9pbnRTdGVwICAgICBALy8gIGRhdGFbM10KKyAgICAgICAgVlNVQiAgICBkVmk3LGRVaTMsZFVyNworCisgICAgICAgIEAvLyBmaW5pc2ggdGhpcmQgc3RhZ2Ugb2YgOCBwb2ludCBGRlQKKworICAgICAgICAuaWZlcXMgICJcaW52ZXJzZSIsICJUUlVFIgorCisgICAgICAgICAgICBALy8gY2FsY3VsYXRlIGEqdjUKKyAgICAgICAgICAgIFZNVUwgICAgZFQxLGRWcjUsZFQwWzBdICAgICAgICAgICAgICAgICAgIEAvLyB1c2UgZFZpMCBmb3IgZFQxCisKKyAgICAgICAgICAgIFZMRDIgICAge2RYcjQsZFhpNH0sW3BTcmMgOjEyOF0scG9pbnRTdGVwIEAvLyAgZGF0YVs0XQorICAgICAgICAgICAgVk1VTCAgICBkVmk1LGRWaTUsZFQwWzBdCisKKyAgICAgICAgICAgIFZMRDIgICAge2RYcjUsZFhpNX0sW3BTcmMgOjEyOF0scG9pbnRTdGVwIEAvLyAgZGF0YVs1XQorICAgICAgICAgICAgVlNVQiAgICBkVnI1LGRUMSxkVmk1ICAgICAgICAgICAgICAgICAgICAgQC8vIGEgKiBWNQorICAgICAgICAgICAgVkFERCAgICBkVmk1LGRUMSxkVmk1CisKKyAgICAgICAgICAgIFZMRDIgICAge2RYcjYsZFhpNn0sW3BTcmMgOjEyOF0scG9pbnRTdGVwIEAvLyAgZGF0YVs2XQorCisgICAgICAgICAgICBALy8gY2FsY3VsYXRlICBiKnY3CisgICAgICAgICAgICBWTVVMICAgIGRUMSxkVnI3LGRUMFswXQorICAgICAgICAgICAgVk1VTCAgICBkVmk3LGRWaTcsZFQwWzBdCisKKyAgICAgICAgICAgIFZBREQgICAgcVkxLHFWMSxxVjUKKyAgICAgICAgICAgIFZTVUIgICAgcVk1LHFWMSxxVjUKKworCisgICAgICAgICAgICBWQUREICAgIGRWcjcsZFQxLGRWaTcgICAgICAgICAgICAgICAgICAgICBALy8gYiAqIFY3CisgICAgICAgICAgICBWU1VCICAgIGRWaTcsZFZpNyxkVDEKKyAgICAgICAgICAgIFNVQiAgICAgcERzdCwgcERzdCwgc3RlcDIgICAgICAgICAgICAgICAgIEAvLyBzZXQgcERzdCB0byB5MQorCisgICAgICAgICAgICBWTEQyICAgIHtkWHI3LGRYaTd9LFtwU3JjIDoxMjhdLHNldFN0ZXAgICBALy8gIGRhdGFbN10KKworCisgICAgICAgICAgICBWU1VCICAgIGRZcjMsZFZyMyxkVnI3CisgICAgICAgICAgICBWU1VCICAgIGRZaTMsZFZpMyxkVmk3CisgICAgICAgICAgICBWU1QyICAgIHtkWXIxLGRZaTF9LFtwRHN0IDoxMjhdLHN0ZXAxICAgICBALy8gc3RvcmUgeTEKKyAgICAgICAgICAgIFZBREQgICAgZFlyNyxkVnIzLGRWcjcKKyAgICAgICAgICAgIFZBREQgICAgZFlpNyxkVmkzLGRWaTcKKworCisgICAgICAgICAgICBWU1QyICAgIHtkWXIzLGRZaTN9LFtwRHN0IDoxMjhdLHN0ZXAxICAgICBALy8gc3RvcmUgeTMKKyAgICAgICAgICAgIFZTVDIgICAge2RZcjUsZFlpNX0sW3BEc3QgOjEyOF0sc3RlcDEgICAgIEAvLyBzdG9yZSB5NQorICAgICAgICAgICAgVlNUMiAgICB7ZFlyNyxkWWk3fSxbcERzdCA6MTI4XSAgICAgICAgICAgQC8vIHN0b3JlIHk3CisgICAgICAgICAgICBBREQgcERzdCwgcERzdCwgIzE2CisKKyAgICAgICAgLkVMU0UKKworICAgICAgICAgICAgQC8vIGNhbGN1bGF0ZSAgYip2NworICAgICAgICAgICAgVk1VTCAgICBkVDEsZFZyNyxkVDBbMF0KKyAgICAgICAgICAgIFZMRDIgICAge2RYcjQsZFhpNH0sW3BTcmMgOjEyOF0scG9pbnRTdGVwIEAvLyAgZGF0YVs0XQorICAgICAgICAgICAgVk1VTCAgICBkVmk3LGRWaTcsZFQwWzBdCisKKyAgICAgICAgICAgIFZMRDIgICAge2RYcjUsZFhpNX0sW3BTcmMgOjEyOF0scG9pbnRTdGVwIEAvLyAgZGF0YVs1XQorICAgICAgICAgICAgVkFERCAgICBkVnI3LGRUMSxkVmk3ICAgICAgICAgICAgICAgICAgICAgQC8vIGIgKiBWNworICAgICAgICAgICAgVlNVQiAgICBkVmk3LGRWaTcsZFQxCisKKyAgICAgICAgICAgIFZMRDIgICAge2RYcjYsZFhpNn0sW3BTcmMgOjEyOF0scG9pbnRTdGVwIEAvLyAgZGF0YVs2XQorCisgICAgICAgICAgICBALy8gY2FsY3VsYXRlIGEqdjUKKyAgICAgICAgICAgIFZNVUwgICAgZFQxLGRWcjUsZFQwWzBdICAgICAgICAgICAgICAgICAgIEAvLyB1c2UgZFZpMCBmb3IgZFQxCisgICAgICAgICAgICBWTVVMICAgIGRWaTUsZFZpNSxkVDBbMF0KKworICAgICAgICAgICAgVkFERCAgICBkWXI3LGRWcjMsZFZyNworICAgICAgICAgICAgVkFERCAgICBkWWk3LGRWaTMsZFZpNworICAgICAgICAgICAgU1VCICAgICBwRHN0LCBwRHN0LCBzdGVwMiAgICAgICAgICAgICAgICAgQC8vIHNldCBwRHN0IHRvIHkxCisKKyAgICAgICAgICAgIFZTVUIgICAgZFZyNSxkVDEsZFZpNSAgICAgICAgICAgICAgICAgICAgIEAvLyBhICogVjUKKyAgICAgICAgICAgIFZBREQgICAgZFZpNSxkVDEsZFZpNQorICAgICAgICAgICAgVkxEMiAgICB7ZFhyNyxkWGk3fSxbcFNyYyA6MTI4XSxzZXRTdGVwICAgQC8vICBkYXRhWzddCisKKyAgICAgICAgICAgIFZTVUIgICAgcVk1LHFWMSxxVjUKKworICAgICAgICAgICAgVlNVQiAgICBkWXIzLGRWcjMsZFZyNworICAgICAgICAgICAgVlNUMiAgICB7ZFlyNyxkWWk3fSxbcERzdCA6MTI4XSxzdGVwMSAgICAgQC8vIHN0b3JlIHkxCisgICAgICAgICAgICBWU1VCICAgIGRZaTMsZFZpMyxkVmk3CisgICAgICAgICAgICBWQUREICAgIHFZMSxxVjEscVY1CisKKworICAgICAgICAgICAgVlNUMiAgICB7ZFlyNSxkWWk1fSxbcERzdCA6MTI4XSxzdGVwMSAgICAgQC8vIHN0b3JlIHkzCisgICAgICAgICAgICBWU1QyICAgIHtkWXIzLGRZaTN9LFtwRHN0IDoxMjhdLHN0ZXAxICAgICBALy8gc3RvcmUgeTUKKyAgICAgICAgICAgIFZTVDIgICAge2RZcjEsZFlpMX0sW3BEc3QgOjEyOF0hICAgICAgICAgIEAvLyBzdG9yZSB5NworCisgICAgICAgIC5FTkRJRgorCisKKyAgICAgICAgQC8vIHVwZGF0ZSBwRHN0IGZvciB0aGUgbmV4dCBzZXQKKyAgICAgICAgU1VCICAgICBwRHN0LCBwRHN0LCBzdGVwMgorICAgICAgICBCR1QgICAgIHJhZGl4OGZzR3JwWmVyb1NldExvb3BcbmFtZQorCisKKyAgICAgICAgQC8vIHJlc2V0IHBTcmMgdG8gcERzdCBmb3IgdGhlIG5leHQgc3RhZ2UKKyAgICAgICAgU1VCICAgICBwU3JjLHBEc3QscG9pbnRTdGVwICAgICAgICAgICAgICAgICAgIEAvLyBwRHN0IC09IDIqZ3JwU2l6ZQorICAgICAgICBNT1YgICAgIHBEc3QscFBpbmdQb25nQnVmCisKKworCisgICAgICAgIC5lbmRtCisKKworICAgICAgICBALy8gQWxsb2NhdGUgc3RhY2sgbWVtb3J5IHJlcXVpcmVkIGJ5IHRoZSBmdW5jdGlvbgorCisKKyAgICAgICAgTV9TVEFSVCBhcm1TUF9GRlRGd2RfQ1RvQ19GQzMyX1JhZGl4OF9mc19PdXRPZlBsYWNlX3Vuc2FmZSxyNAorICAgICAgICAgICAgRkZUU1RBR0UgIkZBTFNFIiwiRkFMU0UiLEZXRAorICAgICAgICBNX0VORAorCisKKyAgICAgICAgTV9TVEFSVCBhcm1TUF9GRlRJbnZfQ1RvQ19GQzMyX1JhZGl4OF9mc19PdXRPZlBsYWNlX3Vuc2FmZSxyNAorICAgICAgICAgICAgRkZUU1RBR0UgIkZBTFNFIiwiVFJVRSIsSU5WCisgICAgICAgIE1fRU5ECisKKworCisgICAgICAgIC5lbmQKZGlmZiAtLWdpdCBhL2RsL2FybVNQX0ZGVF9DVG9DX1NDMzJfUmFkaXgyX2ZzX3Vuc2FmZV9zLlMgYi9kbC9hcm1TUF9GRlRfQ1RvQ19TQzMyX1JhZGl4Ml9mc191bnNhZmVfcy5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhM2RmM2QKLS0tIC9kZXYvbnVsbAorKysgYi9kbC9hcm1TUF9GRlRfQ1RvQ19TQzMyX1JhZGl4Ml9mc191bnNhZmVfcy5TCkBAIC0wLDAgKzEsMTYzIEBACitALy8KK0AvLyAgQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorQC8vCitALy8gIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKK0AvLyAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCitALy8gIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKK0AvLyAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorQC8vICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KK0AvLworQC8vICBUaGlzIGZpbGUgd2FzIG9yaWdpbmFsbHkgbGljZW5zZWQgYXMgZm9sbG93cy4gSXQgaGFzIGJlZW4KK0AvLyAgcmVsaWNlbnNlZCB3aXRoIHBlcm1pc3Npb24gZnJvbSB0aGUgY29weXJpZ2h0IGhvbGRlcnMuCisKK0AvLworQC8vIAorQC8vIEZpbGUgTmFtZTogIGFybVNQX0ZGVF9DVG9DX1NDMzJfUmFkaXgyX2ZzX3Vuc2FmZV9zLnMKK0AvLyBPcGVuTUFYIERMOiB2MS4wLjIKK0AvLyBMYXN0IE1vZGlmaWVkIFJldmlzaW9uOiAgIDU5OTUKK0AvLyBMYXN0IE1vZGlmaWVkIERhdGU6ICAgICAgIEZyaSwgMDggSnVuIDIwMDcKK0AvLyAKK0AvLyAoYykgQ29weXJpZ2h0IDIwMDctMjAwOCBBUk0gTGltaXRlZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KK0AvLyAKK0AvLyAKK0AvLworQC8vIERlc2NyaXB0aW9uOgorQC8vIENvbXB1dGUgdGhlIGZpcnN0IHN0YWdlIG9mIGEgUmFkaXggMiBESVQgaW4tb3JkZXIgb3V0LW9mLXBsYWNlIEZGVCAKK0AvLyBzdGFnZSBmb3IgYSBOIHBvaW50IGNvbXBsZXggc2lnbmFsLgorQC8vIAorCisgICAgICAgIAorQC8vIEluY2x1ZGUgc3RhbmRhcmQgaGVhZGVycworCisjaW5jbHVkZSAib214dHlwZXNfcy5oIgorI2luY2x1ZGUgImFybUNPTU1fcy5oIgorICAgICAgICAKKyAgICAgICAgCitALy8gSW1wb3J0IHN5bWJvbHMgcmVxdWlyZWQgZnJvbSBvdGhlciBmaWxlcworQC8vIChGb3IgZXhhbXBsZSB0YWJsZXMpCisgICAgCisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgCitALy8gU2V0IGRlYnVnZ2luZyBsZXZlbCAgICAgICAgCitALy9ERUJVR19PTiAgICBTRVRMIHtUUlVFfQorCisKKworQC8vIEd1YXJkaW5nIGltcGxlbWVudGF0aW9uIGJ5IHRoZSBwcm9jZXNzb3IgbmFtZQorICAgIAorICAgIAorICAgICAgICAgICAgCitALy8gR3VhcmRpbmcgaW1wbGVtZW50YXRpb24gYnkgdGhlIHByb2Nlc3NvciBuYW1lCisgICAgCisgICAgCitALy9JbnB1dCBSZWdpc3RlcnMKKworI2RlZmluZSBwU3JjCQlyMAorI2RlZmluZSBwRHN0CQlyMgorI2RlZmluZSBwVHdpZGRsZQlyMQorI2RlZmluZSBwUGluZ1BvbmdCdWYJcjUKKyNkZWZpbmUgc3ViRkZUTnVtCXI2CisjZGVmaW5lIHN1YkZGVFNpemUJcjcKKworCitALy9PdXRwdXQgUmVnaXN0ZXJzCisKKworQC8vTG9jYWwgU2NyYXRjaCBSZWdpc3RlcnMKKworI2RlZmluZSBwb2ludFN0ZXAJcjMKKyNkZWZpbmUgb3V0UG9pbnRTdGVwCXIzCisjZGVmaW5lIGdycFNpemUJCXI0CisjZGVmaW5lIHNldENvdW50CXI0CisjZGVmaW5lIHN0ZXAJCXI4CisjZGVmaW5lIGRzdFN0ZXAJCXI4CisKK0AvLyBOZW9uIFJlZ2lzdGVycworCisjZGVmaW5lIGRYMAlEMC5TMzIKKyNkZWZpbmUgZFgxCUQxLlMzMgorI2RlZmluZSBkWTAJRDIuUzMyCisjZGVmaW5lIGRZMQlEMy5TMzIKKworCisgICAgICAgIC5NQUNSTyBGRlRTVEFHRSBzY2FsZWQsIGludmVyc2UsIG5hbWUKKyAgICAgICAgCisgICAgICAgIEAvLyBEZWZpbmUgc3RhY2sgYXJndW1lbnRzCisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgQC8vIHVwZGF0ZSBzdWJGRlRTaXplIGFuZCBzdWJGRlROdW0gaW50byBSTjYgYW5kIFJONyBmb3IgdGhlIG5leHQgc3RhZ2UKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBNT1YgICAgICAgIHN1YkZGVFNpemUsIzIKKyAgICAgICAgTFNSICAgICAgICBncnBTaXplLHN1YkZGVE51bSwjMSAgCisgICAgICAgIE1PViAgICAgICAgc3ViRkZUTnVtLGdycFNpemUgCisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgQC8vIHBUMCsxIGluY3JlbWVudHMgcFQwIGJ5IDggYnl0ZXMKKyAgICAgICAgQC8vIHBUMCtwb2ludFN0ZXAgPSBpbmNyZW1lbnQgb2YgOCpwb2ludFN0ZXAgYnl0ZXMgPSA0KmdycFNpemUgYnl0ZXMKKyAgICAgICAgQC8vIE5vdGU6IG91dFBvaW50U3RlcCA9IHBvaW50U3RlcCBmb3IgZmlyc3RzdGFnZQorICAgICAgICBALy8gTm90ZTogc2V0Q291bnQgPSBncnBTaXplLzIgKHJldXNlIHRoZSB1cGRhdGVkIGdycFNpemUgZm9yIHNldENvdW50KQorICAgICAgICAKKyAgICAgICAgTU9WICAgICAgICBwb2ludFN0ZXAsZ3JwU2l6ZSxMU0wgIzMKKyAgICAgICAgUlNCICAgICAgICBzdGVwLHBvaW50U3RlcCwjOCAKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBALy8gTG9vcCBvbiB0aGUgc2V0cyBmb3IgZ3JwIHplcm8KKworZ3JwWmVyb1NldExvb3BcbmFtZSA6CQorICAgICAgICAKKyAgICAgICAgVkxEMSAgICBkWDAsW3BTcmNdLHBvaW50U3RlcAorICAgICAgICBWTEQxICAgIGRYMSxbcFNyY10sc3RlcCAgICAgICAgICAgICAgICAgICBALy8gc3RlcCA9IC1wb2ludFN0ZXAgKyA4CisgICAgICAgIFNVQlMgICAgc2V0Q291bnQsc2V0Q291bnQsIzEgICAgICAgICAgICAgIEAvLyBkZWNyZW1lbnQgdGhlIGxvb3AgY291bnRlcgorICAgICAgICAKKyAgICAgICAgLmlmZXFzICJcc2NhbGVkIiwgIlRSVUUiCisgICAgICAgIAorICAgICAgICAgICAgVkhBREQgICAgZFkwLGRYMCxkWDEKKyAgICAgICAgICAgIFZIU1VCICAgIGRZMSxkWDAsZFgxCisgICAgICAgIAorICAgICAgICAuRUxTRQorICAgICAgICAKKyAgICAgICAgICAgIFZBREQgICAgZFkwLGRYMCxkWDEKKyAgICAgICAgICAgIFZTVUIgICAgZFkxLGRYMCxkWDEKKyAgICAgICAgCisgICAgICAgICAKKyAgICAgICAgLkVORElGCisgICAgICAgIAorICAgICAgICBWU1QxICAgIGRZMCxbcERzdF0sb3V0UG9pbnRTdGVwCisgICAgICAgIFZTVDEgICAgZFkxLFtwRHN0XSxkc3RTdGVwICAgICAgICAgICAgICAgICAgQC8vIGRzdFN0ZXAgPSAgc3RlcCA9IC1wb2ludFN0ZXAgKyA4CisgICAgICAgICAgICAgICAKKyAgICAgICAgQkdUICAgICBncnBaZXJvU2V0TG9vcFxuYW1lCisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgQC8vIHJlc2V0IHBTcmMgdG8gcERzdCBmb3IgdGhlIG5leHQgc3RhZ2UKKyAgICAgICAgU1VCICAgICBwU3JjLHBEc3QscG9pbnRTdGVwICAgICAgICAgICAgICAgICAgICAgQC8vIHBEc3QgLT0gMipncnBTaXplIAorICAgICAgICBNT1YgICAgIHBEc3QscFBpbmdQb25nQnVmCisgICAgICAgICAgICAgICAgCisgICAgICAgIC5lbmRtCisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgTV9TVEFSVCBhcm1TUF9GRlRGd2RfQ1RvQ19TQzMyX1JhZGl4Ml9mc19PdXRPZlBsYWNlX3Vuc2FmZSxyNAorICAgICAgICBGRlRTVEFHRSAiRkFMU0UiLCJGQUxTRSIsZndkCisgICAgICAgIE1fRU5ECisKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBNX1NUQVJUIGFybVNQX0ZGVEludl9DVG9DX1NDMzJfUmFkaXgyX2ZzX091dE9mUGxhY2VfdW5zYWZlLHI0CisgICAgICAgIEZGVFNUQUdFICJGQUxTRSIsIlRSVUUiLGludgorICAgICAgICBNX0VORAorIAorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIE1fU1RBUlQgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9TZnNfUmFkaXgyX2ZzX091dE9mUGxhY2VfdW5zYWZlLHI0CisgICAgICAgIEZGVFNUQUdFICJUUlVFIiwiRkFMU0UiLGZ3ZHNmcworICAgICAgICBNX0VORAorCisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgTV9TVEFSVCBhcm1TUF9GRlRJbnZfQ1RvQ19TQzMyX1Nmc19SYWRpeDJfZnNfT3V0T2ZQbGFjZV91bnNhZmUscjQKKyAgICAgICAgRkZUU1RBR0UgIlRSVUUiLCJUUlVFIixpbnZzZnMKKyAgICAgICAgTV9FTkQKKworCS5lbmQKZGlmZiAtLWdpdCBhL2RsL2FybVNQX0ZGVF9DVG9DX1NDMzJfUmFkaXgyX2xzX3Vuc2FmZV9zLlMgYi9kbC9hcm1TUF9GRlRfQ1RvQ19TQzMyX1JhZGl4Ml9sc191bnNhZmVfcy5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2ODU4N2EKLS0tIC9kZXYvbnVsbAorKysgYi9kbC9hcm1TUF9GRlRfQ1RvQ19TQzMyX1JhZGl4Ml9sc191bnNhZmVfcy5TCkBAIC0wLDAgKzEsMTg0IEBACitALy8KK0AvLyAgQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorQC8vCitALy8gIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKK0AvLyAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCitALy8gIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKK0AvLyAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorQC8vICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KK0AvLworQC8vICBUaGlzIGZpbGUgd2FzIG9yaWdpbmFsbHkgbGljZW5zZWQgYXMgZm9sbG93cy4gSXQgaGFzIGJlZW4KK0AvLyAgcmVsaWNlbnNlZCB3aXRoIHBlcm1pc3Npb24gZnJvbSB0aGUgY29weXJpZ2h0IGhvbGRlcnMuCitALy8KKworQC8vIAorQC8vIEZpbGUgTmFtZTogIGFybVNQX0ZGVF9DVG9DX1NDMzJfUmFkaXgyX2xzX3Vuc2FmZV9zLnMKK0AvLyBPcGVuTUFYIERMOiB2MS4wLjIKK0AvLyBMYXN0IE1vZGlmaWVkIFJldmlzaW9uOiAgIDc0OTMKK0AvLyBMYXN0IE1vZGlmaWVkIERhdGU6ICAgICAgIE1vbiwgMjQgU2VwIDIwMDcKK0AvLyAKK0AvLyAoYykgQ29weXJpZ2h0IDIwMDctMjAwOCBBUk0gTGltaXRlZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KK0AvLyAKK0AvLyAKK0AvLworQC8vIERlc2NyaXB0aW9uOgorQC8vIENvbXB1dGUgdGhlIGxhc3Qgc3RhZ2Ugb2YgYSBSYWRpeCAyIERJVCBpbi1vcmRlciBvdXQtb2YtcGxhY2UgRkZUCitALy8gc3RhZ2UgZm9yIGEgTiBwb2ludCBjb21wbGV4IHNpZ25hbC4KK0AvLyAKKworCisgICAgICAgIAorQC8vIEluY2x1ZGUgc3RhbmRhcmQgaGVhZGVycworCisjaW5jbHVkZSAib214dHlwZXNfcy5oIgorI2luY2x1ZGUgImFybUNPTU1fcy5oIgorICAgICAgICAKKyAgICAgICAgCitALy8gSW1wb3J0IHN5bWJvbHMgcmVxdWlyZWQgZnJvbSBvdGhlciBmaWxlcworQC8vIChGb3IgZXhhbXBsZSB0YWJsZXMpCisgICAgCisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgCitALy8gU2V0IGRlYnVnZ2luZyBsZXZlbCAgICAgICAgCitALy9ERUJVR19PTiAgICBTRVRMIHtUUlVFfQorCisgICAgICAgICAgICAKK0AvLyBHdWFyZGluZyBpbXBsZW1lbnRhdGlvbiBieSB0aGUgcHJvY2Vzc29yIG5hbWUKKyAgICAKKyAgICAKK0AvL0lucHV0IFJlZ2lzdGVycworCisjZGVmaW5lIHBTcmMJCXIwCisjZGVmaW5lIHBEc3QJCXIyCisjZGVmaW5lIHBUd2lkZGxlCXIxCisjZGVmaW5lIHN1YkZGVE51bQlyNgorI2RlZmluZSBzdWJGRlRTaXplCXI3CisKKworQC8vT3V0cHV0IFJlZ2lzdGVycworCisKK0AvL0xvY2FsIFNjcmF0Y2ggUmVnaXN0ZXJzCisKKworI2RlZmluZSBvdXRQb2ludFN0ZXAJcjMKKyNkZWZpbmUgZ3JwQ291bnQJcjQKKyNkZWZpbmUgZHN0U3RlcAkJcjUKKyNkZWZpbmUgcFRtcAkJcjQKKworQC8vIE5lb24gUmVnaXN0ZXJzCisKKyNkZWZpbmUgZFdyCUQwLlMzMgorI2RlZmluZSBkV2kJZDEuczMyCisjZGVmaW5lIGRYcjAJZDIuczMyCisjZGVmaW5lIGRYaTAJZDMuczMyCisjZGVmaW5lIGRYcjEJZDQuczMyCisjZGVmaW5lIGRYaTEJZDUuczMyCisjZGVmaW5lIGRZcjAJZDYuczMyCisjZGVmaW5lIGRZaTAJZDcuczMyCisjZGVmaW5lIGRZcjEJZDguczMyCisjZGVmaW5lIGRZaTEJZDkuczMyCisjZGVmaW5lIHFUMAlxNS5zNjQKKyNkZWZpbmUgcVQxCXE2LnM2NAorCQorICAgICAgICAubWFjcm8gRkZUU1RBR0Ugc2NhbGVkLCBpbnZlcnNlLCBuYW1lCisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgTU9WICAgICBvdXRQb2ludFN0ZXAsc3ViRkZUU2l6ZSxMU0wgIzMKKyAgICAgICAgQC8vIFVwZGF0ZSBncnBDb3VudCBhbmQgZ3JwU2l6ZSByaWdodGF3YXkgCisgICAgICAgIAorICAgICAgICBNT1YgICAgIHN1YkZGVE51bSwjMSAgICAgICAgICAgICAgICAgICAgICAgICAgICBALy9hZnRlciB0aGUgbGFzdCBzdGFnZQorICAgICAgICBMU0wgICAgIGdycENvdW50LHN1YkZGVFNpemUsIzEKKyAgICAgICAgCisgICAgICAgIEAvLyB1cGRhdGUgc3ViRkZUU2l6ZSBmb3IgdGhlIG5leHQgc3RhZ2UKKyAgICAgICAgTU9WICAgICBzdWJGRlRTaXplLGdycENvdW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIFJTQiAgICAgIGRzdFN0ZXAsb3V0UG9pbnRTdGVwLCMxNgorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIEAvLyBMb29wIG9uIDIgZ3JwcyBhdCBhIHRpbWUgZm9yIHRoZSBsYXN0IHN0YWdlCisKK2dycExvb3BcbmFtZSA6CQorICAgICAgICBWTEQyICAgIHtkV3IsZFdpfSxbcFR3aWRkbGUgOjY0XSEKKyAgICAgICAgCisgICAgICAgIFZMRDQgICAge2RYcjAsZFhpMCxkWHIxLGRYaTF9LFtwU3JjIDoxMjhdIQorICAgICAgICBTVUJTICAgIGdycENvdW50LGdycENvdW50LCM0ICAgICAgICAgICAgICAgICAgIEAvLyBncnBDb3VudCBpcyBtdWx0aXBsaWVkIGJ5IDIgCisgICAgICAgIAorICAgICAgICAuaWZlcXMgICJcaW52ZXJzZSIsICJUUlVFIgorICAgICAgICAgICAgVk1VTEwgICBxVDAsZFdyLGRYcjEKKyAgICAgICAgICAgIFZNTEFMICAgcVQwLGRXaSxkWGkxICAgICAgICAgICAgICAgICAgICAgICBALy8gcmVhbCBwYXJ0CisgICAgICAgICAgICBWTVVMTCAgIHFUMSxkV3IsZFhpMQorICAgICAgICAgICAgVk1MU0wgICBxVDEsZFdpLGRYcjEgICAgICAgICAgICAgICAgICAgICAgIEAvLyBpbWFnIHBhcnQKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgLmVsc2UKKyAgICAgICAgCisgICAgICAgICAgICBWTVVMTCAgIHFUMCxkV3IsZFhyMQorICAgICAgICAgICAgVk1MU0wgICBxVDAsZFdpLGRYaTEgICAgICAgICAgICAgICAgICAgICAgIEAvLyByZWFsIHBhcnQKKyAgICAgICAgICAgIFZNVUxMICAgcVQxLGRXcixkWGkxCisgICAgICAgICAgICBWTUxBTCAgIHFUMSxkV2ksZFhyMSAgICAgICAgICAgICAgICAgICAgICAgQC8vIGltYWcgcGFydAorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgLmVuZGlmCisgICAgICAgIAorICAgICAgICBWUlNIUk4gIGRYcjEscVQwLCMzMQorICAgICAgICBWUlNIUk4gIGRYaTEscVQxLCMzMQorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgLmlmZXFzICJcc2NhbGVkIiwgIlRSVUUiCisgICAgICAgIAorICAgICAgICAgICAgVkhTVUIgICAgZFlyMCxkWHIwLGRYcjEKKyAgICAgICAgICAgIFZIU1VCICAgIGRZaTAsZFhpMCxkWGkxCisgICAgICAgICAgICBWSEFERCAgICBkWXIxLGRYcjAsZFhyMQorICAgICAgICAgICAgVkhBREQgICAgZFlpMSxkWGkwLGRYaTEKKyAgICAgICAgICAgIAorICAgICAgICAuZWxzZQorICAgICAgICAKKyAgICAgICAgICAgIFZTVUIgICAgZFlyMCxkWHIwLGRYcjEKKyAgICAgICAgICAgIFZTVUIgICAgZFlpMCxkWGkwLGRYaTEKKyAgICAgICAgICAgIFZBREQgICAgZFlyMSxkWHIwLGRYcjEKKyAgICAgICAgICAgIFZBREQgICAgZFlpMSxkWGkwLGRYaTEKKyAgICAgICAgICAgIAorICAgICAgICAgCisgICAgICAgIC5lbmRpZgorICAgICAgICAKKyAgICAgICAgVlNUMiAgICB7ZFlyMCxkWWkwfSxbcERzdF0sb3V0UG9pbnRTdGVwCisgICAgICAgIFZTVDIgICAge2RZcjEsZFlpMX0sW3BEc3RdLGRzdFN0ZXAgICAgICAgICAgICAgICAgICBALy8gZHN0U3RlcCA9ICBzdGVwID0gLW91dFBvaW50U3RlcCArIDE2CisgICAgICAgICAgICAgICAKKyAgICAgICAgYmd0ICAgICBncnBMb29wXG5hbWUKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBALy8gUmVzZXQgYW5kIFN3YXAgcFNyYyBhbmQgcERzdCBmb3IgdGhlIG5leHQgc3RhZ2UgICAgIAorICAgICAgICBNT1YgICAgIHBUbXAscERzdAorICAgICAgICBTVUIgICAgIHBEc3QscFNyYyxvdXRQb2ludFN0ZXAsTFNMICMxICAgICAgIEAvLyBwRHN0IC09IDQqc2l6ZTsgcFNyYyAtPSA4KnNpemUgYnl0ZXMgICAgICAgICAgIAorICAgICAgICBTVUIgICAgIHBTcmMscFRtcCxvdXRQb2ludFN0ZXAKKyAgICAgICAgCisgICAgICAgIEAvLyBSZXNldCBwVHdpZGRsZSBmb3IgdGhlIG5leHQgc3RhZ2UKKyAgICAgICAgU1VCICAgICBwVHdpZGRsZSxwVHdpZGRsZSxvdXRQb2ludFN0ZXAgICAgICBALy8gcFR3aWRkbGUgLT0gNCpzaXplIGJ5dGVzCisgICAgICAgICAgICAgICAgCisgICAgICAgIC5lbmRtCisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgTV9TVEFSVCBhcm1TUF9GRlRGd2RfQ1RvQ19TQzMyX1JhZGl4Ml9sc19PdXRPZlBsYWNlX3Vuc2FmZSxyNCwiIgorICAgICAgICBGRlRTVEFHRSAiRkFMU0UiLCJGQUxTRSIsZndkCisgICAgICAgIE1fRU5ECisKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBNX1NUQVJUIGFybVNQX0ZGVEludl9DVG9DX1NDMzJfUmFkaXgyX2xzX091dE9mUGxhY2VfdW5zYWZlLHI0CisgICAgICAgIEZGVFNUQUdFICJGQUxTRSIsIlRSVUUiLGludgorICAgICAgICBNX0VORAorIAorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIE1fU1RBUlQgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9TZnNfUmFkaXgyX2xzX091dE9mUGxhY2VfdW5zYWZlLHI0CisgICAgICAgIEZGVFNUQUdFICJUUlVFIiwiRkFMU0UiLGZ3ZHNmcworICAgICAgICBNX0VORAorCisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgTV9TVEFSVCBhcm1TUF9GRlRJbnZfQ1RvQ19TQzMyX1Nmc19SYWRpeDJfbHNfT3V0T2ZQbGFjZV91bnNhZmUscjQKKyAgICAgICAgRkZUU1RBR0UgIlRSVUUiLCJUUlVFIixpbnZzZnMKKyAgICAgICAgTV9FTkQKKwkKKwkuZW5kCmRpZmYgLS1naXQgYS9kbC9hcm1TUF9GRlRfQ1RvQ19TQzMyX1JhZGl4Ml91bnNhZmVfcy5TIGIvZGwvYXJtU1BfRkZUX0NUb0NfU0MzMl9SYWRpeDJfdW5zYWZlX3MuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMTAzZGYxCi0tLSAvZGV2L251bGwKKysrIGIvZGwvYXJtU1BfRkZUX0NUb0NfU0MzMl9SYWRpeDJfdW5zYWZlX3MuUwpAQCAtMCwwICsxLDIxNiBAQAorQC8vCitALy8gIENvcHlyaWdodCAoYykgMjAxMyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KK0AvLworQC8vICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCitALy8gIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorQC8vICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCitALy8gIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKK0AvLyAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCitALy8KK0AvLyAgVGhpcyBmaWxlIHdhcyBvcmlnaW5hbGx5IGxpY2Vuc2VkIGFzIGZvbGxvd3MuIEl0IGhhcyBiZWVuCitALy8gIHJlbGljZW5zZWQgd2l0aCBwZXJtaXNzaW9uIGZyb20gdGhlIGNvcHlyaWdodCBob2xkZXJzLgorQC8vCisKK0AvLworQC8vIEZpbGUgTmFtZTogIGFybVNQX0ZGVF9DVG9DX1NDMzJfUmFkaXgyX3Vuc2FmZV9zLnMKK0AvLyBPcGVuTUFYIERMOiB2MS4wLjIKK0AvLyBMYXN0IE1vZGlmaWVkIFJldmlzaW9uOiAgIDU2MzgKK0AvLyBMYXN0IE1vZGlmaWVkIERhdGU6ICAgICAgIFdlZCwgMDYgSnVuIDIwMDcKK0AvLyAKK0AvLyAoYykgQ29weXJpZ2h0IDIwMDctMjAwOCBBUk0gTGltaXRlZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KK0AvLyAKK0AvLyAKK0AvLworQC8vIERlc2NyaXB0aW9uOgorQC8vIENvbXB1dGUgYSBSYWRpeCAyIERJVCBpbi1vcmRlciBvdXQtb2YtcGxhY2UgRkZUIHN0YWdlIGZvciBhIE4gcG9pbnQgY29tcGxleCBzaWduYWwuCitALy8gVGhpcyBoYW5kbGUgdGhlIGdlbmVyYWwgc3RhZ2UsIG5vdCB0aGUgZmlyc3Qgb3IgbGFzdCBzdGFnZS4KK0AvLyAKKworICAgICAgICAKK0AvLyBJbmNsdWRlIHN0YW5kYXJkIGhlYWRlcnMKKworI2luY2x1ZGUgIm9teHR5cGVzX3MuaCIKKyNpbmNsdWRlICJhcm1DT01NX3MuaCIKKyAgICAgICAgCisgICAgICAgIAorQC8vIEltcG9ydCBzeW1ib2xzIHJlcXVpcmVkIGZyb20gb3RoZXIgZmlsZXMKK0AvLyAoRm9yIGV4YW1wbGUgdGFibGVzKQorCisgICAgICAgICAgIAorICAgICAgICAKK0AvLyBTZXQgZGVidWdnaW5nIGxldmVsICAgICAgICAKK0AvL0RFQlVHX09OICAgIFNFVEwge1RSVUV9CisKKworCitALy8gR3VhcmRpbmcgaW1wbGVtZW50YXRpb24gYnkgdGhlIHByb2Nlc3NvciBuYW1lCisgICAgCisgICAgCisgICAgCisgICAgCitALy8gR3VhcmRpbmcgaW1wbGVtZW50YXRpb24gYnkgdGhlIHByb2Nlc3NvciBuYW1lCisgICAgCisgICAgCitALy9JbnB1dCBSZWdpc3RlcnMKKworI2RlZmluZSBwU3JjCQlyMAorI2RlZmluZSBwRHN0CQlyMgorI2RlZmluZSBwVHdpZGRsZQlyMQorI2RlZmluZSBzdWJGRlROdW0JcjYKKyNkZWZpbmUgc3ViRkZUU2l6ZQlyNworCisKK0AvL091dHB1dCBSZWdpc3RlcnMKKworCitALy9Mb2NhbCBTY3JhdGNoIFJlZ2lzdGVycworCisjZGVmaW5lIG91dFBvaW50U3RlcAlyMworI2RlZmluZSBwb2ludFN0ZXAJcjQKKyNkZWZpbmUgZ3JwQ291bnQJcjUKKyNkZWZpbmUgc2V0Q291bnQJcjgKK0AvL2NvbnN0ICAgICAgICAgICBSTiAgOQorI2RlZmluZSBzdGVwCQlyMTAKKyNkZWZpbmUgZHN0U3RlcAkJcjExCisjZGVmaW5lIHBUYWJsZQkJcjkKKyNkZWZpbmUgcFRtcAkJcjkgICAgCisKK0AvLyBOZW9uIFJlZ2lzdGVycworCisjZGVmaW5lIGRXCUQwLlMzMgorI2RlZmluZSBkWDAJRDIuUzMyCisjZGVmaW5lIGRYMQlEMy5TMzIKKyNkZWZpbmUgZFgyCUQ0LlMzMgorI2RlZmluZSBkWDMJRDUuUzMyCisjZGVmaW5lIGRZMAlENi5TMzIKKyNkZWZpbmUgZFkxCUQ3LlMzMgorI2RlZmluZSBkWTIJRDguUzMyCisjZGVmaW5lIGRZMwlEOS5TMzIKKyNkZWZpbmUgcVQwCVEzLlM2NAorI2RlZmluZSBxVDEJUTQuUzY0CisKKyAgICAKKyAgICAKKyAgICAgICAgLk1BQ1JPIEZGVFNUQUdFIHNjYWxlZCwgaW52ZXJzZSwgbmFtZQorICAgICAgICAKKyAgICAgICAgQC8vIERlZmluZSBzdGFjayBhcmd1bWVudHMKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBALy8gVXBkYXRlIGdycENvdW50IGFuZCBncnBTaXplIHJpZ2h0YXdheSBpbm9yZGVyIHRvIHJldXNlIHBHcnBDb3VudCBhbmQgcEdycFNpemUgcmVncworICAgICAgICAKKyAgICAgICAgTFNSICAgICBzdWJGRlROdW0sc3ViRkZUTnVtLCMxICAgICAgICAgICAgICAgICAgICAgIEAvL2dycFNpemUKKyAgICAgICAgTFNMICAgICBncnBDb3VudCxzdWJGRlRTaXplLCMxCisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgQC8vIHBUMCsxIGluY3JlbWVudHMgcFQwIGJ5IDggYnl0ZXMKKyAgICAgICAgQC8vIHBUMCtwb2ludFN0ZXAgPSBpbmNyZW1lbnQgb2YgOCpwb2ludFN0ZXAgYnl0ZXMgPSA0KmdycFNpemUgYnl0ZXMKKyAgICAgICAgTU9WICAgICBwb2ludFN0ZXAsc3ViRkZUTnVtLExTTCAjMgorICAgICAgICAKKyAgICAgICAgQC8vIHVwZGF0ZSBzdWJGRlRTaXplIGZvciB0aGUgbmV4dCBzdGFnZQorICAgICAgICBNT1YgICAgIHN1YkZGVFNpemUsZ3JwQ291bnQKKyAgICAgICAgCisgICAgICAgIEAvLyBwT3V0MCsxIGluY3JlbWVudHMgcE91dDAgYnkgOCBieXRlcworICAgICAgICBALy8gcE91dDArb3V0UG9pbnRTdGVwID09IGluY3JlbWVudCBvZiA4Km91dFBvaW50U3RlcCBieXRlcyA9IDQqc2l6ZSBieXRlcworICAgICAgICBTTVVMQkIgIG91dFBvaW50U3RlcCxncnBDb3VudCxwb2ludFN0ZXAgIAorICAgICAgICBMU0wgICAgIHBvaW50U3RlcCxwb2ludFN0ZXAsIzEgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIAorICAgICAgICBSU0IgICAgICBzdGVwLHBvaW50U3RlcCwjMTYKKyAgICAgICAgUlNCICAgICAgZHN0U3RlcCxvdXRQb2ludFN0ZXAsIzE2CisgICAgICAgIAorICAgICAgICBALy8gTG9vcCBvbiB0aGUgZ3JvdXBzCisKK2dycExvb3BcbmFtZSA6CSAgICAgICAgCisgICAgICAgIE1PViAgICAgIHNldENvdW50LHBvaW50U3RlcCxMU1IgIzMKKyAgICAgICAgVkxEMSAgICAgZFcsW3BUd2lkZGxlXSxwb2ludFN0ZXAgICAgICAgICAgICAgICAgQC8vW3dpIHwgd3JdCisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgQC8vIExvb3Agb24gdGhlIHNldHMKKyAgICAgICAgCisgICAgICAgIAorc2V0TG9vcFxuYW1lIDoJICAgICAgIAorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIFZMRDIgICAge2RYMCxkWDF9LFtwU3JjXSxwb2ludFN0ZXAgICAgICAgICAgICBALy8gcG9pbnQwOiBkWDAtcmVhbCBwYXJ0IGRYMS1pbWcgcGFydAorICAgICAgICBWTEQyICAgIHtkWDIsZFgzfSxbcFNyY10sc3RlcCAgICAgICAgICAgICAgICAgQC8vIHBvaW50MTogZFgyLXJlYWwgcGFydCBkWDMtaW1nIHBhcnQKKyAgICAgICAgCisgICAgICAgIFNVQlMgICAgc2V0Q291bnQsc2V0Q291bnQsIzIgICAgICAgICAgICAgICAKKyAgICAgICAgCisgICAgICAgIC5pZmVxcyAgIlxpbnZlcnNlIiwgIlRSVUUiCisgICAgICAgICAgICBWTVVMTCAgIHFUMCxkWDIsZFdbMF0KKyAgICAgICAgICAgIFZNTEFMICAgcVQwLGRYMyxkV1sxXSAgICAgICAgICAgICAgICAgICAgICAgQC8vIHJlYWwgcGFydAorICAgICAgICAgICAgVk1VTEwgICBxVDEsZFgzLGRXWzBdCisgICAgICAgICAgICBWTUxTTCAgIHFUMSxkWDIsZFdbMV0gICAgICAgICAgICAgICAgICAgICAgIEAvLyBpbWFnIHBhcnQKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgLmVsc2UKKyAgICAgICAgCisgICAgICAgICAgICBWTVVMTCAgIHFUMCxkWDIsZFdbMF0KKyAgICAgICAgICAgIFZNTFNMICAgcVQwLGRYMyxkV1sxXSAgICAgICAgICAgICAgICAgICAgICAgQC8vIHJlYWwgcGFydAorICAgICAgICAgICAgVk1VTEwgICBxVDEsZFgzLGRXWzBdCisgICAgICAgICAgICBWTUxBTCAgIHFUMSxkWDIsZFdbMV0gICAgICAgICAgICAgICAgICAgICAgIEAvLyBpbWFnIHBhcnQKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIC5lbmRpZgorICAgICAgICAKKyAgICAgICAgVlJTSFJOICBkWDIscVQwLCMzMQorICAgICAgICBWUlNIUk4gIGRYMyxxVDEsIzMxCisgICAgICAgIAorICAgICAgICAuaWZlcXMgIlxzY2FsZWQiLCAiVFJVRSIKKyAgICAgICAgICAgIFZIU1VCICAgIGRZMCxkWDAsZFgyCisgICAgICAgICAgICBWSFNVQiAgICBkWTEsZFgxLGRYMworICAgICAgICAgICAgVkhBREQgICAgZFkyLGRYMCxkWDIKKyAgICAgICAgICAgIFZIQUREICAgIGRZMyxkWDEsZFgzCisgICAgICAgICAgICAgICAgCisgICAgICAgIC5lbHNlCisgICAgICAgICAgICBWU1VCICAgIGRZMCxkWDAsZFgyCisgICAgICAgICAgICBWU1VCICAgIGRZMSxkWDEsZFgzCisgICAgICAgICAgICBWQUREICAgIGRZMixkWDAsZFgyCisgICAgICAgICAgICBWQUREICAgIGRZMyxkWDEsZFgzCisgICAgICAgIAorICAgICAgICAuZW5kaWYKKyAgICAgICAgCisgICAgICAgIFZTVDIgICAge2RZMCxkWTF9LFtwRHN0XSxvdXRQb2ludFN0ZXAKKyAgICAgICAgVlNUMiAgICB7ZFkyLGRZM30sW3BEc3RdLGRzdFN0ZXAgICAgICAgICAgICAgIEAvLyBkc3RTdGVwID0gLW91dFBvaW50U3RlcCArIDE2CisgICAgICAgIAorICAgICAgICBCR1QgICAgIHNldExvb3BcbmFtZQorICAgICAgICAKKyAgICAgICAgU1VCUyAgICBncnBDb3VudCxncnBDb3VudCwjMiAgICAgICAgICAgICAgIAorICAgICAgICBBREQgICAgIHBTcmMscFNyYyxwb2ludFN0ZXAKKyAgICAgICAgQkdUICAgICBncnBMb29wXG5hbWUgICAgCisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgQC8vIFJlc2V0IGFuZCBTd2FwIHBTcmMgYW5kIHBEc3QgZm9yIHRoZSBuZXh0IHN0YWdlICAgICAKKyAgICAgICAgTU9WICAgICBwVG1wLHBEc3QKKyAgICAgICAgU1VCICAgICBwRHN0LHBTcmMsb3V0UG9pbnRTdGVwLExTTCAjMSAgICAgICBALy8gcERzdCAtPSA0KnNpemU7IHBTcmMgLT0gOCpzaXplIGJ5dGVzICAgICAgICAgICAKKyAgICAgICAgU1VCICAgICBwU3JjLHBUbXAsb3V0UG9pbnRTdGVwCisgICAgICAgIAorICAgICAgICBALy8gUmVzZXQgcFR3aWRkbGUgZm9yIHRoZSBuZXh0IHN0YWdlCisgICAgICAgIFNVQiAgICAgcFR3aWRkbGUscFR3aWRkbGUsb3V0UG9pbnRTdGVwICAgICAgQC8vIHBUd2lkZGxlIC09IDQqc2l6ZSBieXRlcworICAgICAgICAKKyAgICAgICAgCisgICAgICAgIC5lbmRtCisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIE1fU1RBUlQgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9SYWRpeDJfT3V0T2ZQbGFjZV91bnNhZmUscjQKKyAgICAgICAgRkZUU1RBR0UgIkZBTFNFIiwiRkFMU0UiLEZXRAorICAgICAgICBNX0VORAorCisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgTV9TVEFSVCBhcm1TUF9GRlRJbnZfQ1RvQ19TQzMyX1JhZGl4Ml9PdXRPZlBsYWNlX3Vuc2FmZSxyNAorICAgICAgICBGRlRTVEFHRSAiRkFMU0UiLCJUUlVFIixJTlYKKyAgICAgICAgTV9FTkQKKyAKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBNX1NUQVJUIGFybVNQX0ZGVEZ3ZF9DVG9DX1NDMzJfU2ZzX1JhZGl4Ml9PdXRPZlBsYWNlX3Vuc2FmZSxyNAorICAgICAgICBGRlRTVEFHRSAiVFJVRSIsIkZBTFNFIixGV0RTRlMKKyAgICAgICAgTV9FTkQKKworICAgICAgICAKKyAgICAgICAgCisgICAgICAgIE1fU1RBUlQgYXJtU1BfRkZUSW52X0NUb0NfU0MzMl9TZnNfUmFkaXgyX091dE9mUGxhY2VfdW5zYWZlLHI0CisgICAgICAgIEZGVFNUQUdFICJUUlVFIiwiVFJVRSIsSU5WU0ZTCisgICAgICAgIE1fRU5ECisKKwkuZW5kCmRpZmYgLS1naXQgYS9kbC9hcm1TUF9GRlRfQ1RvQ19TQzMyX1JhZGl4NF9mc191bnNhZmVfcy5TIGIvZGwvYXJtU1BfRkZUX0NUb0NfU0MzMl9SYWRpeDRfZnNfdW5zYWZlX3MuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZDgyMTI0Ci0tLSAvZGV2L251bGwKKysrIGIvZGwvYXJtU1BfRkZUX0NUb0NfU0MzMl9SYWRpeDRfZnNfdW5zYWZlX3MuUwpAQCAtMCwwICsxLDMyMCBAQAorQC8vCitALy8gIENvcHlyaWdodCAoYykgMjAxMyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KK0AvLworQC8vICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCitALy8gIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorQC8vICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCitALy8gIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKK0AvLyAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCitALy8KK0AvLyAgVGhpcyBmaWxlIHdhcyBvcmlnaW5hbGx5IGxpY2Vuc2VkIGFzIGZvbGxvd3MuIEl0IGhhcyBiZWVuCitALy8gIHJlbGljZW5zZWQgd2l0aCBwZXJtaXNzaW9uIGZyb20gdGhlIGNvcHlyaWdodCBob2xkZXJzLgorQC8vCisKK0AvLyAKK0AvLyBGaWxlIE5hbWU6ICBhcm1TUF9GRlRfQ1RvQ19TQzMyX1JhZGl4NF9mc191bnNhZmVfcy5zCitALy8gT3Blbk1BWCBETDogdjEuMC4yCitALy8gTGFzdCBNb2RpZmllZCBSZXZpc2lvbjogICA3NzY3CitALy8gTGFzdCBNb2RpZmllZCBEYXRlOiAgICAgICBUaHUsIDI3IFNlcCAyMDA3CitALy8gCitALy8gKGMpIENvcHlyaWdodCAyMDA3LTIwMDggQVJNIExpbWl0ZWQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitALy8gCitALy8gCitALy8KK0AvLyBEZXNjcmlwdGlvbjoKK0AvLyBDb21wdXRlIGEgZmlyc3Qgc3RhZ2UgUmFkaXggNCBGRlQgc3RhZ2UgZm9yIGEgTiBwb2ludCBjb21wbGV4IHNpZ25hbAorQC8vIAorCisKKyAgICAgICAgCitALy8gSW5jbHVkZSBzdGFuZGFyZCBoZWFkZXJzCisKKyNpbmNsdWRlICJvbXh0eXBlc19zLmgiCisjaW5jbHVkZSAiYXJtQ09NTV9zLmgiCisgICAgICAgIAorQC8vIEltcG9ydCBzeW1ib2xzIHJlcXVpcmVkIGZyb20gb3RoZXIgZmlsZXMKK0AvLyAoRm9yIGV4YW1wbGUgdGFibGVzKQorICAgIAorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIAorQC8vIFNldCBkZWJ1Z2dpbmcgbGV2ZWwgICAgICAgIAorQC8vREVCVUdfT04gICAgU0VUTCB7VFJVRX0KKworCisKK0AvLyBHdWFyZGluZyBpbXBsZW1lbnRhdGlvbiBieSB0aGUgcHJvY2Vzc29yIG5hbWUKKyAgICAKKyAgICAKKyAgICAKK0AvLyBHdWFyZGluZyBpbXBsZW1lbnRhdGlvbiBieSB0aGUgcHJvY2Vzc29yIG5hbWUKKyAgICAKKyAgICAKK0AvL0lucHV0IFJlZ2lzdGVycworCisjZGVmaW5lIHBTcmMJCXIwCisjZGVmaW5lIHBEc3QJCXIyCisjZGVmaW5lIHBUd2lkZGxlCXIxCisjZGVmaW5lIHBQaW5nUG9uZ0J1ZglyNQorI2RlZmluZSBzdWJGRlROdW0JcjYKKyNkZWZpbmUgc3ViRkZUU2l6ZQlyNworCisKK0AvL091dHB1dCBSZWdpc3RlcnMKKworCitALy9Mb2NhbCBTY3JhdGNoIFJlZ2lzdGVycworCisjZGVmaW5lIGdycFNpemUJCXIzCitALy8gUmV1c2UgZ3JwU2l6ZSBhcyBzZXRDb3VudAorI2RlZmluZSBzZXRDb3VudAlyMworI2RlZmluZSBwb2ludFN0ZXAJcjQKKyNkZWZpbmUgb3V0UG9pbnRTdGVwCXI0CisjZGVmaW5lIHNldFN0ZXAJCXI4CisjZGVmaW5lIHN0ZXAxCQlyOQorI2RlZmluZSBzdGVwMwkJcjEwCisKK0AvLyBOZW9uIFJlZ2lzdGVycworCisjZGVmaW5lIGRYcjAJRDAuUzMyCisjZGVmaW5lIGRYaTAJRDEuUzMyCisjZGVmaW5lIGRYcjEJRDIuUzMyCisjZGVmaW5lIGRYaTEJRDMuUzMyCisjZGVmaW5lIGRYcjIJRDQuUzMyCisjZGVmaW5lIGRYaTIJRDUuUzMyCisjZGVmaW5lIGRYcjMJRDYuUzMyCisjZGVmaW5lIGRYaTMJRDcuUzMyCisjZGVmaW5lIGRZcjAJRDguUzMyCisjZGVmaW5lIGRZaTAJRDkuUzMyCisjZGVmaW5lIGRZcjEJRDEwLlMzMgorI2RlZmluZSBkWWkxCUQxMS5TMzIKKyNkZWZpbmUgZFlyMglEMTIuUzMyCisjZGVmaW5lIGRZaTIJRDEzLlMzMgorI2RlZmluZSBkWXIzCUQxNC5TMzIKKyNkZWZpbmUgZFlpMwlEMTUuUzMyCisjZGVmaW5lIHFYMAlRMC5TMzIKKyNkZWZpbmUgcVgxCVExLlMzMgorI2RlZmluZSBxWDIJUTIuUzMyCisjZGVmaW5lIHFYMwlRMy5TMzIKKyNkZWZpbmUgcVkwCVE0LlMzMgorI2RlZmluZSBxWTEJUTUuUzMyCisjZGVmaW5lIHFZMglRNi5TMzIKKyNkZWZpbmUgcVkzCVE3LlMzMgorI2RlZmluZSBkWnIwCUQxNi5TMzIKKyNkZWZpbmUgZFppMAlEMTcuUzMyCisjZGVmaW5lIGRacjEJRDE4LlMzMgorI2RlZmluZSBkWmkxCUQxOS5TMzIKKyNkZWZpbmUgZFpyMglEMjAuUzMyCisjZGVmaW5lIGRaaTIJRDIxLlMzMgorI2RlZmluZSBkWnIzCUQyMi5TMzIKKyNkZWZpbmUgZFppMwlEMjMuUzMyCisjZGVmaW5lIHFaMAlROC5TMzIKKyNkZWZpbmUgcVoxCVE5LlMzMgorI2RlZmluZSBxWjIJUTEwLlMzMgorI2RlZmluZSBxWjMJUTExLlMzMgorCisgICAgCisgICAgICAgIC5NQUNSTyBGRlRTVEFHRSBzY2FsZWQsIGludmVyc2UsIG5hbWUKKyAgICAgICAgCisgICAgICAgIEAvLyBEZWZpbmUgc3RhY2sgYXJndW1lbnRzCisgICAgICAgIAorICAgICAgICBALy8gcFQwKzEgaW5jcmVtZW50cyBwVDAgYnkgOCBieXRlcworICAgICAgICBALy8gcFQwK3BvaW50U3RlcCA9IGluY3JlbWVudCBvZiA4KnBvaW50U3RlcCBieXRlcyA9IDIqZ3JwU2l6ZSBieXRlcworICAgICAgICBALy8gTm90ZTogb3V0UG9pbnRTdGVwID0gcG9pbnRTdGVwIGZvciBmaXJzdHN0YWdlCisgICAgICAgIAorICAgICAgICBNT1YgICAgIHBvaW50U3RlcCxzdWJGRlROdW0sTFNMICMxCisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgQC8vIFVwZGF0ZSBwU3ViRkZUU2l6ZSBhbmQgcFN1YkZGVE51bSByZWdzCisgICAgICAgIFZMRDIgICAge2RYcjAsZFhpMH0sW3BTcmMgOjEyOF0scG9pbnRTdGVwICAgICAgICAgIEAvLyAgZGF0YVswXQorICAgICAgICBNT1YgICAgIHN1YkZGVFNpemUsIzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBALy8gc3ViRkZUU2l6ZSA9IDEgZm9yIHRoZSBmaXJzdCBzdGFnZQorICAgICAgICAKKyAgICAgICAgQC8vIE5vdGU6IHNldENvdW50ID0gc3ViRkZUTnVtLzQgKHJldXNlIHRoZSBncnBTaXplIHJlZyBmb3Igc2V0Q291bnQpCisgICAgICAgIExTUiAgICAgZ3JwU2l6ZSxzdWJGRlROdW0sIzIKKyAgICAgICAgVkxEMiAgICB7ZFhyMSxkWGkxfSxbcFNyYyA6MTI4XSxwb2ludFN0ZXAgICAgICAgICAgQC8vICBkYXRhWzFdICAKKyAgICAgICAgTU9WICAgICBzdWJGRlROdW0sZ3JwU2l6ZQorICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBALy8gQ2FsY3VsYXRlIHRoZSBzdGVwIG9mIGlucHV0IGRhdGEgZm9yIHRoZSBuZXh0IHNldAorICAgICAgICBALy9NT1YgICAgIHNldFN0ZXAscG9pbnRTdGVwLExTTCAjMQorICAgICAgICBNT1YgICAgIHNldFN0ZXAsZ3JwU2l6ZSxMU0wgIzQKKyAgICAgICAgVkxEMiAgICB7ZFhyMixkWGkyfSxbcFNyYyA6MTI4XSxwb2ludFN0ZXAgICAgICAgICAgQC8vICBkYXRhWzJdCisgICAgICAgIEFERCAgICAgc2V0U3RlcCxzZXRTdGVwLHBvaW50U3RlcCAgICAgICAgICAgICAgICAgICBALy8gc2V0U3RlcCA9IDMqcG9pbnRTdGVwCisgICAgICAgIFJTQiAgICAgc2V0U3RlcCxzZXRTdGVwLCMxNiAgICAgICAgICAgICAgICAgICAgICAgICBALy8gc2V0U3RlcCA9IC0gMypwb2ludFN0ZXArMTYKKyAgICAgICAgCisgICAgICAgIFZMRDIgICAge2RYcjMsZFhpM30sW3BTcmMgOjEyOF0sc2V0U3RlcCAgICAgICAgICAgIEAvLyAgZGF0YVszXSAmIHVwZGF0ZSBwU3JjIGZvciB0aGUgbmV4dCBzZXQKKyAgICAgICAgTU9WICAgICBzdGVwMSxwb2ludFN0ZXAsTFNMICMxICAgICAgICAgICAgICAgICAgICAgIEAvLyBzdGVwMSA9IDIqcG9pbnRTdGVwCisgICAgICAgIAorICAgICAgICAuaWZlcXMgIlxzY2FsZWQiLCAiVFJVRSIKKyAgICAgICAgICAgIFZIQUREICAgIHFZMCxxWDAscVgyCisgICAgICAgIC5lbHNlCisgICAgICAgICAgICBWQUREICAgIHFZMCxxWDAscVgyCisgICAgICAgIC5lbmRpZgorICAgICAgICAgICAgCisgICAgICAgIFJTQiAgICAgc3RlcDMscG9pbnRTdGVwLCMwICAgICAgICAgICAgICAgICAgICAgICAgICBALy8gc3RlcDMgPSAtcG9pbnRTdGVwICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgCisgICAgICAgIEAvLyBncnAgPSAwIGEgc3BlY2lhbCBjYXNlIHNpbmNlIGFsbCB0aGUgdHdpZGRsZSBmYWN0b3JzIGFyZSAxCisgICAgICAgIEAvLyBMb29wIG9uIHRoZSBzZXRzIDogMiBzZXRzIGF0IGEgdGltZQorCitncnBaZXJvU2V0TG9vcFxuYW1lIDoJCisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIEAvLyBEZWNyZW1lbnQgc2V0Y291bnQKKyAgICAgICAgU1VCUyAgICBzZXRDb3VudCxzZXRDb3VudCwjMiAgICAgICAgICAgICAgICAgICAgQC8vIGRlY3JlbWVudCB0aGUgc2V0IGxvb3AgY291bnRlciAgICAgICAgICAgCisgICAgICAgIAorICAgICAgICAuaWZlcXMgIlxzY2FsZWQiLCAiVFJVRSIgCisgICAgICAgIAorICAgICAgICAgICAgQC8vIGZpbmlzaCBmaXJzdCBzdGFnZSBvZiA0IHBvaW50IEZGVCAKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgVkhTVUIgICAgcVkyLHFYMCxxWDIKKyAgICAgICAgICAgIAorICAgICAgICAgICAgVkxEMiAgICB7ZFhyMCxkWGkwfSxbcFNyYyA6MTI4XSxzdGVwMSAgICAgICAgICBALy8gIGRhdGFbMF0KKyAgICAgICAgICAgIFZIQUREICAgIHFZMSxxWDEscVgzCisgICAgICAgICAgICBWTEQyICAgIHtkWHIyLGRYaTJ9LFtwU3JjIDoxMjhdLHN0ZXAzICAgICAgICAgIEAvLyAgZGF0YVsyXQorICAgICAgICAgICAgVkhTVUIgICAgcVkzLHFYMSxxWDMKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIEAvLyBmaW5pc2ggc2Vjb25kIHN0YWdlIG9mIDQgcG9pbnQgRkZUIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAuaWZlcXMgIlxpbnZlcnNlIiwgIlRSVUUiCisgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVkxEMiAgICB7ZFhyMSxkWGkxfSxbcFNyYyA6MTI4XSxzdGVwMSAgICAgICAgICBALy8gIGRhdGFbMV0KKyAgICAgICAgICAgICAgICBWSEFERCAgICBxWjAscVkwLHFZMQorICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVkxEMiAgICB7ZFhyMyxkWGkzfSxbcFNyYyA6MTI4XSxzZXRTdGVwICAgICAgICAgICAgQC8vICBkYXRhWzNdICYgdXBkYXRlIHBTcmMgZm9yIHRoZSBuZXh0IHNldCAgICAKKyAgICAgICAgICAgICAgICBWSFNVQiAgICBkWnIzLGRZcjIsZFlpMworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFZTVDIgICAge2RacjAsZFppMH0sW3BEc3QgOjEyOF0sb3V0UG9pbnRTdGVwCisgICAgICAgICAgICAgICAgVkhBREQgICAgZFppMyxkWWkyLGRZcjMKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWSFNVQiAgICBxWjEscVkwLHFZMQorICAgICAgICAgICAgICAgIFZTVDIgICAge2RacjMsZFppM30sW3BEc3QgOjEyOF0sb3V0UG9pbnRTdGVwCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVkhBREQgICAgZFpyMixkWXIyLGRZaTMKKyAgICAgICAgICAgICAgICBWU1QyICAgIHtkWnIxLGRaaTF9LFtwRHN0IDoxMjhdLG91dFBvaW50U3RlcAorICAgICAgICAgICAgICAgIFZIU1VCICAgIGRaaTIsZFlpMixkWXIzCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVkhBREQgICAgcVkwLHFYMCxxWDIgICAgICAgICAgICAgICAgICAgICBALy8gdTAgZm9yIG5leHQgaXRlcmF0aW9uCisgICAgICAgICAgICAgICAgVlNUMiAgICB7ZFpyMixkWmkyfSxbcERzdCA6MTI4XSxzZXRTdGVwCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAuZWxzZQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFZMRDIgICAge2RYcjEsZFhpMX0sW3BTcmMgOjEyOF0sc3RlcDEgICAgICAgICAgQC8vICBkYXRhWzFdCisgICAgICAgICAgICAgICAgVkhBREQgICAgcVowLHFZMCxxWTEKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFZMRDIgICAge2RYcjMsZFhpM30sW3BTcmMgOjEyOF0sc2V0U3RlcCAgICAgICAgICAgIEAvLyAgZGF0YVszXSAmIHVwZGF0ZSBwU3JjIGZvciB0aGUgbmV4dCBzZXQKKyAgICAgICAgICAgICAgICBWSEFERCAgICBkWnIyLGRZcjIsZFlpMworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVlNUMiAgICB7ZFpyMCxkWmkwfSxbcERzdCA6MTI4XSxvdXRQb2ludFN0ZXAKKyAgICAgICAgICAgICAgICBWSFNVQiAgICBkWmkyLGRZaTIsZFlyMworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVkhTVUIgICAgcVoxLHFZMCxxWTEKKyAgICAgICAgICAgICAgICBWU1QyICAgIHtkWnIyLGRaaTJ9LFtwRHN0IDoxMjhdLG91dFBvaW50U3RlcAorICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVkhTVUIgICAgZFpyMyxkWXIyLGRZaTMKKyAgICAgICAgICAgICAgICBWU1QyICAgIHtkWnIxLGRaaTF9LFtwRHN0IDoxMjhdLG91dFBvaW50U3RlcAorICAgICAgICAgICAgICAgIFZIQUREICAgIGRaaTMsZFlpMixkWXIzCisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWSEFERCAgICBxWTAscVgwLHFYMiAgICAgICAgICAgICAgICAgICAgIEAvLyB1MCBmb3IgbmV4dCBpdGVyYXRpb24KKyAgICAgICAgICAgICAgICBWU1QyICAgIHtkWnIzLGRaaTN9LFtwRHN0IDoxMjhdLHNldFN0ZXAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLmVuZGlmCisgICAgICAgICAgICAKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICAuZWxzZQorICAgICAgICAKKyAgICAgICAgICAgIEAvLyBmaW5pc2ggZmlyc3Qgc3RhZ2Ugb2YgNCBwb2ludCBGRlQgCisgICAgICAgICAgICAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgVlNVQiAgICBxWTIscVgwLHFYMgorICAgICAgICAgICAgCisgICAgICAgICAgICBWTEQyICAgIHtkWHIwLGRYaTB9LFtwU3JjIDoxMjhdLHN0ZXAxICAgICAgICAgIEAvLyAgZGF0YVswXQorICAgICAgICAgICAgVkFERCAgICBxWTEscVgxLHFYMworICAgICAgICAgICAgVkxEMiAgICB7ZFhyMixkWGkyfSxbcFNyYyA6MTI4XSxzdGVwMyAgICAgICAgICBALy8gIGRhdGFbMl0KKyAgICAgICAgICAgIFZTVUIgICAgcVkzLHFYMSxxWDMKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIEAvLyBmaW5pc2ggc2Vjb25kIHN0YWdlIG9mIDQgcG9pbnQgRkZUIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAuaWZlcXMgIlxpbnZlcnNlIiwgIlRSVUUiIAorICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFZMRDIgICAge2RYcjEsZFhpMX0sW3BTcmMgOjEyOF0sc3RlcDEgICAgICAgICAgQC8vICBkYXRhWzFdCisgICAgICAgICAgICAgICAgVkFERCAgICBxWjAscVkwLHFZMQorICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVkxEMiAgICB7ZFhyMyxkWGkzfSxbcFNyYyA6MTI4XSxzZXRTdGVwICAgICAgICAgICAgQC8vICBkYXRhWzNdICYgdXBkYXRlIHBTcmMgZm9yIHRoZSBuZXh0IHNldCAgICAKKyAgICAgICAgICAgICAgICBWU1VCICAgIGRacjMsZFlyMixkWWkzCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVlNUMiAgICB7ZFpyMCxkWmkwfSxbcERzdCA6MTI4XSxvdXRQb2ludFN0ZXAKKyAgICAgICAgICAgICAgICBWQUREICAgIGRaaTMsZFlpMixkWXIzCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVlNVQiAgICBxWjEscVkwLHFZMQorICAgICAgICAgICAgICAgIFZTVDIgICAge2RacjMsZFppM30sW3BEc3QgOjEyOF0sb3V0UG9pbnRTdGVwCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVkFERCAgICBkWnIyLGRZcjIsZFlpMworICAgICAgICAgICAgICAgIFZTVDIgICAge2RacjEsZFppMX0sW3BEc3QgOjEyOF0sb3V0UG9pbnRTdGVwCisgICAgICAgICAgICAgICAgVlNVQiAgICBkWmkyLGRZaTIsZFlyMworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFZBREQgICAgcVkwLHFYMCxxWDIgICAgICAgICAgICAgICAgICAgICBALy8gdTAgZm9yIG5leHQgaXRlcmF0aW9uCisgICAgICAgICAgICAgICAgVlNUMiAgICB7ZFpyMixkWmkyfSxbcERzdCA6MTI4XSxzZXRTdGVwCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAuZWxzZQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFZMRDIgICAge2RYcjEsZFhpMX0sW3BTcmMgOjEyOF0sc3RlcDEgICAgICAgICAgQC8vICBkYXRhWzFdCisgICAgICAgICAgICAgICAgVkFERCAgICBxWjAscVkwLHFZMQorICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVkxEMiAgICB7ZFhyMyxkWGkzfSxbcFNyYyA6MTI4XSxzZXRTdGVwICAgICAgICAgICAgQC8vICBkYXRhWzNdICYgdXBkYXRlIHBTcmMgZm9yIHRoZSBuZXh0IHNldAorICAgICAgICAgICAgICAgIFZBREQgICAgZFpyMixkWXIyLGRZaTMKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFZTVDIgICAge2RacjAsZFppMH0sW3BEc3QgOjEyOF0sb3V0UG9pbnRTdGVwCisgICAgICAgICAgICAgICAgVlNVQiAgICBkWmkyLGRZaTIsZFlyMworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVlNVQiAgICBxWjEscVkwLHFZMQorICAgICAgICAgICAgICAgIFZTVDIgICAge2RacjIsZFppMn0sW3BEc3QgOjEyOF0sb3V0UG9pbnRTdGVwCisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWU1VCICAgIGRacjMsZFlyMixkWWkzCisgICAgICAgICAgICAgICAgVlNUMiAgICB7ZFpyMSxkWmkxfSxbcERzdCA6MTI4XSxvdXRQb2ludFN0ZXAKKyAgICAgICAgICAgICAgICBWQUREICAgIGRaaTMsZFlpMixkWXIzCisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWQUREICAgIHFZMCxxWDAscVgyICAgICAgICAgICAgICAgICAgICAgQC8vIHUwIGZvciBuZXh0IGl0ZXJhdGlvbgorICAgICAgICAgICAgICAgIFZTVDIgICAge2RacjMsZFppM30sW3BEc3QgOjEyOF0sc2V0U3RlcAorICAgICAgICAgICAgCisgICAgICAgICAgICAuZW5kaWYKKyAgICAgICAgICAgIAorICAgICAgICAuZW5kaWYKKyAgICAgICAgCisgICAgICAgIEJHVCAgICAgZ3JwWmVyb1NldExvb3BcbmFtZQorICAgICAgICAKKyAgICAgICAgQC8vIHJlc2V0IHBTcmMgdG8gcERzdCBmb3IgdGhlIG5leHQgc3RhZ2UKKyAgICAgICAgU1VCICAgICBwU3JjLHBEc3QscG9pbnRTdGVwICAgICAgICAgICAgICAgICAgICAgQC8vIHBEc3QgLT0gMipncnBTaXplICAKKyAgICAgICAgTU9WICAgICBwRHN0LHBQaW5nUG9uZ0J1ZgorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIC5lbmRtCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgCisgICAgICAgIE1fU1RBUlQgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9SYWRpeDRfZnNfT3V0T2ZQbGFjZV91bnNhZmUscjQKKyAgICAgICAgRkZUU1RBR0UgIkZBTFNFIiwiRkFMU0UiLGZ3ZAorICAgICAgICBNX0VORAorCisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgTV9TVEFSVCBhcm1TUF9GRlRJbnZfQ1RvQ19TQzMyX1JhZGl4NF9mc19PdXRPZlBsYWNlX3Vuc2FmZSxyNAorICAgICAgICBGRlRTVEFHRSAiRkFMU0UiLCJUUlVFIixpbnYKKyAgICAgICAgTV9FTkQKKyAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgTV9TVEFSVCBhcm1TUF9GRlRGd2RfQ1RvQ19TQzMyX1Nmc19SYWRpeDRfZnNfT3V0T2ZQbGFjZV91bnNhZmUscjQKKyAgICAgICAgRkZUU1RBR0UgIlRSVUUiLCJGQUxTRSIsZndkc2ZzCisgICAgICAgIE1fRU5ECisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgTV9TVEFSVCBhcm1TUF9GRlRJbnZfQ1RvQ19TQzMyX1Nmc19SYWRpeDRfZnNfT3V0T2ZQbGFjZV91bnNhZmUscjQKKyAgICAgICAgRkZUU1RBR0UgIlRSVUUiLCJUUlVFIixpbnZzZnMKKyAgICAgICAgTV9FTkQKKyAgICAKKwkuZW5kCmRpZmYgLS1naXQgYS9kbC9hcm1TUF9GRlRfQ1RvQ19TQzMyX1JhZGl4NF9sc191bnNhZmVfcy5TIGIvZGwvYXJtU1BfRkZUX0NUb0NfU0MzMl9SYWRpeDRfbHNfdW5zYWZlX3MuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMDFhNjVlCi0tLSAvZGV2L251bGwKKysrIGIvZGwvYXJtU1BfRkZUX0NUb0NfU0MzMl9SYWRpeDRfbHNfdW5zYWZlX3MuUwpAQCAtMCwwICsxLDQwNCBAQAorQC8vCitALy8gIENvcHlyaWdodCAoYykgMjAxMyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KK0AvLworQC8vICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCitALy8gIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorQC8vICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCitALy8gIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKK0AvLyAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCitALy8KK0AvLyAgVGhpcyBmaWxlIHdhcyBvcmlnaW5hbGx5IGxpY2Vuc2VkIGFzIGZvbGxvd3MuIEl0IGhhcyBiZWVuCitALy8gIHJlbGljZW5zZWQgd2l0aCBwZXJtaXNzaW9uIGZyb20gdGhlIGNvcHlyaWdodCBob2xkZXJzLgorQC8vCisKK0AvLyAKK0AvLyBGaWxlIE5hbWU6ICBhcm1TUF9GRlRfQ1RvQ19TQzMyX1JhZGl4NF9sc191bnNhZmVfcy5zCitALy8gT3Blbk1BWCBETDogdjEuMC4yCitALy8gTGFzdCBNb2RpZmllZCBSZXZpc2lvbjogICA3NzY3CitALy8gTGFzdCBNb2RpZmllZCBEYXRlOiAgICAgICBUaHUsIDI3IFNlcCAyMDA3CitALy8gCitALy8gKGMpIENvcHlyaWdodCAyMDA3LTIwMDggQVJNIExpbWl0ZWQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitALy8gCitALy8gCitALy8KK0AvLyBEZXNjcmlwdGlvbjoKK0AvLyBDb21wdXRlIGEgUmFkaXggNCBGRlQgc3RhZ2UgZm9yIGEgTiBwb2ludCBjb21wbGV4IHNpZ25hbAorQC8vIAorCisgICAgICAgIAorQC8vIEluY2x1ZGUgc3RhbmRhcmQgaGVhZGVycworCisjaW5jbHVkZSAib214dHlwZXNfcy5oIgorI2luY2x1ZGUgImFybUNPTU1fcy5oIgorICAgICAgICAKK0AvLyBJbXBvcnQgc3ltYm9scyByZXF1aXJlZCBmcm9tIG90aGVyIGZpbGVzCitALy8gKEZvciBleGFtcGxlIHRhYmxlcykKKyAgICAKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICAKK0AvLyBTZXQgZGVidWdnaW5nIGxldmVsICAgICAgICAKK0AvL0RFQlVHX09OICAgIFNFVEwge1RSVUV9CisKKyAgICAKK0AvLyBHdWFyZGluZyBpbXBsZW1lbnRhdGlvbiBieSB0aGUgcHJvY2Vzc29yIG5hbWUKKyAgICAKKyAgICAKK0AvLyBJbXBvcnQgc3ltYm9scyByZXF1aXJlZCBmcm9tIG90aGVyIGZpbGVzCitALy8gKEZvciBleGFtcGxlIHRhYmxlcykKKyAgICBALy9JTVBPUlQgIGFybUFBQ19jb25zdFRhYmxlICAgIAorICAgIAorQC8vSW5wdXQgUmVnaXN0ZXJzCisKKyNkZWZpbmUgcFNyYwkJcjAKKyNkZWZpbmUgcERzdAkJcjIKKyNkZWZpbmUgcFR3aWRkbGUJcjEKKyNkZWZpbmUgc3ViRkZUTnVtCXI2CisjZGVmaW5lIHN1YkZGVFNpemUJcjcKKworCisKK0AvL091dHB1dCBSZWdpc3RlcnMKKworCitALy9Mb2NhbCBTY3JhdGNoIFJlZ2lzdGVycworCisjZGVmaW5lIG91dFBvaW50U3RlcAlyMworI2RlZmluZSBncnBDb3VudAlyNAorI2RlZmluZSBkc3RTdGVwCQlyNQorI2RlZmluZSBncnBUd1N0ZXAJcjgKKyNkZWZpbmUgc3RlcFR3aWRkbGUJcjkKKyNkZWZpbmUgdHdTdGVwCQlyMTAKKyNkZWZpbmUgcFRtcAkJcjQKKyNkZWZpbmUgc3RlcDE2CQlyMTEKKyNkZWZpbmUgc3RlcDI0CQlyMTIKKworCitALy8gTmVvbiBSZWdpc3RlcnMKKworI2RlZmluZSBkQnV0dGVyZmx5MVJlYWwwMglEMC5TMzIKKyNkZWZpbmUgZEJ1dHRlcmZseTFJbWFnMDIJRDEuUzMyCisjZGVmaW5lIGRCdXR0ZXJmbHkxUmVhbDEzCUQyLlMzMgorI2RlZmluZSBkQnV0dGVyZmx5MUltYWcxMwlEMy5TMzIKKyNkZWZpbmUgZEJ1dHRlcmZseTJSZWFsMDIJRDQuUzMyCisjZGVmaW5lIGRCdXR0ZXJmbHkySW1hZzAyCUQ1LlMzMgorI2RlZmluZSBkQnV0dGVyZmx5MlJlYWwxMwlENi5TMzIKKyNkZWZpbmUgZEJ1dHRlcmZseTJJbWFnMTMJRDcuUzMyCisjZGVmaW5lIGRYcjAJCQlEMC5TMzIKKyNkZWZpbmUgZFhpMAkJCUQxLlMzMgorI2RlZmluZSBkWHIxCQkJRDIuUzMyCisjZGVmaW5lIGRYaTEJCQlEMy5TMzIKKyNkZWZpbmUgZFhyMgkJCUQ0LlMzMgorI2RlZmluZSBkWGkyCQkJRDUuUzMyCisjZGVmaW5lIGRYcjMJCQlENi5TMzIKKyNkZWZpbmUgZFhpMwkJCUQ3LlMzMgorCisjZGVmaW5lIGRZcjAJCQlEMTYuUzMyCisjZGVmaW5lIGRZaTAJCQlEMTcuUzMyCisjZGVmaW5lIGRZcjEJCQlEMTguUzMyCisjZGVmaW5lIGRZaTEJCQlEMTkuUzMyCisjZGVmaW5lIGRZcjIJCQlEMjAuUzMyCisjZGVmaW5lIGRZaTIJCQlEMjEuUzMyCisjZGVmaW5lIGRZcjMJCQlEMjIuUzMyCisjZGVmaW5lIGRZaTMJCQlEMjMuUzMyCisKKyNkZWZpbmUgZFcxcgkJCUQ4LlMzMgorI2RlZmluZSBkVzFpCQkJRDkuUzMyCisjZGVmaW5lIGRXMnIJCQlEMTAuUzMyCisjZGVmaW5lIGRXMmkJCQlEMTEuUzMyCisjZGVmaW5lIGRXM3IJCQlEMTIuUzMyCisjZGVmaW5lIGRXM2kJCQlEMTMuUzMyCisjZGVmaW5lIHFUMAkJCVE3LlM2NAorI2RlZmluZSBxVDEJCQlROC5TNjQKKyNkZWZpbmUgcVQyCQkJUTkuUzY0CisjZGVmaW5lIHFUMwkJCVExMC5TNjQKKyNkZWZpbmUgcVQ0CQkJUTExLlM2NAorI2RlZmluZSBxVDUJCQlRMTIuUzY0CisKKyNkZWZpbmUgZFpyMAkJCUQxNC5TMzIKKyNkZWZpbmUgZFppMAkJCUQxNS5TMzIKKyNkZWZpbmUgZFpyMQkJCUQyNi5TMzIKKyNkZWZpbmUgZFppMQkJCUQyNy5TMzIKKyNkZWZpbmUgZFpyMgkJCUQyOC5TMzIKKyNkZWZpbmUgZFppMgkJCUQyOS5TMzIKKyNkZWZpbmUgZFpyMwkJCUQzMC5TMzIKKyNkZWZpbmUgZFppMwkJCUQzMS5TMzIKKworI2RlZmluZSBxWDAJCQlRMC5TMzIKKyNkZWZpbmUgcVkwCQkJUTguUzMyCisjZGVmaW5lIHFZMQkJCVE5LlMzMiAgIAorI2RlZmluZSBxWTIJCQlRMTAuUzMyCisjZGVmaW5lIHFZMwkJCVExMS5TMzIKKyNkZWZpbmUgcVowCQkJUTcuUzMyCisjZGVmaW5lIHFaMQkJCVExMy5TMzIgICAKKyNkZWZpbmUgcVoyCQkJUTE0LlMzMgorI2RlZmluZSBxWjMJCQlRMTUuUzMyCisKKworICAgICAgICAKKyAgICAgICAgLk1BQ1JPIEZGVFNUQUdFIHNjYWxlZCwgaW52ZXJzZSAsIG5hbWUKKyAgICAgICAgCisgICAgICAgIEAvLyBEZWZpbmUgc3RhY2sgYXJndW1lbnRzCisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgQC8vIHBPdXQwKzEgaW5jcmVtZW50cyBwT3V0MCBieSA4IGJ5dGVzCisgICAgICAgIEAvLyBwT3V0MCtvdXRQb2ludFN0ZXAgPT0gaW5jcmVtZW50IG9mIDgqb3V0UG9pbnRTdGVwIGJ5dGVzIAorICAgICAgICBNT1YgICAgIG91dFBvaW50U3RlcCxzdWJGRlRTaXplLExTTCAjMworICAgICAgICAKKyAgICAgICAgQC8vIFVwZGF0ZSBncnBDb3VudCBhbmQgZ3JwU2l6ZSByaWdodGF3YXkgCisgICAgICAgIAorICAgICAgICBWTEQyICAgIHtkVzFyLGRXMWl9LFtwVHdpZGRsZSA6MTI4XSAgICAgICAgICAgICAgICAgICAgICAgICAgQC8vIFt3aXx3cl0KKyAgICAgICAgTU9WICAgICBzdGVwMTYsIzE2CisgICAgICAgIExTTCAgICAgZ3JwQ291bnQsc3ViRkZUU2l6ZSwjMgorICAgICAgICAKKyAgICAgICAgVkxEMSAgICBkVzJyLFtwVHdpZGRsZSA6NjRdICAgICAgICAgICAgICAgICAgICAgICAgICAgICBALy8gW3dpfHdyXQorICAgICAgICBNT1YgICAgIHN1YkZGVE51bSwjMSAgICAgICAgICAgICAgICAgICAgICAgICAgICBALy9hZnRlciB0aGUgbGFzdCBzdGFnZQorICAgICAgICAKKyAgICAgICAgVkxEMSAgICBkVzNyLFtwVHdpZGRsZSA6NjRdLHN0ZXAxNiAgICAgICAgICAgICAgICAgICAgIEAvLyBbd2l8d3JdCisgICAgICAgIE1PViAgICAgc3RlcFR3aWRkbGUsIzAKKyAgICAgICAgCisgICAgICAgIFZMRDEgICAgZFcyaSxbcFR3aWRkbGUgOjY0XSEgICAgICAgICAgICAgICAgICAgICAgICAgICAgQC8vIFt3aXx3cl0KKyAgICAgICAgU1VCICAgICBncnBUd1N0ZXAsc3RlcFR3aWRkbGUsIzggICAgICAgICAgICAgICAgICAgIEAvLyBncnBUd1N0ZXAgPSAtOCB0byBzdGFydCB3aXRoICAgICAgIAorICAgICAgICAKKyAgICAgICAgQC8vIHVwZGF0ZSBzdWJGRlRTaXplIGZvciB0aGUgbmV4dCBzdGFnZQorICAgICAgICBNT1YgICAgIHN1YkZGVFNpemUsZ3JwQ291bnQKKyAgICAgICAgVkxEMSAgICBkVzNpLFtwVHdpZGRsZSA6NjRdLGdycFR3U3RlcCAgICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyBbd2l8d3JdCisgICAgICAgIE1PViAgICAgZHN0U3RlcCxvdXRQb2ludFN0ZXAsTFNMICMxCisgICAgICAgIAorICAgICAgICBWTEQ0ICAgICB7ZEJ1dHRlcmZseTFSZWFsMDIsZEJ1dHRlcmZseTFJbWFnMDIsZEJ1dHRlcmZseTFSZWFsMTMsZEJ1dHRlcmZseTFJbWFnMTN9LFtwU3JjIDoyNTZdISBALy8gQUMuciBBQy5pIEJELnIgQkQuaQorICAgICAgICBBREQgICAgIGRzdFN0ZXAsZHN0U3RlcCxvdXRQb2ludFN0ZXAgICAgICAgICAgICAgICAgQC8vIGRzdFN0ZXAgPSAzKm91dFBvaW50U3RlcAorICAgICAgICBSU0IgICAgIGRzdFN0ZXAsZHN0U3RlcCwjMTYgICAgICAgICAgICAgICAgICAgICAgICAgQC8vIGRzdFN0ZXAgPSAtIDMqb3V0UG9pbnRTdGVwKzE2CisgICAgICAgIE1PViAgICAgc3RlcDI0LCMyNCAKKworICAgICAgICBWTEQ0ICAgICB7ZEJ1dHRlcmZseTJSZWFsMDIsZEJ1dHRlcmZseTJJbWFnMDIsZEJ1dHRlcmZseTJSZWFsMTMsZEJ1dHRlcmZseTJJbWFnMTN9LFtwU3JjIDoyNTZdISBALy8gQUMuciBBQy5pIEJELnIgQkQuaQorICAgICAgICAKKworICAgICAgICBALy8gUHJvY2VzcyB0d28gZ3JvdXBzIGF0IGEgdGltZQorICAgICAgICAKK2dycExvb3BcbmFtZSA6CQorICAgICAgICAKKyAgICAgICAgVlpJUCAgICBkVzJyLGRXMmkKKyAgICAgICAgQUREICAgICBzdGVwVHdpZGRsZSxzdGVwVHdpZGRsZSwjMTYgICAgICAgICAgICAgICAgIEAvLyBpbmNyZW1lbnQgZm9yIHRoZSBuZXh0IGl0ZXJhdGlvbgorICAgICAgICBWWklQICAgIGRXM3IsZFczaQorICAgICAgICBBREQgICAgIGdycFR3U3RlcCxzdGVwVHdpZGRsZSwjNAorICAgICAgICBWVVpQICAgICBkQnV0dGVyZmx5MVJlYWwxMywgZEJ1dHRlcmZseTJSZWFsMTMgICAgICAgIEAvLyBCLnIgRC5yCisgICAgICAgIFNVQiAgICAgdHdTdGVwLHN0ZXBUd2lkZGxlLCMxNiAgICAgICAgICAgICAgICAgICAgICBALy8gLTE2K3N0ZXBUd2lkZGxlCisgICAgICAgIFZVWlAgICAgIGRCdXR0ZXJmbHkxSW1hZzEzLCBkQnV0dGVyZmx5MkltYWcxMyAgICAgICAgQC8vIEIuaSBELmkKKyAgICAgICAgTU9WICAgICBncnBUd1N0ZXAsZ3JwVHdTdGVwLExTTCAjMQorICAgICAgICBWVVpQICAgICBkQnV0dGVyZmx5MVJlYWwwMiwgZEJ1dHRlcmZseTJSZWFsMDIgICAgICAgIEAvLyBBLnIgQy5yCisgICAgICAgIFJTQiAgICAgZ3JwVHdTdGVwLGdycFR3U3RlcCwjMCAgICAgICAgICAgICAgICAgICAgICBALy8gLTgtMipzdGVwVHdpZGRsZQorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIFZVWlAgICAgIGRCdXR0ZXJmbHkxSW1hZzAyLCBkQnV0dGVyZmx5MkltYWcwMiAgICAgICAgQC8vIEEuaSBDLmkKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBTVUJTICAgIGdycENvdW50LGdycENvdW50LCM4ICAgICAgICAgICAgICAgICAgICBALy8gZ3JwQ291bnQgaXMgbXVsdGlwbGllZCBieSA0CisgICAgICAgICAgICAgICAgCisgICAgICAgIC5pZmVxcyAgIlxpbnZlcnNlIiwgIlRSVUUiCisgICAgICAgICAgICBWTVVMTCAgIHFUMCxkVzFyLGRYcjEKKyAgICAgICAgICAgIFZNTEFMICAgcVQwLGRXMWksZFhpMSAgICAgICAgICAgICAgICAgICAgICAgQC8vIHJlYWwgcGFydAorICAgICAgICAgICAgVk1VTEwgICBxVDEsZFcxcixkWGkxCisgICAgICAgICAgICBWTUxTTCAgIHFUMSxkVzFpLGRYcjEgICAgICAgICAgICAgICAgICAgICAgIEAvLyBpbWFnIHBhcnQKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgLmVsc2UKKyAgICAgICAgCisgICAgICAgICAgICBWTVVMTCAgIHFUMCxkVzFyLGRYcjEKKyAgICAgICAgICAgIFZNTFNMICAgcVQwLGRXMWksZFhpMSAgICAgICAgICAgICAgICAgICAgICAgQC8vIHJlYWwgcGFydAorICAgICAgICAgICAgVk1VTEwgICBxVDEsZFcxcixkWGkxCisgICAgICAgICAgICBWTUxBTCAgIHFUMSxkVzFpLGRYcjEgICAgICAgICAgICAgICAgICAgICAgIEAvLyBpbWFnIHBhcnQKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIC5lbmRpZgorICAgICAgICAKKyAgICAgICAgVkxEMiAgICB7ZFcxcixkVzFpfSxbcFR3aWRkbGUgOjEyOF0sc3RlcFR3aWRkbGUgICAgICBALy8gW3dpfHdyXQorICAgICAgICAKKyAgICAgICAgLmlmZXFzICAiXGludmVyc2UiLCAiVFJVRSIKKyAgICAgICAgICAgIFZNVUxMICAgcVQyLGRXMnIsZFhyMgorICAgICAgICAgICAgVk1MQUwgICBxVDIsZFcyaSxkWGkyICAgICAgICAgICAgICAgICAgICAgICBALy8gcmVhbCBwYXJ0CisgICAgICAgICAgICBWTVVMTCAgIHFUMyxkVzJyLGRYaTIKKyAgICAgICAgICAgIFZMRDEgICAgZFcycixbcFR3aWRkbGUgOjY0XSxzdGVwMTYgICAgICAgICAgICAgICAgICBALy8gW3dpfHdyXQorICAgICAgICAgICAgVk1MU0wgICBxVDMsZFcyaSxkWHIyICAgICAgICAgICAgICAgICAgICAgICBALy8gaW1hZyBwYXJ0CisgICAgICAgICAgICAgICAgCisgICAgICAgIC5lbHNlCisgICAgICAgIAorICAgICAgICAgICAgVk1VTEwgICBxVDIsZFcycixkWHIyCisgICAgICAgICAgICBWTUxTTCAgIHFUMixkVzJpLGRYaTIgICAgICAgICAgICAgICAgICAgICAgIEAvLyByZWFsIHBhcnQKKyAgICAgICAgICAgIFZNVUxMICAgcVQzLGRXMnIsZFhpMgorICAgICAgICAgICAgVkxEMSAgICBkVzJyLFtwVHdpZGRsZSA6NjRdLHN0ZXAxNiAgICAgICAgICAgICAgICAgIEAvLyBbd2l8d3JdCisgICAgICAgICAgICBWTUxBTCAgIHFUMyxkVzJpLGRYcjIgICAgICAgICAgICAgICAgICAgICAgIEAvLyBpbWFnIHBhcnQKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIC5lbmRpZgorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIFZSU0hSTiAgZFpyMSxxVDAsIzMxCisgICAgICAgIFZMRDEgICAgZFcyaSxbcFR3aWRkbGUgOjY0XSx0d1N0ZXAgICAgICAgICAgICAgICAgICBALy8gW3dpfHdyXSAKKyAgICAgICAgVlJTSFJOICBkWmkxLHFUMSwjMzEKKyAgICAgICAgCisgICAgICAgIFZNT1YgICAgIHFaMCxxWDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyBtb3ZlIHFYMCBzbyBhcyB0byBsb2FkIGZvciB0aGUgbmV4dCBpdGVyYXRpb24KKyAgICAgICAgVkxENCAgICAge2RCdXR0ZXJmbHkxUmVhbDAyLGRCdXR0ZXJmbHkxSW1hZzAyLGRCdXR0ZXJmbHkxUmVhbDEzLGRCdXR0ZXJmbHkxSW1hZzEzfSxbcFNyYyA6MjU2XSEgQC8vIEFDLnIgQUMuaSBCRC5yIEJELmkKKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgIC5pZmVxcyAgIlxpbnZlcnNlIiwgIlRSVUUiCisgICAgICAgICAgICBWTVVMTCAgIHFUNCxkVzNyLGRYcjMKKyAgICAgICAgICAgIFZNTEFMICAgcVQ0LGRXM2ksZFhpMyAgICAgICAgICAgICAgICAgICAgICAgQC8vIHJlYWwgcGFydAorICAgICAgICAgICAgVk1VTEwgICBxVDUsZFczcixkWGkzCisgICAgICAgICAgICBWTEQxICAgIGRXM3IsW3BUd2lkZGxlIDo2NF0sc3RlcDI0CisgICAgICAgICAgICBWTUxTTCAgIHFUNSxkVzNpLGRYcjMgICAgICAgICAgICAgICAgICAgICAgIEAvLyBpbWFnIHBhcnQKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgLmVsc2UKKyAgICAgICAgCisgICAgICAgICAgICBWTVVMTCAgIHFUNCxkVzNyLGRYcjMKKyAgICAgICAgICAgIFZNTFNMICAgcVQ0LGRXM2ksZFhpMyAgICAgICAgICAgICAgICAgICAgICAgQC8vIHJlYWwgcGFydAorICAgICAgICAgICAgVk1VTEwgICBxVDUsZFczcixkWGkzCisgICAgICAgICAgICBWTEQxICAgIGRXM3IsW3BUd2lkZGxlIDo2NF0sc3RlcDI0CisgICAgICAgICAgICBWTUxBTCAgIHFUNSxkVzNpLGRYcjMgICAgICAgICAgICAgICAgICAgICAgIEAvLyBpbWFnIHBhcnQKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIC5lbmRpZgorICAgICAgICAKKyAgICAgICAgVlJTSFJOICBkWnIyLHFUMiwjMzEKKyAgICAgICAgVkxEMSAgICBkVzNpLFtwVHdpZGRsZSA6NjRdLGdycFR3U3RlcCAgICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyBbd2l8d3JdCisgICAgICAgIFZSU0hSTiAgZFppMixxVDMsIzMxCisgICAgICAgIAorICAgICAgICBWUlNIUk4gIGRacjMscVQ0LCMzMQorICAgICAgICBWUlNIUk4gIGRaaTMscVQ1LCMzMQorICAgICAgICBWTEQ0ICAgICB7ZEJ1dHRlcmZseTJSZWFsMDIsZEJ1dHRlcmZseTJJbWFnMDIsZEJ1dHRlcmZseTJSZWFsMTMsZEJ1dHRlcmZseTJJbWFnMTN9LFtwU3JjIDoyNTZdISBALy8gQUMuciBBQy5pIEJELnIgQkQuaQorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgLmlmZXFzICJcc2NhbGVkIiwgIlRSVUUiCisgICAgICAgIAorICAgICAgICAgICAgQC8vIGZpbmlzaCBmaXJzdCBzdGFnZSBvZiA0IHBvaW50IEZGVCAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgVkhBREQgICAgcVkwLHFaMCxxWjIKKyAgICAgICAgICAgIFZIU1VCICAgIHFZMixxWjAscVoyCisgICAgICAgICAgICBWSEFERCAgICBxWTEscVoxLHFaMworICAgICAgICAgICAgVkhTVUIgICAgcVkzLHFaMSxxWjMKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBALy8gZmluaXNoIHNlY29uZCBzdGFnZSBvZiA0IHBvaW50IEZGVCAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLmlmZXFzICAiXGludmVyc2UiLCAiVFJVRSIKKworICAgICAgICAgICAgICAgIFZIU1VCICAgIHFaMCxxWTIscVkxCisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWSEFERCAgICBkWnIzLGRZcjAsZFlpMworICAgICAgICAgICAgICAgIFZTVDIgICAge2RacjAsZFppMH0sW3BEc3QgOjEyOF0sb3V0UG9pbnRTdGVwCisgICAgICAgICAgICAgICAgVkhTVUIgICAgZFppMyxkWWkwLGRZcjMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVkhBREQgICAgcVoyLHFZMixxWTEKKyAgICAgICAgICAgICAgICBWU1QyICAgIHtkWnIzLGRaaTN9LFtwRHN0IDoxMjhdLG91dFBvaW50U3RlcAorICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVkhTVUIgICAgZFpyMSxkWXIwLGRZaTMKKyAgICAgICAgICAgICAgICBWU1QyICAgIHtkWnIyLGRaaTJ9LFtwRHN0IDoxMjhdLG91dFBvaW50U3RlcAorICAgICAgICAgICAgICAgIFZIQUREICAgIGRaaTEsZFlpMCxkWXIzCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVlNUMiAgICB7ZFpyMSxkWmkxfSxbcERzdCA6MTI4XSxkc3RTdGVwICAgICAgICAgICAgICBALy8gZHN0U3RlcCA9IC1vdXRQb2ludFN0ZXAgKyAxNgorICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgLmVsc2UKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWSFNVQiAgICBxWjAscVkyLHFZMQorICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVkhTVUIgICAgZFpyMSxkWXIwLGRZaTMKKyAgICAgICAgICAgICAgICBWU1QyICAgIHtkWnIwLGRaaTB9LFtwRHN0IDoxMjhdLG91dFBvaW50U3RlcAorICAgICAgICAgICAgICAgIFZIQUREICAgIGRaaTEsZFlpMCxkWXIzCisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWSEFERCAgICBxWjIscVkyLHFZMQorICAgICAgICAgICAgICAgIFZTVDIgICAge2RacjEsZFppMX0sW3BEc3QgOjEyOF0sb3V0UG9pbnRTdGVwCisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWSEFERCAgICBkWnIzLGRZcjAsZFlpMworICAgICAgICAgICAgICAgIFZTVDIgICAge2RacjIsZFppMn0sW3BEc3QgOjEyOF0sb3V0UG9pbnRTdGVwCisgICAgICAgICAgICAgICAgVkhTVUIgICAgZFppMyxkWWkwLGRZcjMKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWU1QyICAgIHtkWnIzLGRaaTN9LFtwRHN0IDoxMjhdLGRzdFN0ZXAgICAgICAgICAgICAgIEAvLyBkc3RTdGVwID0gLW91dFBvaW50U3RlcCArIDE2CisKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLmVuZGlmCisgICAgICAgICAgICAKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICAuZWxzZQorICAgICAgICAKKyAgICAgICAgICAgIEAvLyBmaW5pc2ggZmlyc3Qgc3RhZ2Ugb2YgNCBwb2ludCBGRlQgCisgICAgICAgICAgICAKKyAgICAgICAgICAgIFZBREQgICAgcVkwLHFaMCxxWjIKKyAgICAgICAgICAgIFZTVUIgICAgcVkyLHFaMCxxWjIKKyAgICAgICAgICAgIFZBREQgICAgcVkxLHFaMSxxWjMKKyAgICAgICAgICAgIFZTVUIgICAgcVkzLHFaMSxxWjMKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBALy8gZmluaXNoIHNlY29uZCBzdGFnZSBvZiA0IHBvaW50IEZGVCAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLmlmZXFzICAiXGludmVyc2UiLCAiVFJVRSIKKworICAgICAgICAgICAgICAgIFZTVUIgICAgcVowLHFZMixxWTEKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFZBREQgICAgZFpyMyxkWXIwLGRZaTMKKyAgICAgICAgICAgICAgICBWU1QyICAgIHtkWnIwLGRaaTB9LFtwRHN0IDoxMjhdLG91dFBvaW50U3RlcAorICAgICAgICAgICAgICAgIFZTVUIgICAgZFppMyxkWWkwLGRZcjMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVkFERCAgICBxWjIscVkyLHFZMQorICAgICAgICAgICAgICAgIFZTVDIgICAge2RacjMsZFppM30sW3BEc3QgOjEyOF0sb3V0UG9pbnRTdGVwCisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWU1VCICAgIGRacjEsZFlyMCxkWWkzCisgICAgICAgICAgICAgICAgVlNUMiAgICB7ZFpyMixkWmkyfSxbcERzdCA6MTI4XSxvdXRQb2ludFN0ZXAKKyAgICAgICAgICAgICAgICBWQUREICAgIGRaaTEsZFlpMCxkWXIzCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVlNUMiAgICB7ZFpyMSxkWmkxfSxbcERzdCA6MTI4XSxkc3RTdGVwICAgICAgICAgICAgICBALy8gZHN0U3RlcCA9IC1vdXRQb2ludFN0ZXAgKyAxNgorICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgLmVsc2UKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWU1VCICAgIHFaMCxxWTIscVkxCisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWU1VCICAgIGRacjEsZFlyMCxkWWkzCisgICAgICAgICAgICAgICAgVlNUMiAgICB7ZFpyMCxkWmkwfSxbcERzdCA6MTI4XSxvdXRQb2ludFN0ZXAKKyAgICAgICAgICAgICAgICBWQUREICAgIGRaaTEsZFlpMCxkWXIzCisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWQUREICAgIHFaMixxWTIscVkxCisgICAgICAgICAgICAgICAgVlNUMiAgICB7ZFpyMSxkWmkxfSxbcERzdCA6MTI4XSxvdXRQb2ludFN0ZXAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFZBREQgICAgZFpyMyxkWXIwLGRZaTMKKyAgICAgICAgICAgICAgICBWU1QyICAgIHtkWnIyLGRaaTJ9LFtwRHN0IDoxMjhdLG91dFBvaW50U3RlcAorICAgICAgICAgICAgICAgIFZTVUIgICAgZFppMyxkWWkwLGRZcjMKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWU1QyICAgIHtkWnIzLGRaaTN9LFtwRHN0IDoxMjhdLGRzdFN0ZXAgICAgICAgICAgICAgIEAvLyBkc3RTdGVwID0gLW91dFBvaW50U3RlcCArIDE2CisKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLmVuZGlmCisgICAgICAgICAgICAKKyAgICAgICAgLmVuZGlmCisgICAgICAgIAorICAgICAgICBCR1QgICAgIGdycExvb3BcbmFtZQorICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgQC8vIFJlc2V0IGFuZCBTd2FwIHBTcmMgYW5kIHBEc3QgZm9yIHRoZSBuZXh0IHN0YWdlICAgICAKKyAgICAgICAgTU9WICAgICBwVG1wLHBEc3QKKyAgICAgICAgU1VCICAgICBwU3JjLHBTcmMsIzY0ICAgICAgICAgICAgICAgICAgICAgICBALy8gRXh0cmEgaW5jcmVtZW50IGRvbmUgaW4gZmluYWwgaXRlcmF0aW9uIG9mIHRoZSBsb29wCisgICAgICAgIFNVQiAgICAgcERzdCxwU3JjLG91dFBvaW50U3RlcCxMU0wgIzIgICAgICAgQC8vIHBEc3QgLT0gNCpzaXplOyBwU3JjIC09IDgqc2l6ZSBieXRlcyAgICAgICAgICAgCisgICAgICAgIFNVQiAgICAgcFNyYyxwVG1wLG91dFBvaW50U3RlcAorICAgICAgICBTVUIgICAgIHBUd2lkZGxlLHBUd2lkZGxlLHN1YkZGVFNpemUsTFNMICMxCisgICAgICAgIFNVQiAgICAgcFR3aWRkbGUscFR3aWRkbGUsIzE2ICAgICAgICAgICAgICAgQC8vIEV4dHJhIGluY3JlbWVudCBkb25lIGluIGZpbmFsIGl0ZXJhdGlvbiBvZiB0aGUgbG9vcAorICAgICAgICAKKyAgICAgICAgLmVuZG0KKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBNX1NUQVJUIGFybVNQX0ZGVEZ3ZF9DVG9DX1NDMzJfUmFkaXg0X2xzX091dE9mUGxhY2VfdW5zYWZlLHI0CisgICAgICAgIEZGVFNUQUdFICJGQUxTRSIsIkZBTFNFIixmd2QKKyAgICAgICAgTV9FTkQKKworICAgICAgICAKKyAgICAgICAgTV9TVEFSVCBhcm1TUF9GRlRJbnZfQ1RvQ19TQzMyX1JhZGl4NF9sc19PdXRPZlBsYWNlX3Vuc2FmZSxyNAorICAgICAgICBGRlRTVEFHRSAiRkFMU0UiLCJUUlVFIixpbnYKKyAgICAgICAgTV9FTkQKKyAKKyAgICAgICAgCisgICAgICAgIE1fU1RBUlQgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9TZnNfUmFkaXg0X2xzX091dE9mUGxhY2VfdW5zYWZlLHI0CisgICAgICAgIEZGVFNUQUdFICJUUlVFIiwiRkFMU0UiLGZ3ZHNmcworICAgICAgICBNX0VORAorCisgICAgICAgIAorICAgICAgICBNX1NUQVJUIGFybVNQX0ZGVEludl9DVG9DX1NDMzJfU2ZzX1JhZGl4NF9sc19PdXRPZlBsYWNlX3Vuc2FmZSxyNAorICAgICAgICBGRlRTVEFHRSAiVFJVRSIsIlRSVUUiLGludnNmcworICAgICAgICBNX0VORAorCisgICAgICAgIAorCS5lbmQKZGlmZiAtLWdpdCBhL2RsL2FybVNQX0ZGVF9DVG9DX1NDMzJfUmFkaXg0X3Vuc2FmZV9zLlMgYi9kbC9hcm1TUF9GRlRfQ1RvQ19TQzMyX1JhZGl4NF91bnNhZmVfcy5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhMmUyMWIKLS0tIC9kZXYvbnVsbAorKysgYi9kbC9hcm1TUF9GRlRfQ1RvQ19TQzMyX1JhZGl4NF91bnNhZmVfcy5TCkBAIC0wLDAgKzEsMzk1IEBACitALy8KK0AvLyAgQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorQC8vCitALy8gIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKK0AvLyAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCitALy8gIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKK0AvLyAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorQC8vICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KK0AvLworQC8vICBUaGlzIGZpbGUgd2FzIG9yaWdpbmFsbHkgbGljZW5zZWQgYXMgZm9sbG93cy4gSXQgaGFzIGJlZW4KK0AvLyAgcmVsaWNlbnNlZCB3aXRoIHBlcm1pc3Npb24gZnJvbSB0aGUgY29weXJpZ2h0IGhvbGRlcnMuCitALy8KKworQC8vIAorQC8vIEZpbGUgTmFtZTogIGFybVNQX0ZGVF9DVG9DX1NDMzJfUmFkaXg0X3Vuc2FmZV9zLnMKK0AvLyBPcGVuTUFYIERMOiB2MS4wLjIKK0AvLyBMYXN0IE1vZGlmaWVkIFJldmlzaW9uOiAgIDc3NjcKK0AvLyBMYXN0IE1vZGlmaWVkIERhdGU6ICAgICAgIFRodSwgMjcgU2VwIDIwMDcKK0AvLyAKK0AvLyAoYykgQ29weXJpZ2h0IDIwMDctMjAwOCBBUk0gTGltaXRlZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KK0AvLyAKK0AvLyAKK0AvLworQC8vIERlc2NyaXB0aW9uOgorQC8vIENvbXB1dGUgYSBSYWRpeCA0IEZGVCBzdGFnZSBmb3IgYSBOIHBvaW50IGNvbXBsZXggc2lnbmFsCitALy8gCisKKworCisgICAgICAgIAorQC8vIEluY2x1ZGUgc3RhbmRhcmQgaGVhZGVycworCisjaW5jbHVkZSAib214dHlwZXNfcy5oIgorI2luY2x1ZGUgImFybUNPTU1fcy5oIgorICAgICAgICAKKyAgICAgICAgCitALy8gSW1wb3J0IHN5bWJvbHMgcmVxdWlyZWQgZnJvbSBvdGhlciBmaWxlcworQC8vIChGb3IgZXhhbXBsZSB0YWJsZXMpCisgICAgCisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgCitALy8gU2V0IGRlYnVnZ2luZyBsZXZlbCAgICAgICAgCitALy9ERUJVR19PTiAgICBTRVRMIHtUUlVFfQorCisKKworQC8vIEd1YXJkaW5nIGltcGxlbWVudGF0aW9uIGJ5IHRoZSBwcm9jZXNzb3IgbmFtZQorICAgIAorICAgIAorICAgIAorICAgIAorQC8vIEd1YXJkaW5nIGltcGxlbWVudGF0aW9uIGJ5IHRoZSBwcm9jZXNzb3IgbmFtZQorICAgIAorICAgIAorQC8vIEltcG9ydCBzeW1ib2xzIHJlcXVpcmVkIGZyb20gb3RoZXIgZmlsZXMKK0AvLyAoRm9yIGV4YW1wbGUgdGFibGVzKQorICAgIAorICAgIAorQC8vSW5wdXQgUmVnaXN0ZXJzCisKKyNkZWZpbmUgcFNyYwkJcjAKKyNkZWZpbmUgcERzdAkJcjIKKyNkZWZpbmUgcFR3aWRkbGUJcjEKKyNkZWZpbmUgc3ViRkZUTnVtCXI2CisjZGVmaW5lIHN1YkZGVFNpemUJcjcKKworCisKK0AvL091dHB1dCBSZWdpc3RlcnMKKworCitALy9Mb2NhbCBTY3JhdGNoIFJlZ2lzdGVycworCisjZGVmaW5lIGdycENvdW50CXIzCisjZGVmaW5lIHBvaW50U3RlcAlyNAorI2RlZmluZSBvdXRQb2ludFN0ZXAJcjUKKyNkZWZpbmUgc3RlcFR3aWRkbGUJcjEyCisjZGVmaW5lIHNldENvdW50CXIxNAorI2RlZmluZSBzcmNTdGVwCQlyOAorI2RlZmluZSBzZXRTdGVwCQlyOQorI2RlZmluZSBkc3RTdGVwCQlyMTAKKyNkZWZpbmUgdHdTdGVwCQlyMTEKKyNkZWZpbmUgdDEJCXIzCisKK0AvLyBOZW9uIFJlZ2lzdGVycworCisjZGVmaW5lIGRXMQlEMC5TMzIKKyNkZWZpbmUgZFcyCUQxLlMzMgorI2RlZmluZSBkVzMJRDIuUzMyICAgCisKKyNkZWZpbmUgZFhyMAlENC5TMzIKKyNkZWZpbmUgZFhpMAlENS5TMzIKKyNkZWZpbmUgZFhyMQlENi5TMzIKKyNkZWZpbmUgZFhpMQlENy5TMzIKKyNkZWZpbmUgZFhyMglEOC5TMzIKKyNkZWZpbmUgZFhpMglEOS5TMzIKKyNkZWZpbmUgZFhyMwlEMTAuUzMyCisjZGVmaW5lIGRYaTMJRDExLlMzMgorI2RlZmluZSBkWXIwCUQxMi5TMzIKKyNkZWZpbmUgZFlpMAlEMTMuUzMyCisjZGVmaW5lIGRZcjEJRDE0LlMzMgorI2RlZmluZSBkWWkxCUQxNS5TMzIKKyNkZWZpbmUgZFlyMglEMTYuUzMyCisjZGVmaW5lIGRZaTIJRDE3LlMzMgorI2RlZmluZSBkWXIzCUQxOC5TMzIKKyNkZWZpbmUgZFlpMwlEMTkuUzMyCisjZGVmaW5lIHFUMAlROC5TNjQgICAKKyNkZWZpbmUgcVQxCVE5LlM2NAorI2RlZmluZSBxVDIJUTYuUzY0CisjZGVmaW5lIHFUMwlRNy5TNjQKKworI2RlZmluZSBkWnIwCUQyMC5TMzIKKyNkZWZpbmUgZFppMAlEMjEuUzMyCisjZGVmaW5lIGRacjEJRDIyLlMzMgorI2RlZmluZSBkWmkxCUQyMy5TMzIKKyNkZWZpbmUgZFpyMglEMjQuUzMyCisjZGVmaW5lIGRaaTIJRDI1LlMzMgorI2RlZmluZSBkWnIzCUQyNi5TMzIKKyNkZWZpbmUgZFppMwlEMjcuUzMyCisKKyNkZWZpbmUgcVkwCVE2LlMzMgorI2RlZmluZSBxWTEJUTcuUzMyCisjZGVmaW5lIHFZMglROC5TMzIKKyNkZWZpbmUgcVkzCVE5LlMzMiAgIAorI2RlZmluZSBxWDAJUTIuUzMyCisjZGVmaW5lIHFaMAlRMTAuUzMyCisjZGVmaW5lIHFaMQlRMTEuUzMyCisjZGVmaW5lIHFaMglRMTIuUzMyCisjZGVmaW5lIHFaMwlRMTMuUzMyCisKKyAgICAgICAgCisgICAgICAgIC5NQUNSTyBGRlRTVEFHRSBzY2FsZWQsIGludmVyc2UgLCBuYW1lCisgICAgICAgIAorICAgICAgICBALy8gRGVmaW5lIHN0YWNrIGFyZ3VtZW50cworICAgICAgICAKKyAgICAgICAgCisgICAgICAgIEAvLyBVcGRhdGUgZ3JwQ291bnQgYW5kIGdycFNpemUgcmlnaHRhd2F5IGlub3JkZXIgdG8gcmV1c2UgcEdycENvdW50IGFuZCBwR3JwU2l6ZSByZWdzCisgICAgICAgIAorICAgICAgICBMU0wgICAgIGdycENvdW50LHN1YkZGVFNpemUsIzIKKyAgICAgICAgTFNSICAgICBzdWJGRlROdW0sc3ViRkZUTnVtLCMyICAKKyAgICAgICAgTU9WICAgICBzdWJGRlRTaXplLGdycENvdW50CisgICAgICAgIAorICAgICAgICBWTEQxICAgICBkVzEsW3BUd2lkZGxlXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQC8vW3dpIHwgd3JdCisgICAgICAgIEAvLyBwVDArMSBpbmNyZW1lbnRzIHBUMCBieSA4IGJ5dGVzCisgICAgICAgIEAvLyBwVDArcG9pbnRTdGVwID0gaW5jcmVtZW50IG9mIDgqcG9pbnRTdGVwIGJ5dGVzID0gMipncnBTaXplIGJ5dGVzCisgICAgICAgIE1PViAgICAgcG9pbnRTdGVwLHN1YkZGVE51bSxMU0wgIzEKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBALy8gcE91dDArMSBpbmNyZW1lbnRzIHBPdXQwIGJ5IDggYnl0ZXMKKyAgICAgICAgQC8vIHBPdXQwK291dFBvaW50U3RlcCA9PSBpbmNyZW1lbnQgb2YgOCpvdXRQb2ludFN0ZXAgYnl0ZXMgPSAyKnNpemUgYnl0ZXMKKyAgICAgICAgCisgICAgICAgIE1PViAgICAgc3RlcFR3aWRkbGUsIzAKKyAgICAgICAgVkxEMSAgICAgZFcyLFtwVHdpZGRsZV0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIEAvL1t3aSB8IHdyXQorICAgICAgICBTTVVMQkIgIG91dFBvaW50U3RlcCxncnBDb3VudCxwb2ludFN0ZXAgIAorICAgICAgICBMU0wgICAgIHBvaW50U3RlcCxwb2ludFN0ZXAsIzIgICAgICAgICAgICAgICAgICAgICAgQC8vIDIqZ3JwU2l6ZSAgICAKKyAgICAgICAgCisgICAgICAgIFZMRDEgICAgIGRXMyxbcFR3aWRkbGVdICAgICAgICAgICAgICAgICAgICAgICAgICAgICBALy9bd2kgfCB3cl0KKyAgICAgICAgTU9WICAgICBzcmNTdGVwLHBvaW50U3RlcCxMU0wgIzEgICAgICAgICAgICAgICAgICAgIEAvLyBzcmNTdGVwID0gMipwb2ludFN0ZXAKKyAgICAgICAgQUREICAgICBzZXRTdGVwLHNyY1N0ZXAscG9pbnRTdGVwICAgICAgICAgICAgICAgICAgIEAvLyBzZXRTdGVwID0gMypwb2ludFN0ZXAKKyAgICAgICAgQC8vUlNCICAgICBzZXRTdGVwLHNldFN0ZXAsIzE2ICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyBzZXRTdGVwID0gLSAzKnBvaW50U3RlcCsxNgorICAgICAgICBSU0IgICAgIHNldFN0ZXAsc2V0U3RlcCwjMCAgICAgICAgICAgICAgICAgICAgICAgICBALy8gc2V0U3RlcCA9IC0gMypwb2ludFN0ZXAKKyAgICAgICAgU1VCICAgICBzcmNTdGVwLHNyY1N0ZXAsIzE2ICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyBzcmNTdGVwID0gMipwb2ludFN0ZXAtMTYKKyAgICAgICAgCisgICAgICAgIE1PViAgICAgZHN0U3RlcCxvdXRQb2ludFN0ZXAsTFNMICMxCisgICAgICAgIEFERCAgICAgZHN0U3RlcCxkc3RTdGVwLG91dFBvaW50U3RlcCAgICAgICAgICAgICAgICBALy8gZHN0U3RlcCA9IDMqb3V0UG9pbnRTdGVwCisgICAgICAgIFJTQiAgICAgZHN0U3RlcCxkc3RTdGVwLCMxNiAgICAgICAgICAgICAgICAgICAgICAgICAgQC8vIGRzdFN0ZXAgPSAtIDMqb3V0UG9pbnRTdGVwKzE2CisgICAgICAgIAorCisgICAgICAgIAorZ3JwTG9vcFxuYW1lIDoJCisgICAgICAgIAorICAgICAgICBWTEQyICAgIHtkWHIwLGRYaTB9LFtwU3JjXSxwb2ludFN0ZXAgICAgICAgICAgICAgICAgQC8vICBkYXRhWzBdCisgICAgICAgIEFERCAgICAgIHN0ZXBUd2lkZGxlLHN0ZXBUd2lkZGxlLHBvaW50U3RlcAorICAgICAgICBWTEQyICAgIHtkWHIxLGRYaTF9LFtwU3JjXSxwb2ludFN0ZXAgICAgICAgICAgICAgICAgQC8vICBkYXRhWzFdCisgICAgICAgIEFERCAgICAgIHBUd2lkZGxlLHBUd2lkZGxlLHN0ZXBUd2lkZGxlICAgICAgICAgICAgICBALy8gc2V0IHBUd2lkZGxlIHRvIHRoZSBmaXJzdCBwb2ludAorICAgICAgICBWTEQyICAgIHtkWHIyLGRYaTJ9LFtwU3JjXSxwb2ludFN0ZXAgICAgICAgICAgICAgICAgQC8vICBkYXRhWzJdCisgICAgICAgIE1PViAgICAgIHR3U3RlcCxzdGVwVHdpZGRsZSxMU0wgIzIKKyAgICAgICAgCisgICAgICAgIFZMRDIgICAge2RYcjMsZFhpM30sW3BTcmNdLHNldFN0ZXAgICAgICAgICAgICAgICAgICBALy8gIGRhdGFbM10gJiB1cGRhdGUgcFNyYyBmb3IgdGhlIG5leHQgc2V0CisgICAgICAgIFNVQiAgICAgIHR3U3RlcCxzdGVwVHdpZGRsZSx0d1N0ZXAgICAgICAgICAgICAgICAgICBALy8gdHdTdGVwID0gLTMqc3RlcFR3aWRkbGUKKyAgICAgICAgCisgICAgICAgIE1PViAgICAgIHNldENvdW50LHBvaW50U3RlcCxMU1IgIzMKKyAgICAgICAgQUREICAgICBwU3JjLHBTcmMsIzE2ICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyBzZXQgcFNyYyB0byBkYXRhWzBdIG9mIHRoZSBuZXh0IHNldAorICAgICAgICBBREQgICAgIHBTcmMscFNyYyxwb2ludFN0ZXAgICAgICAgICAgICAgICAgICAgQC8vIGluY3JlbWVudCB0byBkYXRhWzFdIG9mIHRoZSBuZXh0IHNldAorICAgICAgIAorICAgICAgICAKKyAgICAgICAgQC8vIExvb3Agb24gdGhlIHNldHMKKworc2V0TG9vcFxuYW1lIDoJCisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIFNVQlMgICAgc2V0Q291bnQsc2V0Q291bnQsIzIgICAgICAgICAgICAgICAgICAgIEAvLyBkZWNyZW1lbnQgdGhlIGxvb3AgY291bnRlcgorICAgICAgICAKKyAgICAgICAgLmlmZXFzICAiXGludmVyc2UiLCAiVFJVRSIKKyAgICAgICAgICAgIFZNVUxMICAgcVQwLGRYcjEsZFcxWzBdCisgICAgICAgICAgICBWTUxBTCAgIHFUMCxkWGkxLGRXMVsxXSAgICAgICAgICAgICAgICAgICAgICAgQC8vIHJlYWwgcGFydAorICAgICAgICAgICAgVk1VTEwgICBxVDEsZFhpMSxkVzFbMF0KKyAgICAgICAgICAgIFZNTFNMICAgcVQxLGRYcjEsZFcxWzFdICAgICAgICAgICAgICAgICAgICAgICBALy8gaW1hZyBwYXJ0CisgICAgICAgICAgICAKKyAgICAgICAgLmVsc2UKKyAgICAgICAgICAgIFZNVUxMICAgcVQwLGRYcjEsZFcxWzBdCisgICAgICAgICAgICBWTUxTTCAgIHFUMCxkWGkxLGRXMVsxXSAgICAgICAgICAgICAgICAgICAgICAgQC8vIHJlYWwgcGFydAorICAgICAgICAgICAgVk1VTEwgICBxVDEsZFhpMSxkVzFbMF0KKyAgICAgICAgICAgIFZNTEFMICAgcVQxLGRYcjEsZFcxWzFdICAgICAgICAgICAgICAgICAgICAgICBALy8gaW1hZyBwYXJ0CisgICAgICAgIAorICAgICAgICAuZW5kaWYKKyAgICAgICAgCisgICAgICAgIFZMRDIgICAge2RYcjEsZFhpMX0sW3BTcmNdLHBvaW50U3RlcCAgICAgICAgICAgICAgQC8vICBkYXRhWzFdIGZvciBuZXh0IGl0ZXJhdGlvbgorICAgICAgICAKKyAgICAgICAgLmlmZXFzICAiXGludmVyc2UiLCAiVFJVRSIKKyAgICAgICAgICAgIFZNVUxMICAgcVQyLGRYcjIsZFcyWzBdCisgICAgICAgICAgICBWTUxBTCAgIHFUMixkWGkyLGRXMlsxXSAgICAgICAgICAgICAgICAgICAgICAgQC8vIHJlYWwgcGFydAorICAgICAgICAgICAgVk1VTEwgICBxVDMsZFhpMixkVzJbMF0KKyAgICAgICAgICAgIFZNTFNMICAgcVQzLGRYcjIsZFcyWzFdICAgICAgICAgICAgICAgICAgICAgICBALy8gaW1hZyBwYXJ0CisgICAgICAgICAgICAKKyAgICAgICAgLmVsc2UKKyAgICAgICAgICAgIFZNVUxMICAgcVQyLGRYcjIsZFcyWzBdCisgICAgICAgICAgICBWTUxTTCAgIHFUMixkWGkyLGRXMlsxXSAgICAgICAgICAgICAgICAgICAgICAgQC8vIHJlYWwgcGFydAorICAgICAgICAgICAgVk1VTEwgICBxVDMsZFhpMixkVzJbMF0KKyAgICAgICAgICAgIFZNTEFMICAgcVQzLGRYcjIsZFcyWzFdICAgICAgICAgICAgICAgICAgICAgICBALy8gaW1hZyBwYXJ0CisgICAgICAgIAorICAgICAgICAuZW5kaWYKKyAgICAgICAgCisgICAgICAgIFZSU0hSTiAgZFpyMSxxVDAsIzMxCisgICAgICAgIFZSU0hSTiAgZFppMSxxVDEsIzMxCisgICAgICAgIFZMRDIgICAge2RYcjIsZFhpMn0sW3BTcmNdLHBvaW50U3RlcCAgICAgICAgICAgICAgQC8vICBkYXRhWzJdIGZvciBuZXh0IGl0ZXJhdGlvbgorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIC5pZmVxcyAgIlxpbnZlcnNlIiwgIlRSVUUiCisgICAgICAgICAgICBWTVVMTCAgIHFUMCxkWHIzLGRXM1swXQorICAgICAgICAgICAgVk1MQUwgICBxVDAsZFhpMyxkVzNbMV0gICAgICAgICAgICAgICAgICAgICAgIEAvLyByZWFsIHBhcnQKKyAgICAgICAgICAgIFZNVUxMICAgcVQxLGRYaTMsZFczWzBdCisgICAgICAgICAgICBWTUxTTCAgIHFUMSxkWHIzLGRXM1sxXSAgICAgICAgICAgICAgICAgICAgICAgQC8vIGltYWcgcGFydAorICAgICAgICAgICAgCisgICAgICAgIC5lbHNlCisgICAgICAgICAgICBWTVVMTCAgIHFUMCxkWHIzLGRXM1swXQorICAgICAgICAgICAgVk1MU0wgICBxVDAsZFhpMyxkVzNbMV0gICAgICAgICAgICAgICAgICAgICAgIEAvLyByZWFsIHBhcnQKKyAgICAgICAgICAgIFZNVUxMICAgcVQxLGRYaTMsZFczWzBdCisgICAgICAgICAgICBWTUxBTCAgIHFUMSxkWHIzLGRXM1sxXSAgICAgICAgICAgICAgICAgICAgICAgQC8vIGltYWcgcGFydAorICAgICAgICAKKyAgICAgICAgLmVuZGlmCisgICAgICAgIAorICAgICAgICBWUlNIUk4gIGRacjIscVQyLCMzMQorICAgICAgICBWUlNIUk4gIGRaaTIscVQzLCMzMQorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIFZSU0hSTiAgZFpyMyxxVDAsIzMxCisgICAgICAgIFZSU0hSTiAgZFppMyxxVDEsIzMxCisgICAgICAgIFZMRDIgICAge2RYcjMsZFhpM30sW3BTcmNdLHNldFN0ZXAgICAgICAgICAgICBALy8gIGRhdGFbM10gJiB1cGRhdGUgcFNyYyB0byBkYXRhWzBdCisgICAgICAgIAorICAgICAgICAuaWZlcXMgIlxzY2FsZWQiLCAiVFJVRSIKKyAgICAgICAgCisgICAgICAgICAgICBALy8gZmluaXNoIGZpcnN0IHN0YWdlIG9mIDQgcG9pbnQgRkZUIAorICAgICAgICAgICAgVkhBREQgICAgcVkwLHFYMCxxWjIKKyAgICAgICAgICAgIFZIU1VCICAgIHFZMixxWDAscVoyCisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIFZMRDIgICAge2RYcjAsZFhpMH0sW3BTcmNdISAgICAgICAgICBALy8gIGRhdGFbMF0gZm9yIG5leHQgaXRlcmF0aW9uCisgICAgICAgICAgICBWSEFERCAgICBxWTEscVoxLHFaMworICAgICAgICAgICAgVkhTVUIgICAgcVkzLHFaMSxxWjMKKyAgICAgICAgICAgIAorICAgICAgICAgICAgQC8vIGZpbmlzaCBzZWNvbmQgc3RhZ2Ugb2YgNCBwb2ludCBGRlQgCisgICAgICAgICAgICAKKyAgICAgICAgICAgIFZIU1VCICAgIHFaMCxxWTIscVkxCisgICAgICAgICAgICAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLmlmZXFzICAiXGludmVyc2UiLCAiVFJVRSIKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWSEFERCAgICBkWnIzLGRZcjAsZFlpMworICAgICAgICAgICAgICAgIFZTVDIgICAge2RacjAsZFppMH0sW3BEc3QgOjEyOF0sb3V0UG9pbnRTdGVwCisgICAgICAgICAgICAgICAgVkhTVUIgICAgZFppMyxkWWkwLGRZcjMKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWSEFERCAgICBxWjIscVkyLHFZMQorICAgICAgICAgICAgICAgIFZTVDIgICAge2RacjMsZFppM30sW3BEc3QgOjEyOF0sb3V0UG9pbnRTdGVwCisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWSFNVQiAgICBkWnIxLGRZcjAsZFlpMworICAgICAgICAgICAgICAgIFZTVDIgICAge2RacjIsZFppMn0sW3BEc3QgOjEyOF0sb3V0UG9pbnRTdGVwCisgICAgICAgICAgICAgICAgVkhBREQgICAgZFppMSxkWWkwLGRZcjMKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFZTVDIgICAge2RacjEsZFppMX0sW3BEc3QgOjEyOF0sZHN0U3RlcAorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgLmVsc2UKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWSFNVQiAgICBkWnIxLGRZcjAsZFlpMworICAgICAgICAgICAgICAgIFZTVDIgICAge2RacjAsZFppMH0sW3BEc3QgOjEyOF0sb3V0UG9pbnRTdGVwCisgICAgICAgICAgICAgICAgVkhBREQgICAgZFppMSxkWWkwLGRZcjMKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFZIQUREICAgIHFaMixxWTIscVkxCisgICAgICAgICAgICAgICAgVlNUMiAgICB7ZFpyMSxkWmkxfSxbcERzdCA6MTI4XSxvdXRQb2ludFN0ZXAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFZIQUREICAgIGRacjMsZFlyMCxkWWkzCisgICAgICAgICAgICAgICAgVlNUMiAgICB7ZFpyMixkWmkyfSxbcERzdCA6MTI4XSxvdXRQb2ludFN0ZXAKKyAgICAgICAgICAgICAgICBWSFNVQiAgICBkWmkzLGRZaTAsZFlyMworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVlNUMiAgICB7ZFpyMyxkWmkzfSxbcERzdCA6MTI4XSxkc3RTdGVwCisKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLmVuZGlmCisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgLmVsc2UKKyAgICAgICAgCisgICAgICAgICAgICBALy8gZmluaXNoIGZpcnN0IHN0YWdlIG9mIDQgcG9pbnQgRkZUIAorICAgICAgICAgICAgVkFERCAgICBxWTAscVgwLHFaMgorICAgICAgICAgICAgVlNVQiAgICBxWTIscVgwLHFaMgorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBWTEQyICAgIHtkWHIwLGRYaTB9LFtwU3JjIDoxMjhdISAgICAgICAgICBALy8gIGRhdGFbMF0gZm9yIG5leHQgaXRlcmF0aW9uCisgICAgICAgICAgICBWQUREICAgIHFZMSxxWjEscVozCisgICAgICAgICAgICBWU1VCICAgIHFZMyxxWjEscVozCisgICAgICAgICAgICAKKyAgICAgICAgICAgIEAvLyBmaW5pc2ggc2Vjb25kIHN0YWdlIG9mIDQgcG9pbnQgRkZUIAorICAgICAgICAgICAgCisgICAgICAgICAgICBWU1VCICAgIHFaMCxxWTIscVkxCisgICAgICAgICAgICAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLmlmZXFzICAiXGludmVyc2UiLCAiVFJVRSIKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWQUREICAgIGRacjMsZFlyMCxkWWkzCisgICAgICAgICAgICAgICAgVlNUMiAgICB7ZFpyMCxkWmkwfSxbcERzdCA6MTI4XSxvdXRQb2ludFN0ZXAKKyAgICAgICAgICAgICAgICBWU1VCICAgIGRaaTMsZFlpMCxkWXIzCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVkFERCAgICBxWjIscVkyLHFZMQorICAgICAgICAgICAgICAgIFZTVDIgICAge2RacjMsZFppM30sW3BEc3QgOjEyOF0sb3V0UG9pbnRTdGVwCisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWU1VCICAgIGRacjEsZFlyMCxkWWkzCisgICAgICAgICAgICAgICAgVlNUMiAgICB7ZFpyMixkWmkyfSxbcERzdCA6MTI4XSxvdXRQb2ludFN0ZXAKKyAgICAgICAgICAgICAgICBWQUREICAgIGRaaTEsZFlpMCxkWXIzCisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWU1QyICAgIHtkWnIxLGRaaTF9LFtwRHN0IDoxMjhdLGRzdFN0ZXAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIC5lbHNlCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVlNVQiAgICBkWnIxLGRZcjAsZFlpMworICAgICAgICAgICAgICAgIFZTVDIgICAge2RacjAsZFppMH0sW3BEc3QgOjEyOF0sb3V0UG9pbnRTdGVwCisgICAgICAgICAgICAgICAgVkFERCAgICBkWmkxLGRZaTAsZFlyMworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVkFERCAgICBxWjIscVkyLHFZMQorICAgICAgICAgICAgICAgIFZTVDIgICAge2RacjEsZFppMX0sW3BEc3QgOjEyOF0sb3V0UG9pbnRTdGVwCisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWQUREICAgIGRacjMsZFlyMCxkWWkzCisgICAgICAgICAgICAgICAgVlNUMiAgICB7ZFpyMixkWmkyfSxbcERzdCA6MTI4XSxvdXRQb2ludFN0ZXAKKyAgICAgICAgICAgICAgICBWU1VCICAgIGRaaTMsZFlpMCxkWXIzCisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWU1QyICAgIHtkWnIzLGRaaTN9LFtwRHN0IDoxMjhdLGRzdFN0ZXAKKworICAgICAgICAgICAgCisgICAgICAgICAgICAuZW5kaWYKKyAgICAgICAgICAgIAorICAgICAgICAuZW5kaWYKKyAgICAgICAgCisgICAgICAgIEFERCAgICAgcFNyYyxwU3JjLHBvaW50U3RlcCAgICAgICAgICAgICAgICAgICAgICAgICBALy8gaW5jcmVtZW50IHRvIGRhdGFbMV0gb2YgdGhlIG5leHQgc2V0ICAgICAgICAgICAgICAKKyAgICAgICAgQkdUICAgICBzZXRMb29wXG5hbWUKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBWTEQxICAgICBkVzEsW3BUd2lkZGxlIDo2NF0sc3RlcFR3aWRkbGUgICAgICAgICAgICAgICAgICBALy9bd2kgfCB3cl0KKyAgICAgICAgU1VCUyAgICBncnBDb3VudCxncnBDb3VudCwjNCAgICAgICAgICAgICAgICAgICAgQC8vIHN1YnRyYWN0IDQgc2luY2UgZ3JwQ291bnQgbXVsdGlwbGllZCBieSA0ICAgICAgICAgICAgICAgCisgICAgICAgIFZMRDEgICAgIGRXMixbcFR3aWRkbGUgOjY0XSxzdGVwVHdpZGRsZSAgICAgICAgICAgICAgICAgIEAvL1t3aSB8IHdyXQorICAgICAgICBBREQgICAgIHBTcmMscFNyYyxzcmNTdGVwICAgICAgICAgICAgICAgICAgICAgICBALy8gaW5jcmVtZW50IHBTcmMgZm9yIHRoZSBuZXh0IGdycAorICAgICAgICBWTEQxICAgICBkVzMsW3BUd2lkZGxlIDo2NF0sdHdTdGVwICAgICAgICAgICAgICAgICAgICAgICBALy9bd2kgfCB3cl0KKyAgICAgICAgQkdUICAgICBncnBMb29wXG5hbWUKKworICAgICAgICAgICAgICAgIAorICAgICAgICBALy8gUmVzZXQgYW5kIFN3YXAgcFNyYyBhbmQgcERzdCBmb3IgdGhlIG5leHQgc3RhZ2UKKyAgICAgICAgTU9WICAgICB0MSxwRHN0CisgICAgICAgIFNVQiAgICAgcERzdCxwU3JjLG91dFBvaW50U3RlcCxMU0wgIzIgICAgICAgICAgICAgICAgICBALy8gcERzdCAtPSAyKnNpemU7IHBTcmMgLT0gOCpzaXplIGJ5dGVzICAgICAgICAgICAKKyAgICAgICAgU1VCICAgICBwU3JjLHQxLG91dFBvaW50U3RlcCAgICAKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICAuZW5kbQorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIE1fU1RBUlQgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9SYWRpeDRfT3V0T2ZQbGFjZV91bnNhZmUscjQKKyAgICAgICAgICAgIEZGVFNUQUdFICJGQUxTRSIsIkZBTFNFIixGV0QKKyAgICAgICAgTV9FTkQKKworICAgICAgICAKKyAgICAgICAgTV9TVEFSVCBhcm1TUF9GRlRJbnZfQ1RvQ19TQzMyX1JhZGl4NF9PdXRPZlBsYWNlX3Vuc2FmZSxyNAorICAgICAgICAgICAgRkZUU1RBR0UgIkZBTFNFIiwiVFJVRSIsSU5WCisgICAgICAgIE1fRU5ECisgCisgICAgICAgIAorICAgICAgICBNX1NUQVJUIGFybVNQX0ZGVEZ3ZF9DVG9DX1NDMzJfU2ZzX1JhZGl4NF9PdXRPZlBsYWNlX3Vuc2FmZSxyNAorICAgICAgICAgICAgRkZUU1RBR0UgIlRSVUUiLCJGQUxTRSIsRldEU0ZTCisgICAgICAgIE1fRU5ECisKKyAgICAgICAgCisgICAgICAgIE1fU1RBUlQgYXJtU1BfRkZUSW52X0NUb0NfU0MzMl9TZnNfUmFkaXg0X091dE9mUGxhY2VfdW5zYWZlLHI0CisgICAgICAgICAgICBGRlRTVEFHRSAiVFJVRSIsIlRSVUUiLElOVlNGUworICAgICAgICBNX0VORAorCisgICAgICAgIAorCS5lbmQKZGlmZiAtLWdpdCBhL2RsL2FybVNQX0ZGVF9DVG9DX1NDMzJfUmFkaXg4X2ZzX3Vuc2FmZV9zLlMgYi9kbC9hcm1TUF9GRlRfQ1RvQ19TQzMyX1JhZGl4OF9mc191bnNhZmVfcy5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmZDhkOWIKLS0tIC9kZXYvbnVsbAorKysgYi9kbC9hcm1TUF9GRlRfQ1RvQ19TQzMyX1JhZGl4OF9mc191bnNhZmVfcy5TCkBAIC0wLDAgKzEsNTk1IEBACitALy8KK0AvLyAgQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorQC8vCitALy8gIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKK0AvLyAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCitALy8gIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKK0AvLyAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorQC8vICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KK0AvLworQC8vICBUaGlzIGZpbGUgd2FzIG9yaWdpbmFsbHkgbGljZW5zZWQgYXMgZm9sbG93cy4gSXQgaGFzIGJlZW4KK0AvLyAgcmVsaWNlbnNlZCB3aXRoIHBlcm1pc3Npb24gZnJvbSB0aGUgY29weXJpZ2h0IGhvbGRlcnMuCitALy8KKworQC8vIAorQC8vIEZpbGUgTmFtZTogIGFybVNQX0ZGVF9DVG9DX1NDMzJfUmFkaXg4X2ZzX3Vuc2FmZV9zLnMKK0AvLyBPcGVuTUFYIERMOiB2MS4wLjIKK0AvLyBMYXN0IE1vZGlmaWVkIFJldmlzaW9uOiAgIDc3NzAKK0AvLyBMYXN0IE1vZGlmaWVkIERhdGU6ICAgICAgIFRodSwgMjcgU2VwIDIwMDcKK0AvLyAKK0AvLyAoYykgQ29weXJpZ2h0IDIwMDctMjAwOCBBUk0gTGltaXRlZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KK0AvLyAKK0AvLyAKK0AvLworQC8vIERlc2NyaXB0aW9uOgorQC8vIENvbXB1dGUgYSBmaXJzdCBzdGFnZSBSYWRpeCA4IEZGVCBzdGFnZSBmb3IgYSBOIHBvaW50IGNvbXBsZXggc2lnbmFsCitALy8gCisKKworCisgICAgICAgIAorQC8vIEluY2x1ZGUgc3RhbmRhcmQgaGVhZGVycworCisjaW5jbHVkZSAib214dHlwZXNfcy5oIgorI2luY2x1ZGUgImFybUNPTU1fcy5oIgorICAgICAgICAKK0AvLyBJbXBvcnQgc3ltYm9scyByZXF1aXJlZCBmcm9tIG90aGVyIGZpbGVzCitALy8gKEZvciBleGFtcGxlIHRhYmxlcykKKyAgICAKKyAgICAgICAgCitALy8gU2V0IGRlYnVnZ2luZyBsZXZlbCAgICAgICAgCitALy9ERUJVR19PTiAgICBTRVRMIHtUUlVFfQorCisKKworQC8vIEd1YXJkaW5nIGltcGxlbWVudGF0aW9uIGJ5IHRoZSBwcm9jZXNzb3IgbmFtZQorICAgIAorICAgIAorICAgIAorICAgIAorQC8vIEd1YXJkaW5nIGltcGxlbWVudGF0aW9uIGJ5IHRoZSBwcm9jZXNzb3IgbmFtZQorICAgIAorQC8vSW5wdXQgUmVnaXN0ZXJzCisKKyNkZWZpbmUgcFNyYwkJcjAKKyNkZWZpbmUgcERzdAkJcjIKKyNkZWZpbmUgcFR3aWRkbGUJcjEKKyNkZWZpbmUgc3ViRkZUTnVtCXI2CisjZGVmaW5lIHN1YkZGVFNpemUJcjcKK0AvLyBkZXN0IGJ1ZmZlciBmb3IgdGhlIG5leHQgc3RhZ2UgKG5vdCBwU3JjIGZvciBmaXJzdCBzdGFnZSkgCQorI2RlZmluZSBwUGluZ1BvbmdCdWYJcjUKKworCitALy9PdXRwdXQgUmVnaXN0ZXJzCisKKworQC8vTG9jYWwgU2NyYXRjaCBSZWdpc3RlcnMKKworI2RlZmluZSBncnBTaXplCQlyMworQC8vIFJldXNlIGdycFNpemUgYXMgc2V0Q291bnQJCisjZGVmaW5lIHNldENvdW50CXIzCisjZGVmaW5lIHBvaW50U3RlcAlyNAorI2RlZmluZSBvdXRQb2ludFN0ZXAJcjQKKyNkZWZpbmUgc2V0U3RlcAkJcjgKKyNkZWZpbmUgc3RlcDEJCXI5CisjZGVmaW5lIHN0ZXAyCQlyMTAKKyNkZWZpbmUgdDAJCXIxMQorICAKKworQC8vIE5lb24gUmVnaXN0ZXJzCisKKyNkZWZpbmUgZFhyMAlEMC5TMzIKKyNkZWZpbmUgZFhpMAlEMS5TMzIKKyNkZWZpbmUgZFhyMQlEMi5TMzIKKyNkZWZpbmUgZFhpMQlEMy5TMzIKKyNkZWZpbmUgZFhyMglENC5TMzIKKyNkZWZpbmUgZFhpMglENS5TMzIKKyNkZWZpbmUgZFhyMwlENi5TMzIKKyNkZWZpbmUgZFhpMwlENy5TMzIKKyNkZWZpbmUgZFhyNAlEOC5TMzIKKyNkZWZpbmUgZFhpNAlEOS5TMzIKKyNkZWZpbmUgZFhyNQlEMTAuUzMyCisjZGVmaW5lIGRYaTUJRDExLlMzMgorI2RlZmluZSBkWHI2CUQxMi5TMzIKKyNkZWZpbmUgZFhpNglEMTMuUzMyCisjZGVmaW5lIGRYcjcJRDE0LlMzMgorI2RlZmluZSBkWGk3CUQxNS5TMzIKKyNkZWZpbmUgcVgwCVEwLlMzMgorI2RlZmluZSBxWDEJUTEuUzMyCisjZGVmaW5lIHFYMglRMi5TMzIKKyNkZWZpbmUgcVgzCVEzLlMzMiAgIAorI2RlZmluZSBxWDQJUTQuUzMyCisjZGVmaW5lIHFYNQlRNS5TMzIKKyNkZWZpbmUgcVg2CVE2LlMzMgorI2RlZmluZSBxWDcJUTcuUzMyCisKKyNkZWZpbmUgZFVyMAlEMTYuUzMyCisjZGVmaW5lIGRVaTAJRDE3LlMzMgorI2RlZmluZSBkVXIyCUQxOC5TMzIKKyNkZWZpbmUgZFVpMglEMTkuUzMyCisjZGVmaW5lIGRVcjQJRDIwLlMzMgorI2RlZmluZSBkVWk0CUQyMS5TMzIKKyNkZWZpbmUgZFVyNglEMjIuUzMyCisjZGVmaW5lIGRVaTYJRDIzLlMzMgorI2RlZmluZSBkVXIxCUQyNC5TMzIKKyNkZWZpbmUgZFVpMQlEMjUuUzMyCisjZGVmaW5lIGRVcjMJRDI2LlMzMgorI2RlZmluZSBkVWkzCUQyNy5TMzIKKyNkZWZpbmUgZFVyNQlEMjguUzMyCisjZGVmaW5lIGRVaTUJRDI5LlMzMgorQC8vIHJldXNlIGRYcjcgYW5kIGRYaTcJCisjZGVmaW5lIGRVcjcJRDMwLlMzMgorI2RlZmluZSBkVWk3CUQzMS5TMzIKKyNkZWZpbmUgcVUwCVE4LlMzMgorI2RlZmluZSBxVTEJUTEyLlMzMgorI2RlZmluZSBxVTIJUTkuUzMyCisjZGVmaW5lIHFVMwlRMTMuUzMyICAgCisjZGVmaW5lIHFVNAlRMTAuUzMyCisjZGVmaW5lIHFVNQlRMTQuUzMyCisjZGVmaW5lIHFVNglRMTEuUzMyCisjZGVmaW5lIHFVNwlRMTUuUzMyCisKKworCisjZGVmaW5lIGRWcjAJRDI0LlMzMgorI2RlZmluZSBkVmkwCUQyNS5TMzIKKyNkZWZpbmUgZFZyMglEMjYuUzMyCisjZGVmaW5lIGRWaTIJRDI3LlMzMgorI2RlZmluZSBkVnI0CUQyOC5TMzIKKyNkZWZpbmUgZFZpNAlEMjkuUzMyCisjZGVmaW5lIGRWcjYJRDMwLlMzMgorI2RlZmluZSBkVmk2CUQzMS5TMzIKKyNkZWZpbmUgZFZyMQlEMTYuUzMyCisjZGVmaW5lIGRWaTEJRDE3LlMzMgorI2RlZmluZSBkVnIzCUQxOC5TMzIKKyNkZWZpbmUgZFZpMwlEMTkuUzMyCisjZGVmaW5lIGRWcjUJRDIwLlMzMgorI2RlZmluZSBkVmk1CUQyMS5TMzIKKyNkZWZpbmUgZFZyNwlEMjIuUzMyICAgICAgICAgICAgICAKKyNkZWZpbmUgZFZpNwlEMjMuUzMyICAgICAgICAgICAgICAKKyNkZWZpbmUgcVYwCVExMi5TMzIKKyNkZWZpbmUgcVYxCVE4LlMzMgorI2RlZmluZSBxVjIJUTEzLlMzMgorI2RlZmluZSBxVjMJUTkuUzMyICAgCisjZGVmaW5lIHFWNAlRMTQuUzMyCisjZGVmaW5lIHFWNQlRMTAuUzMyCisjZGVmaW5lIHFWNglRMTUuUzMyCisjZGVmaW5lIHFWNwlRMTEuUzMyCisKKworCisjZGVmaW5lIGRZcjAJRDE2LlMzMgorI2RlZmluZSBkWWkwCUQxNy5TMzIKKyNkZWZpbmUgZFlyMglEMTguUzMyCisjZGVmaW5lIGRZaTIJRDE5LlMzMgorI2RlZmluZSBkWXI0CUQyMC5TMzIKKyNkZWZpbmUgZFlpNAlEMjEuUzMyCisjZGVmaW5lIGRZcjYJRDIyLlMzMgorI2RlZmluZSBkWWk2CUQyMy5TMzIKKyNkZWZpbmUgZFlyMQlEMjQuUzMyCisjZGVmaW5lIGRZaTEJRDI1LlMzMgorI2RlZmluZSBkWXIzCUQyNi5TMzIKKyNkZWZpbmUgZFlpMwlEMjcuUzMyCisjZGVmaW5lIGRZcjUJRDI4LlMzMgorI2RlZmluZSBkWWk1CUQyOS5TMzIKKyNkZWZpbmUgZFlyNwlEMzAuUzMyICAgICAgICAgICAgICAgICAKKyNkZWZpbmUgZFlpNwlEMzEuUzMyCisjZGVmaW5lIHFZMAlROC5TMzIKKyNkZWZpbmUgcVkxCVExMi5TMzIKKyNkZWZpbmUgcVkyCVE5LlMzMgorI2RlZmluZSBxWTMJUTEzLlMzMiAgIAorI2RlZmluZSBxWTQJUTEwLlMzMgorI2RlZmluZSBxWTUJUTE0LlMzMgorI2RlZmluZSBxWTYJUTExLlMzMgorI2RlZmluZSBxWTcJUTE1LlMzMgorCisKKyNkZWZpbmUgZFQwCUQxNC5TMzIgICAgICAgICAgICAgCisjZGVmaW5lIGRUMQlEMTUuUzMyCisKK0AvLyBEZWZpbmUgY29uc3RhbnRzCisJLnNldCBPTkVCWVNRUlQyLCAweDVBODI3OTlBICAgICAgICBALy8gUTMxIGZvcm1hdAorICAgIAorCisgICAgICAgIC5NQUNSTyBGRlRTVEFHRSBzY2FsZWQsIGludmVyc2UsIG5hbWUKKyAgICAgICAgCisgICAgICAgIEAvLyBEZWZpbmUgc3RhY2sgYXJndW1lbnRzCisgICAgICAgIAorICAgICAgICBALy8gVXBkYXRlIHBTdWJGRlRTaXplIGFuZCBwU3ViRkZUTnVtIHJlZ3MKKyAgICAgICAgTU9WICAgICBzdWJGRlRTaXplLCM4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyBzdWJGRlRTaXplID0gMSBmb3IgdGhlIGZpcnN0IHN0YWdlCisgICAgICAgIExEUiAgICAgdDAsPU9ORUJZU1FSVDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBALy8gdDA9KDEvc3FydCgyKSkgYXMgUTMxIHZhbHVlIAorICAgICAgICAKKyAgICAgICAgQC8vIE5vdGU6IHNldENvdW50ID0gc3ViRkZUTnVtLzggKHJldXNlIHRoZSBncnBTaXplIHJlZyBmb3Igc2V0Q291bnQpCisgICAgICAgIExTUiAgICAgZ3JwU2l6ZSxzdWJGRlROdW0sIzMgIAorICAgICAgICBNT1YgICAgIHN1YkZGVE51bSxncnBTaXplCisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICBALy8gcFQwKzEgaW5jcmVtZW50cyBwVDAgYnkgOCBieXRlcworICAgICAgICBALy8gcFQwK3BvaW50U3RlcCA9IGluY3JlbWVudCBvZiA4KnBvaW50U3RlcCBieXRlcyA9IGdycFNpemUgYnl0ZXMKKyAgICAgICAgQC8vIE5vdGU6IG91dFBvaW50U3RlcCA9IHBvaW50U3RlcCBmb3IgZmlyc3RzdGFnZQorICAgICAgICAKKyAgICAgICAgTU9WICAgICBwb2ludFN0ZXAsZ3JwU2l6ZSxMU0wgIzMKKyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgQC8vIENhbGN1bGF0ZSB0aGUgc3RlcCBvZiBpbnB1dCBkYXRhIGZvciB0aGUgbmV4dCBzZXQKKyAgICAgICAgQC8vTU9WICAgICBzdGVwMSxwb2ludFN0ZXAsTFNMICMxICAgICAgICAgICAgICAgICAgICAgIEAvLyBzdGVwMSA9IDIqcG9pbnRTdGVwCisgICAgICAgIFZMRDIgICAge2RYcjAsZFhpMH0sW3BTcmMgOjEyOF0scG9pbnRTdGVwICAgICAgICAgIEAvLyAgZGF0YVswXQorICAgICAgICBNT1YgICAgIHN0ZXAxLGdycFNpemUsTFNMICM0CisgICAgICAgIAorICAgICAgICBNT1YgICAgIHN0ZXAyLHBvaW50U3RlcCxMU0wgIzMKKyAgICAgICAgVkxEMiAgICB7ZFhyMSxkWGkxfSxbcFNyYyA6MTI4XSxwb2ludFN0ZXAgICAgICAgICAgQC8vICBkYXRhWzFdCisgICAgICAgIFNVQiAgICAgc3RlcDIsc3RlcDIscG9pbnRTdGVwICAgICAgICAgICAgICAgICAgICAgICAgICBALy8gc3RlcDIgPSA3KnBvaW50U3RlcAorICAgICAgICBSU0IgICAgIHNldFN0ZXAsc3RlcDIsIzE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQC8vIHNldFN0ZXAgPSAtIDcqcG9pbnRTdGVwKzE2CisgICAgICAgIAorICAgICAgICBWTEQyICAgIHtkWHIyLGRYaTJ9LFtwU3JjIDoxMjhdLHBvaW50U3RlcCAgICAgICAgICBALy8gIGRhdGFbMl0KKyAgICAgICAgVkxEMiAgICB7ZFhyMyxkWGkzfSxbcFNyYyA6MTI4XSxwb2ludFN0ZXAgICAgICAgICAgQC8vICBkYXRhWzNdIAorICAgICAgICBWTEQyICAgIHtkWHI0LGRYaTR9LFtwU3JjIDoxMjhdLHBvaW50U3RlcCAgICAgICAgICBALy8gIGRhdGFbNF0KKyAgICAgICAgVkxEMiAgICB7ZFhyNSxkWGk1fSxbcFNyYyA6MTI4XSxwb2ludFN0ZXAgICAgICAgICAgQC8vICBkYXRhWzVdCisgICAgICAgIFZMRDIgICAge2RYcjYsZFhpNn0sW3BTcmMgOjEyOF0scG9pbnRTdGVwICAgICAgICAgIEAvLyAgZGF0YVs2XQorICAgICAgICBWTEQyICAgIHtkWHI3LGRYaTd9LFtwU3JjIDoxMjhdLHNldFN0ZXAgICAgICAgICAgICBALy8gIGRhdGFbN10gJiB1cGRhdGUgcFNyYyBmb3IgdGhlIG5leHQgc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBALy8gIHNldFN0ZXAgPSAtNypwb2ludFN0ZXAgKyAxNiAgCisgICAgICAgIEAvLyBncnAgPSAwIGEgc3BlY2lhbCBjYXNlIHNpbmNlIGFsbCB0aGUgdHdpZGRsZSBmYWN0b3JzIGFyZSAxCisgICAgICAgIEAvLyBMb29wIG9uIHRoZSBzZXRzCisKK2dycFplcm9TZXRMb29wXG5hbWUgOgkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBALy8gRGVjcmVtZW50IHNldGNvdW50CisgICAgICAgIFNVQlMgICAgc2V0Q291bnQsc2V0Q291bnQsIzIgICAgICAgICAgICAgICAgICAgIEAvLyBkZWNyZW1lbnQgdGhlIHNldCBsb29wIGNvdW50ZXIgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAKKyAgICAgICAgLmlmZXFzCSJcc2NhbGVkIiwgIlRSVUUiCisgICAgICAgICAgICBALy8gZmluaXNoIGZpcnN0IHN0YWdlIG9mIDggcG9pbnQgRkZUIAorICAgICAgICAgICAgCisgICAgICAgICAgICBWSEFERCAgICBxVTAscVgwLHFYNAorICAgICAgICAgICAgVkhBREQgICAgcVUyLHFYMSxxWDUKKyAgICAgICAgICAgIFZIQUREICAgIHFVNCxxWDIscVg2CisgICAgICAgICAgICBWSEFERCAgICBxVTYscVgzLHFYNworICAgICAgICAgICAgCisgICAgICAgICAgICBALy8gZmluaXNoIHNlY29uZCBzdGFnZSBvZiA4IHBvaW50IEZGVCAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgVkhBREQgICAgcVYwLHFVMCxxVTQKKyAgICAgICAgICAgIFZIU1VCICAgIHFWMixxVTAscVU0CisgICAgICAgICAgICBWSEFERCAgICBxVjQscVUyLHFVNgorICAgICAgICAgICAgVkhTVUIgICAgcVY2LHFVMixxVTYKKyAgICAgICAgICAgIAorICAgICAgICAgICAgQC8vIGZpbmlzaCB0aGlyZCBzdGFnZSBvZiA4IHBvaW50IEZGVCAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgVkhBREQgICAgcVkwLHFWMCxxVjQKKyAgICAgICAgICAgIFZIU1VCICAgIHFZNCxxVjAscVY0CisgICAgICAgICAgICBWU1QyICAgIHtkWXIwLGRZaTB9LFtwRHN0IDoxMjhdLHN0ZXAxICAgICAgICAgICAgICAgICAgICBALy8gc3RvcmUgeTAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLmlmZXFzCSJcaW52ZXJzZSIsICJUUlVFIgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFZIU1VCICAgIGRZcjIsZFZyMixkVmk2CisgICAgICAgICAgICAgICAgVkhBREQgICAgZFlpMixkVmkyLGRWcjYKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWSEFERCAgICBkWXI2LGRWcjIsZFZpNgorICAgICAgICAgICAgICAgIFZTVDIgICAge2RZcjIsZFlpMn0sW3BEc3QgOjEyOF0sc3RlcDEgICAgICAgICAgICAgICAgICAgIEAvLyBzdG9yZSB5MgorICAgICAgICAgICAgICAgIFZIU1VCICAgIGRZaTYsZFZpMixkVnI2CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWSFNVQiAgICBxVTEscVgwLHFYNCAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVlNUMiAgICB7ZFlyNCxkWWk0fSxbcERzdCA6MTI4XSxzdGVwMSAgICAgICAgICAgICAgICAgICAgQC8vIHN0b3JlIHk0CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWSFNVQiAgICBxVTMscVgxLHFYNQorICAgICAgICAgICAgICAgIFZIU1VCICAgIHFVNSxxWDIscVg2CisgICAgICAgICAgICAgICAgVlNUMiAgICB7ZFlyNixkWWk2fSxbcERzdCA6MTI4XSxzdGVwMSAgICAgICAgICAgICAgICAgICAgQC8vIHN0b3JlIHk2CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC5FTFNFCisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWSEFERCAgICBkWXI2LGRWcjIsZFZpNgorICAgICAgICAgICAgICAgIFZIU1VCICAgIGRZaTYsZFZpMixkVnI2CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVkhTVUIgICAgZFlyMixkVnIyLGRWaTYKKyAgICAgICAgICAgICAgICBWU1QyICAgIHtkWXI2LGRZaTZ9LFtwRHN0IDoxMjhdLHN0ZXAxICAgICAgICAgICAgICAgICAgICBALy8gc3RvcmUgeTIKKyAgICAgICAgICAgICAgICBWSEFERCAgICBkWWkyLGRWaTIsZFZyNgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWSFNVQiAgICBxVTEscVgwLHFYNAorICAgICAgICAgICAgICAgIFZTVDIgICAge2RZcjQsZFlpNH0sW3BEc3QgOjEyOF0sc3RlcDEgICAgICAgICAgICAgICAgICAgIEAvLyBzdG9yZSB5NAorICAgICAgICAgICAgICAgIFZIU1VCICAgIHFVMyxxWDEscVg1CisgICAgICAgICAgICAgICAgVkhTVUIgICAgcVU1LHFYMixxWDYKKyAgICAgICAgICAgICAgICBWU1QyICAgIHtkWXIyLGRZaTJ9LFtwRHN0IDoxMjhdLHN0ZXAxICAgICAgICAgICAgICAgICAgICBALy8gc3RvcmUgeTYKKworICAgICAgICAgICAgCisgICAgICAgICAgICAuRU5ESUYKKyAgICAgICAgICAgIAorICAgICAgICAgICAgQC8vIGZpbmlzaCBmaXJzdCBzdGFnZSBvZiA4IHBvaW50IEZGVCAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgVkhTVUIgICAgcVU3LHFYMyxxWDcKKyAgICAgICAgICAgIFZNT1YgICAgZFQwWzBdLHQwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgQC8vIGZpbmlzaCBzZWNvbmQgc3RhZ2Ugb2YgOCBwb2ludCBGRlQgCisgICAgICAgICAgICAKKyAgICAgICAgICAgIFZIU1VCICAgIGRWcjEsZFVyMSxkVWk1CisgICAgICAgICAgICBWTEQyICAgIHtkWHIwLGRYaTB9LFtwU3JjIDoxMjhdLHBvaW50U3RlcCAgICAgICAgICBALy8gIGRhdGFbMF0gZm9yIG5leHQgaXRlcmF0aW9uCisgICAgICAgICAgICBWSEFERCAgICBkVmkxLGRVaTEsZFVyNQorICAgICAgICAgICAgVkhBREQgICAgZFZyMyxkVXIxLGRVaTUKKyAgICAgICAgICAgIFZMRDIgICAge2RYcjEsZFhpMX0sW3BTcmMgOjEyOF0scG9pbnRTdGVwICAgICAgICAgIEAvLyAgZGF0YVsxXQorICAgICAgICAgICAgVkhTVUIgICAgZFZpMyxkVWkxLGRVcjUKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgVkhTVUIgICAgZFZyNSxkVXIzLGRVaTcKKyAgICAgICAgICAgIFZMRDIgICAge2RYcjIsZFhpMn0sW3BTcmMgOjEyOF0scG9pbnRTdGVwICAgICAgICAgIEAvLyAgZGF0YVsyXQorICAgICAgICAgICAgVkhBREQgICAgZFZpNSxkVWkzLGRVcjcKKyAgICAgICAgICAgIFZIQUREICAgIGRWcjcsZFVyMyxkVWk3CisgICAgICAgICAgICBWTEQyICAgIHtkWHIzLGRYaTN9LFtwU3JjIDoxMjhdLHBvaW50U3RlcCAgICAgICAgICBALy8gIGRhdGFbM10KKyAgICAgICAgICAgIFZIU1VCICAgIGRWaTcsZFVpMyxkVXI3CisgICAgICAgICAgICAKKyAgICAgICAgICAgIEAvLyBmaW5pc2ggdGhpcmQgc3RhZ2Ugb2YgOCBwb2ludCBGRlQgCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC5pZmVxcwkiXGludmVyc2UiLCAiVFJVRSIKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIEAvLyBjYWxjdWxhdGUgYSp2NSAKKyAgICAgICAgICAgICAgICBWUVJETVVMSCAgICBkVDEsZFZyNSxkVDBbMF0gICAgICAgICAgICAgICAgICAgICAgICAgQC8vIHVzZSBkVmkwIGZvciBkVDEKKyAgICAgICAgICAgICAgICBWTEQyICAgIHtkWHI0LGRYaTR9LFtwU3JjIDoxMjhdLHBvaW50U3RlcCAgICAgICAgICBALy8gIGRhdGFbNF0KKyAgICAgICAgICAgICAgICBWUVJETVVMSCAgICBkVmk1LGRWaTUsZFQwWzBdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVkxEMiAgICB7ZFhyNSxkWGk1fSxbcFNyYyA6MTI4XSxwb2ludFN0ZXAgICAgICAgICAgQC8vICBkYXRhWzVdCisgICAgICAgICAgICAgICAgVlNVQiAgICBkVnI1LGRUMSxkVmk1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyBhICogVjUKKyAgICAgICAgICAgICAgICBWQUREICAgIGRWaTUsZFQxLGRWaTUKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWTEQyICAgIHtkWHI2LGRYaTZ9LFtwU3JjIDoxMjhdLHBvaW50U3RlcCAgICAgICAgICBALy8gIGRhdGFbNl0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBALy8gY2FsY3VsYXRlICBiKnY3CisgICAgICAgICAgICAgICAgVlFSRE1VTEggICAgZFQxLGRWcjcsZFQwWzBdCisgICAgICAgICAgICAgICAgVlFSRE1VTEggICAgZFZpNyxkVmk3LGRUMFswXQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFZIQUREICAgIHFZMSxxVjEscVY1CisgICAgICAgICAgICAgICAgVkhTVUIgICAgcVk1LHFWMSxxVjUKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWQUREICAgIGRWcjcsZFQxLGRWaTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQC8vIGIgKiBWNworICAgICAgICAgICAgICAgIFZTVUIgICAgZFZpNyxkVmk3LGRUMQorICAgICAgICAgICAgICAgIFNVQiAgICAgcERzdCwgcERzdCwgc3RlcDIgICAgICAgICAgICAgICAgICAgICAgICAgICBALy8gc2V0IHBEc3QgdG8geTEKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWTEQyICAgIHtkWHI3LGRYaTd9LFtwU3JjIDoxMjhdLHNldFN0ZXAgICAgICAgICAgICBALy8gIGRhdGFbN10gICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWSFNVQiAgICBkWXIzLGRWcjMsZFZyNworICAgICAgICAgICAgICAgIFZIU1VCICAgIGRZaTMsZFZpMyxkVmk3CisgICAgICAgICAgICAgICAgVlNUMiAgICB7ZFlyMSxkWWkxfSxbcERzdCA6MTI4XSxzdGVwMSAgICAgICAgICAgICAgICAgICAgQC8vIHN0b3JlIHkxCisgICAgICAgICAgICAgICAgVkhBREQgICAgZFlyNyxkVnIzLGRWcjcKKyAgICAgICAgICAgICAgICBWSEFERCAgICBkWWk3LGRWaTMsZFZpNworCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVlNUMiAgICB7ZFlyMyxkWWkzfSxbcERzdCA6MTI4XSxzdGVwMSAgICAgICAgICAgICAgICAgICAgQC8vIHN0b3JlIHkzCisgICAgICAgICAgICAgICAgVlNUMiAgICB7ZFlyNSxkWWk1fSxbcERzdCA6MTI4XSxzdGVwMSAgICAgICAgICAgICAgICAgICAgQC8vIHN0b3JlIHk1CisgICAgICAgICAgICAgICAgVlNUMiAgICB7ZFlyNyxkWWk3fSxbcERzdCA6MTI4XSEgICAgICAgICAgICAgICAgICAgICAgQC8vIHN0b3JlIHk3CisKKyAgICAgICAgICAgIC5FTFNFCisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBALy8gY2FsY3VsYXRlICBiKnY3CisgICAgICAgICAgICAgICAgVlFSRE1VTEggICAgZFQxLGRWcjcsZFQwWzBdCisgICAgICAgICAgICAgICAgVkxEMiAgICB7ZFhyNCxkWGk0fSxbcFNyYyA6MTI4XSxwb2ludFN0ZXAgICAgICAgICAgQC8vICBkYXRhWzRdCisgICAgICAgICAgICAgICAgVlFSRE1VTEggICAgZFZpNyxkVmk3LGRUMFswXQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFZMRDIgICAge2RYcjUsZFhpNX0sW3BTcmMgOjEyOF0scG9pbnRTdGVwICAgICAgICAgIEAvLyAgZGF0YVs1XQorICAgICAgICAgICAgICAgIFZBREQgICAgZFZyNyxkVDEsZFZpNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBALy8gYiAqIFY3CisgICAgICAgICAgICAgICAgVlNVQiAgICBkVmk3LGRWaTcsZFQxCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVkxEMiAgICB7ZFhyNixkWGk2fSxbcFNyYyA6MTI4XSxwb2ludFN0ZXAgICAgICAgICAgQC8vICBkYXRhWzZdCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgQC8vIGNhbGN1bGF0ZSBhKnY1IAorICAgICAgICAgICAgICAgIFZRUkRNVUxIICAgIGRUMSxkVnI1LGRUMFswXSAgICAgICAgICAgICAgICAgICAgICAgICBALy8gdXNlIGRWaTAgZm9yIGRUMQorICAgICAgICAgICAgICAgIFZRUkRNVUxIICAgIGRWaTUsZFZpNSxkVDBbMF0KKworICAgICAgICAgICAgICAgIFZIQUREICAgIGRZcjcsZFZyMyxkVnI3CisgICAgICAgICAgICAgICAgVkhBREQgICAgZFlpNyxkVmkzLGRWaTcKKyAgICAgICAgICAgICAgICBTVUIgICAgIHBEc3QsIHBEc3QsIHN0ZXAyICAgICAgICAgICAgICAgICAgICAgICAgICAgQC8vIHNldCBwRHN0IHRvIHkxCisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWU1VCICAgIGRWcjUsZFQxLGRWaTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQC8vIGEgKiBWNQorICAgICAgICAgICAgICAgIFZBREQgICAgZFZpNSxkVDEsZFZpNQorICAgICAgICAgICAgICAgIFZMRDIgICAge2RYcjcsZFhpN30sW3BTcmMgOjEyOF0sc2V0U3RlcCAgICAgICAgICAgIEAvLyAgZGF0YVs3XSAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFZIU1VCICAgIHFZNSxxVjEscVY1CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVkhTVUIgICAgZFlyMyxkVnIzLGRWcjcKKyAgICAgICAgICAgICAgICBWU1QyICAgIHtkWXI3LGRZaTd9LFtwRHN0IDoxMjhdLHN0ZXAxICAgICAgICAgICAgICAgICAgICBALy8gc3RvcmUgeTEKKyAgICAgICAgICAgICAgICBWSFNVQiAgICBkWWkzLGRWaTMsZFZpNworICAgICAgICAgICAgICAgIFZIQUREICAgIHFZMSxxVjEscVY1CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVlNUMiAgICB7ZFlyNSxkWWk1fSxbcERzdCA6MTI4XSxzdGVwMSAgICAgICAgICAgICAgICAgICAgQC8vIHN0b3JlIHkzCisgICAgICAgICAgICAgICAgVlNUMiAgICB7ZFlyMyxkWWkzfSxbcERzdCA6MTI4XSxzdGVwMSAgICAgICAgICAgICAgICAgICAgQC8vIHN0b3JlIHk1CisgICAgICAgICAgICAgICAgVlNUMiAgICB7ZFlyMSxkWWkxfSxbcERzdCA6MTI4XSEgICAgICAgICAgICAgICAgICAgICAgQC8vIHN0b3JlIHk3CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC5FTkRJRgorICAgICAgICAgICAgCisgICAgICAgICAgICAKKyAgICAgICAgICAgCisgICAgICAgIC5FTFNFCisgICAgICAgICAgICBALy8gZmluaXNoIGZpcnN0IHN0YWdlIG9mIDggcG9pbnQgRkZUIAorICAgICAgICAgICAgCisgICAgICAgICAgICBWQUREICAgIHFVMCxxWDAscVg0CisgICAgICAgICAgICBWQUREICAgIHFVMixxWDEscVg1CisgICAgICAgICAgICBWQUREICAgIHFVNCxxWDIscVg2CisgICAgICAgICAgICBWQUREICAgIHFVNixxWDMscVg3CisgICAgICAgICAgICAKKyAgICAgICAgICAgIEAvLyBmaW5pc2ggc2Vjb25kIHN0YWdlIG9mIDggcG9pbnQgRkZUIAorICAgICAgICAgICAgCisgICAgICAgICAgICBWQUREICAgIHFWMCxxVTAscVU0CisgICAgICAgICAgICBWU1VCICAgIHFWMixxVTAscVU0CisgICAgICAgICAgICBWQUREICAgIHFWNCxxVTIscVU2CisgICAgICAgICAgICBWU1VCICAgIHFWNixxVTIscVU2CisgICAgICAgICAgICAKKyAgICAgICAgICAgIEAvLyBmaW5pc2ggdGhpcmQgc3RhZ2Ugb2YgOCBwb2ludCBGRlQgCisgICAgICAgICAgICAKKyAgICAgICAgICAgIFZBREQgICAgcVkwLHFWMCxxVjQKKyAgICAgICAgICAgIFZTVUIgICAgcVk0LHFWMCxxVjQKKyAgICAgICAgICAgIFZTVDIgICAge2RZcjAsZFlpMH0sW3BEc3QgOjEyOF0sc3RlcDEgICAgICAgICAgICAgICAgICAgIEAvLyBzdG9yZSB5MAorICAgICAgICAgICAgCisgICAgICAgICAgICAuaWZlcXMJIlxpbnZlcnNlIiwgIlRSVUUiCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVlNVQiAgICBkWXIyLGRWcjIsZFZpNgorICAgICAgICAgICAgICAgIFZBREQgICAgZFlpMixkVmkyLGRWcjYKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWQUREICAgIGRZcjYsZFZyMixkVmk2CisgICAgICAgICAgICAgICAgVlNUMiAgICB7ZFlyMixkWWkyfSxbcERzdCA6MTI4XSxzdGVwMSAgICAgICAgICAgICAgICAgICAgQC8vIHN0b3JlIHkyCisgICAgICAgICAgICAgICAgVlNVQiAgICBkWWk2LGRWaTIsZFZyNgorICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVlNVQiAgICBxVTEscVgwLHFYNCAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVlNUMiAgICB7ZFlyNCxkWWk0fSxbcERzdCA6MTI4XSxzdGVwMSAgICAgICAgICAgICAgICAgICAgQC8vIHN0b3JlIHk0CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWU1VCICAgIHFVMyxxWDEscVg1CisgICAgICAgICAgICAgICAgVlNVQiAgICBxVTUscVgyLHFYNgorICAgICAgICAgICAgICAgIFZTVDIgICAge2RZcjYsZFlpNn0sW3BEc3QgOjEyOF0sc3RlcDEgICAgICAgICAgICAgICAgICAgIEAvLyBzdG9yZSB5NgorICAgICAgICAgICAgCisgICAgICAgICAgICAuRUxTRQorICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVkFERCAgICBkWXI2LGRWcjIsZFZpNgorICAgICAgICAgICAgICAgIFZTVUIgICAgZFlpNixkVmkyLGRWcjYKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWU1VCICAgIGRZcjIsZFZyMixkVmk2CisgICAgICAgICAgICAgICAgVlNUMiAgICB7ZFlyNixkWWk2fSxbcERzdCA6MTI4XSxzdGVwMSAgICAgICAgICAgICAgICAgICAgQC8vIHN0b3JlIHkyCisgICAgICAgICAgICAgICAgVkFERCAgICBkWWkyLGRWaTIsZFZyNgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWU1VCICAgIHFVMSxxWDAscVg0CisgICAgICAgICAgICAgICAgVlNUMiAgICB7ZFlyNCxkWWk0fSxbcERzdCA6MTI4XSxzdGVwMSAgICAgICAgICAgICAgICAgICAgQC8vIHN0b3JlIHk0CisgICAgICAgICAgICAgICAgVlNVQiAgICBxVTMscVgxLHFYNQorICAgICAgICAgICAgICAgIFZTVUIgICAgcVU1LHFYMixxWDYKKyAgICAgICAgICAgICAgICBWU1QyICAgIHtkWXIyLGRZaTJ9LFtwRHN0IDoxMjhdLHN0ZXAxICAgICAgICAgICAgICAgICAgICBALy8gc3RvcmUgeTYKKworICAgICAgICAgICAgCisgICAgICAgICAgICAuRU5ESUYKKyAgICAgICAgICAgIAorICAgICAgICAgICAgQC8vIGZpbmlzaCBmaXJzdCBzdGFnZSBvZiA4IHBvaW50IEZGVCAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgVlNVQiAgICBxVTcscVgzLHFYNworICAgICAgICAgICAgVk1PViAgICBkVDBbMF0sdDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgCisgICAgICAgICAgICBALy8gZmluaXNoIHNlY29uZCBzdGFnZSBvZiA4IHBvaW50IEZGVCAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgVlNVQiAgICBkVnIxLGRVcjEsZFVpNQorICAgICAgICAgICAgVkxEMiAgICB7ZFhyMCxkWGkwfSxbcFNyYyA6MTI4XSxwb2ludFN0ZXAgICAgICAgICAgQC8vICBkYXRhWzBdIGZvciBuZXh0IGl0ZXJhdGlvbgorICAgICAgICAgICAgVkFERCAgICBkVmkxLGRVaTEsZFVyNQorICAgICAgICAgICAgVkFERCAgICBkVnIzLGRVcjEsZFVpNQorICAgICAgICAgICAgVkxEMiAgICB7ZFhyMSxkWGkxfSxbcFNyYyA6MTI4XSxwb2ludFN0ZXAgICAgICAgICAgQC8vICBkYXRhWzFdCisgICAgICAgICAgICBWU1VCICAgIGRWaTMsZFVpMSxkVXI1CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIFZTVUIgICAgZFZyNSxkVXIzLGRVaTcKKyAgICAgICAgICAgIFZMRDIgICAge2RYcjIsZFhpMn0sW3BTcmMgOjEyOF0scG9pbnRTdGVwICAgICAgICAgIEAvLyAgZGF0YVsyXQorICAgICAgICAgICAgVkFERCAgICBkVmk1LGRVaTMsZFVyNworICAgICAgICAgICAgVkFERCAgICBkVnI3LGRVcjMsZFVpNworICAgICAgICAgICAgVkxEMiAgICB7ZFhyMyxkWGkzfSxbcFNyYyA6MTI4XSxwb2ludFN0ZXAgICAgICAgICAgQC8vICBkYXRhWzNdCisgICAgICAgICAgICBWU1VCICAgIGRWaTcsZFVpMyxkVXI3CisgICAgICAgICAgICAKKyAgICAgICAgICAgIEAvLyBmaW5pc2ggdGhpcmQgc3RhZ2Ugb2YgOCBwb2ludCBGRlQgCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC5pZmVxcwkiXGludmVyc2UiLCAiVFJVRSIKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIEAvLyBjYWxjdWxhdGUgYSp2NSAKKyAgICAgICAgICAgICAgICBWUVJETVVMSCAgICBkVDEsZFZyNSxkVDBbMF0gICAgICAgICAgICAgICAgICAgICAgICAgQC8vIHVzZSBkVmkwIGZvciBkVDEKKyAgICAgICAgICAgICAgICBWTEQyICAgIHtkWHI0LGRYaTR9LFtwU3JjIDoxMjhdLHBvaW50U3RlcCAgICAgICAgICBALy8gIGRhdGFbNF0KKyAgICAgICAgICAgICAgICBWUVJETVVMSCAgICBkVmk1LGRWaTUsZFQwWzBdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVkxEMiAgICB7ZFhyNSxkWGk1fSxbcFNyYyA6MTI4XSxwb2ludFN0ZXAgICAgICAgICAgQC8vICBkYXRhWzVdCisgICAgICAgICAgICAgICAgVlNVQiAgICBkVnI1LGRUMSxkVmk1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyBhICogVjUKKyAgICAgICAgICAgICAgICBWQUREICAgIGRWaTUsZFQxLGRWaTUKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWTEQyICAgIHtkWHI2LGRYaTZ9LFtwU3JjIDoxMjhdLHBvaW50U3RlcCAgICAgICAgICBALy8gIGRhdGFbNl0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBALy8gY2FsY3VsYXRlICBiKnY3CisgICAgICAgICAgICAgICAgVlFSRE1VTEggICAgZFQxLGRWcjcsZFQwWzBdCisgICAgICAgICAgICAgICAgVlFSRE1VTEggICAgZFZpNyxkVmk3LGRUMFswXQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFZBREQgICAgcVkxLHFWMSxxVjUKKyAgICAgICAgICAgICAgICBWU1VCICAgIHFZNSxxVjEscVY1CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVkFERCAgICBkVnI3LGRUMSxkVmk3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyBiICogVjcKKyAgICAgICAgICAgICAgICBWU1VCICAgIGRWaTcsZFZpNyxkVDEKKyAgICAgICAgICAgICAgICBTVUIgICAgIHBEc3QsIHBEc3QsIHN0ZXAyICAgICAgICAgICAgICAgICAgICAgICAgICAgQC8vIHNldCBwRHN0IHRvIHkxCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVkxEMiAgICB7ZFhyNyxkWGk3fSxbcFNyYyA6MTI4XSxzZXRTdGVwICAgICAgICAgICAgQC8vICBkYXRhWzddICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVlNVQiAgICBkWXIzLGRWcjMsZFZyNworICAgICAgICAgICAgICAgIFZTVUIgICAgZFlpMyxkVmkzLGRWaTcKKyAgICAgICAgICAgICAgICBWU1QyICAgIHtkWXIxLGRZaTF9LFtwRHN0IDoxMjhdLHN0ZXAxICAgICAgICAgICAgICAgICAgICBALy8gc3RvcmUgeTEKKyAgICAgICAgICAgICAgICBWQUREICAgIGRZcjcsZFZyMyxkVnI3CisgICAgICAgICAgICAgICAgVkFERCAgICBkWWk3LGRWaTMsZFZpNworCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVlNUMiAgICB7ZFlyMyxkWWkzfSxbcERzdCA6MTI4XSxzdGVwMSAgICAgICAgICAgICAgICAgICAgQC8vIHN0b3JlIHkzCisgICAgICAgICAgICAgICAgVlNUMiAgICB7ZFlyNSxkWWk1fSxbcERzdCA6MTI4XSxzdGVwMSAgICAgICAgICAgICAgICAgICAgQC8vIHN0b3JlIHk1CisgICAgICAgICAgICAgICAgVlNUMiAgICB7ZFlyNyxkWWk3fSxbcERzdCA6MTI4XSEgICAgICAgICAgICAgICAgICAgICAgQC8vIHN0b3JlIHk3CisKKyAgICAgICAgICAgIC5FTFNFCisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBALy8gY2FsY3VsYXRlICBiKnY3CisgICAgICAgICAgICAgICAgVlFSRE1VTEggICAgZFQxLGRWcjcsZFQwWzBdCisgICAgICAgICAgICAgICAgVkxEMiAgICB7ZFhyNCxkWGk0fSxbcFNyYyA6MTI4XSxwb2ludFN0ZXAgICAgICAgICAgQC8vICBkYXRhWzRdCisgICAgICAgICAgICAgICAgVlFSRE1VTEggICAgZFZpNyxkVmk3LGRUMFswXQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFZMRDIgICAge2RYcjUsZFhpNX0sW3BTcmMgOjEyOF0scG9pbnRTdGVwICAgICAgICAgIEAvLyAgZGF0YVs1XQorICAgICAgICAgICAgICAgIFZBREQgICAgZFZyNyxkVDEsZFZpNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBALy8gYiAqIFY3CisgICAgICAgICAgICAgICAgVlNVQiAgICBkVmk3LGRWaTcsZFQxCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVkxEMiAgICB7ZFhyNixkWGk2fSxbcFNyYyA6MTI4XSxwb2ludFN0ZXAgICAgICAgICAgQC8vICBkYXRhWzZdCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgQC8vIGNhbGN1bGF0ZSBhKnY1IAorICAgICAgICAgICAgICAgIFZRUkRNVUxIICAgIGRUMSxkVnI1LGRUMFswXSAgICAgICAgICAgICAgICAgICAgICAgICBALy8gdXNlIGRWaTAgZm9yIGRUMQorICAgICAgICAgICAgICAgIFZRUkRNVUxIICAgIGRWaTUsZFZpNSxkVDBbMF0KKworICAgICAgICAgICAgICAgIFZBREQgICAgZFlyNyxkVnIzLGRWcjcKKyAgICAgICAgICAgICAgICBWQUREICAgIGRZaTcsZFZpMyxkVmk3CisgICAgICAgICAgICAgICAgU1VCICAgICBwRHN0LCBwRHN0LCBzdGVwMiAgICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyBzZXQgcERzdCB0byB5MQorICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVlNVQiAgICBkVnI1LGRUMSxkVmk1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyBhICogVjUKKyAgICAgICAgICAgICAgICBWQUREICAgIGRWaTUsZFQxLGRWaTUKKyAgICAgICAgICAgICAgICBWTEQyICAgIHtkWHI3LGRYaTd9LFtwU3JjIDoxMjhdLHNldFN0ZXAgICAgICAgICAgICBALy8gIGRhdGFbN10gICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWU1VCICAgIHFZNSxxVjEscVY1CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVlNVQiAgICBkWXIzLGRWcjMsZFZyNworICAgICAgICAgICAgICAgIFZTVDIgICAge2RZcjcsZFlpN30sW3BEc3QgOjEyOF0sc3RlcDEgICAgICAgICAgICAgICAgICAgIEAvLyBzdG9yZSB5MQorICAgICAgICAgICAgICAgIFZTVUIgICAgZFlpMyxkVmkzLGRWaTcKKyAgICAgICAgICAgICAgICBWQUREICAgIHFZMSxxVjEscVY1CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVlNUMiAgICB7ZFlyNSxkWWk1fSxbcERzdCA6MTI4XSxzdGVwMSAgICAgICAgICAgICAgICAgICAgQC8vIHN0b3JlIHkzCisgICAgICAgICAgICAgICAgVlNUMiAgICB7ZFlyMyxkWWkzfSxbcERzdCA6MTI4XSxzdGVwMSAgICAgICAgICAgICAgICAgICAgQC8vIHN0b3JlIHk1CisgICAgICAgICAgICAgICAgVlNUMiAgICB7ZFlyMSxkWWkxfSxbcERzdCA6MTI4XSEgICAgICAgICAgICAgICAgICAgICAgQC8vIHN0b3JlIHk3CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC5FTkRJRgorICAgICAgICAgICAgCisgICAgICAgICAgICAKKyAgICAgICAgLkVORElGCisgICAgICAgIAorICAgICAgICBTVUIgICAgIHBEc3QsIHBEc3QsIHN0ZXAyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyB1cGRhdGUgcERzdCBmb3IgdGhlIG5leHQgc2V0CisgICAgICAgIEJHVCAgICAgZ3JwWmVyb1NldExvb3BcbmFtZQorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIEAvLyByZXNldCBwU3JjIHRvIHBEc3QgZm9yIHRoZSBuZXh0IHN0YWdlCisgICAgICAgIFNVQiAgICAgcFNyYyxwRHN0LHBvaW50U3RlcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQC8vIHBEc3QgLT0gMipncnBTaXplICAKKyAgICAgICAgTU9WICAgICBwRHN0LHBQaW5nUG9uZ0J1ZiAKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgLmVuZG0KKyAgICAgICAgCisKKyAgICAgICAgQC8vIEFsbG9jYXRlIHN0YWNrIG1lbW9yeSByZXF1aXJlZCBieSB0aGUgZnVuY3Rpb24KKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBNX1NUQVJUIGFybVNQX0ZGVEZ3ZF9DVG9DX1NDMzJfUmFkaXg4X2ZzX091dE9mUGxhY2VfdW5zYWZlLHI0CisgICAgICAgICAgICBGRlRTVEFHRSAiRkFMU0UiLCJGQUxTRSIsRldECisgICAgICAgIE1fRU5ECisKKyAgICAgICAgCisgICAgICAgIE1fU1RBUlQgYXJtU1BfRkZUSW52X0NUb0NfU0MzMl9SYWRpeDhfZnNfT3V0T2ZQbGFjZV91bnNhZmUscjQKKyAgICAgICAgICAgIEZGVFNUQUdFICJGQUxTRSIsIlRSVUUiLElOVgorICAgICAgICBNX0VORAorIAorICAgICAgICAKKyAgICAgICAgTV9TVEFSVCBhcm1TUF9GRlRGd2RfQ1RvQ19TQzMyX1Nmc19SYWRpeDhfZnNfT3V0T2ZQbGFjZV91bnNhZmUscjQKKyAgICAgICAgICAgIEZGVFNUQUdFICJUUlVFIiwiRkFMU0UiLEZXRFNGUworICAgICAgICBNX0VORAorCisgICAgICAgIAorICAgICAgICBNX1NUQVJUIGFybVNQX0ZGVEludl9DVG9DX1NDMzJfU2ZzX1JhZGl4OF9mc19PdXRPZlBsYWNlX3Vuc2FmZSxyNAorICAgICAgICAgICAgRkZUU1RBR0UgIlRSVUUiLCJUUlVFIixJTlZTRlMKKyAgICAgICAgTV9FTkQKKworICAgIAorCS5lbmQKZGlmZiAtLWdpdCBhL2RsL2FybVNQX0ZGVF9GMzJUd2lkZGxlVGFibGUuYyBiL2RsL2FybVNQX0ZGVF9GMzJUd2lkZGxlVGFibGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OGNkOGE0Ci0tLSAvZGV2L251bGwKKysrIGIvZGwvYXJtU1BfRkZUX0YzMlR3aWRkbGVUYWJsZS5jCkBAIC0wLDAgKzEsNDY0MyBAQAorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICoKKyAqLworCisvKgorICogRGVzY3JpcHRpb246CisgKiBUd2lkZGxlIHRhYmxlIGZvciBGb3J3YXJkIEZGVCBpbiBmbG9hdCBmb3JtYXQuCisgKiBJdCBjb250YWlucyBjb21wbGV4IHBhaXJzIFstY29zIChXICogaSksIC1zaW4gKFcgKiBpKV0gd2hlcmUgVyA9IC0yKlBJL04KKyAqIGFuZCAwPD0gaTw9IE4vOC4gIE4gaXMgdGhlIG1heCBzaXplIG9mIHRoZSBGRlQuIEhlcmUgTiA9IDJeMTIKKyAqIFZhbHVlcyBmb3IgTi84IDwgaSA8IE4gYXJlIGdlbmVyYXRlZCBpbiB0aGUgRkZUSW5pdCBmdW5jdGlvbiB1c2luZyB0aGUKKyAqIHN5bW1ldHJpZXMgb2YgY29zIGFuZCBzaW5lLgorICoKKyAqIFdlIHVzZSB0aGUgbmVnYXRpdmUgdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBTMzIgdmVyc2lvbi4KKyoqLworCisjaW5jbHVkZSAib214dHlwZXMuaCIKKworI2RlZmluZSBUV0lERExFX1RBQkxFX0VOVFJJRVMgKCgxIDw8IFRXSURETEVfVEFCTEVfT1JERVIpIC8gOCkKKworY29uc3QgT01YX0YzMiBhcm1TUF9GRlRfRjMyVHdpZGRsZVRhYmxlWzIgKiBUV0lERExFX1RBQkxFX0VOVFJJRVMgKyAyXSA9IHsKKyNpZiBUV0lERExFX1RBQkxFX09SREVSID09IDE1CisgIC0xLjAwMDAwMDAwMDAwMDAwMGUrMDAsICAgMC4wMDAwMDAwMDAwMDAwMDBlKzAwLAorICAtOS45OTk5OTk4MTYxNjQyOTNlLTAxLCAgIDEuOTE3NDc1OTczMTA3MDMzZS0wNCwKKyAgLTkuOTk5OTk5MjY0NjU3MTc5ZS0wMSwgICAzLjgzNDk1MTg3NTcxMzk1NmUtMDQsCisgIC05Ljk5OTk5ODM0NTQ3ODY3N2UtMDEsICAgNS43NTI0Mjc2MzczMjA2NjFlLTA0LAorICAtOS45OTk5OTcwNTg2Mjg4MjJlLTAxLCAgIDcuNjY5OTAzMTg3NDI3MDQ1ZS0wNCwKKyAgLTkuOTk5OTk1NDA0MTA3NjYxZS0wMSwgICA5LjU4NzM3ODQ1NTUzMzAxNGUtMDQsCisgIC05Ljk5OTk5MzM4MTkxNTI1NWUtMDEsICAgMS4xNTA0ODUzMzcxMTM4NDhlLTAzLAorICAtOS45OTk5OTA5OTIwNTE2NzhlLTAxLCAgIDEuMzQyMjMyNzg2Mzc0MzM4ZS0wMywKKyAgLTkuOTk5OTg4MjM0NTE3MDE5ZS0wMSwgICAxLjUzMzk4MDE4NjI4NDc2NmUtMDMsCisgIC05Ljk5OTk4NTEwOTMxMTM3OGUtMDEsICAgMS43MjU3Mjc1Mjk3OTUxMjZlLTAzLAorICAtOS45OTk5ODE2MTY0MzQ4NzBlLTAxLCAgIDEuOTE3NDc0ODA5ODU1NDE5ZS0wMywKKyAgLTkuOTk5OTc3NzU1ODg3NjIzZS0wMSwgICAyLjEwOTIyMjAxOTQxNTY0NGUtMDMsCisgIC05Ljk5OTk3MzUyNzY2OTc4MmUtMDEsICAgMi4zMDA5NjkxNTE0MjU4MDVlLTAzLAorICAtOS45OTk5Njg5MzE3ODE0OTllLTAxLCAgIDIuNDkyNzE2MTk4ODM1OTA4ZS0wMywKKyAgLTkuOTk5OTYzOTY4MjIyOTQ0ZS0wMSwgICAyLjY4NDQ2MzE1NDU5NTk2MmUtMDMsCisgIC05Ljk5OTk1ODYzNjk5NDI5OWUtMDEsICAgMi44NzYyMTAwMTE2NTU5NzllLTAzLAorICAtOS45OTk5NTI5MzgwOTU3NjJlLTAxLCAgIDMuMDY3OTU2NzYyOTY1OTc2ZS0wMywKKyAgLTkuOTk5OTQ2ODcxNTI3NTQxZS0wMSwgICAzLjI1OTcwMzQwMTQ3NTk3M2UtMDMsCisgIC05Ljk5OTk0MDQzNzI4OTg1OGUtMDEsICAgMy40NTE0NDk5MjAxMzU5OTRlLTAzLAorICAtOS45OTk5MzM2MzUzODI5NTJlLTAxLCAgIDMuNjQzMTk2MzExODk2MDY4ZS0wMywKKyAgLTkuOTk5OTI2NDY1ODA3MDcyZS0wMSwgICAzLjgzNDk0MjU2OTcwNjIyOGUtMDMsCisgIC05Ljk5OTkxODkyODU2MjQ4MGUtMDEsICAgNC4wMjY2ODg2ODY1MTY1MTJlLTAzLAorICAtOS45OTk5MTEwMjM2NDk0NTZlLTAxLCAgIDQuMjE4NDM0NjU1Mjc2OTYzZS0wMywKKyAgLTkuOTk5OTAyNzUxMDY4Mjg5ZS0wMSwgICA0LjQxMDE4MDQ2ODkzNzYzMWUtMDMsCisgIC05Ljk5OTg5NDExMDgxOTI4NGUtMDEsICAgNC42MDE5MjYxMjA0NDg1NzBlLTAzLAorICAtOS45OTk4ODUxMDI5MDI3NTdlLTAxLCAgIDQuNzkzNjcxNjAyNzU5ODQxZS0wMywKKyAgLTkuOTk5ODc1NzI3MzE5MDQxZS0wMSwgICA0Ljk4NTQxNjkwODgyMTUxMWUtMDMsCisgIC05Ljk5OTg2NTk4NDA2ODQ4MGUtMDEsICAgNS4xNzcxNjIwMzE1ODM2NTFlLTAzLAorICAtOS45OTk4NTU4NzMxNTE0MzJlLTAxLCAgIDUuMzY4OTA2OTYzOTk2MzQyZS0wMywKKyAgLTkuOTk5ODQ1Mzk0NTY4MjcwZS0wMSwgICA1LjU2MDY1MTY5OTAwOTY3NGUtMDMsCisgIC05Ljk5OTgzNDU0ODMxOTM3N2UtMDEsICAgNS43NTIzOTYyMjk1NzM3MzZlLTAzLAorICAtOS45OTk4MjMzMzQ0MDUxNTNlLTAxLCAgIDUuOTQ0MTQwNTQ4NjM4NjMzZS0wMywKKyAgLTkuOTk5ODExNzUyODI2MDExZS0wMSwgICA2LjEzNTg4NDY0OTE1NDQ3NWUtMDMsCisgIC05Ljk5OTc5OTgwMzU4MjM3N2UtMDEsICAgNi4zMjc2Mjg1MjQwNzEzNzhlLTAzLAorICAtOS45OTk3ODc0ODY2NzQ2ODhlLTAxLCAgIDYuNTE5MzcyMTY2MzM5NDY4ZS0wMywKKyAgLTkuOTk5Nzc0ODAyMTAzMzk5ZS0wMSwgICA2LjcxMTExNTU2ODkwODg3OWUtMDMsCisgIC05Ljk5OTc2MTc0OTg2ODk3NmUtMDEsICAgNi45MDI4NTg3MjQ3Mjk3NTZlLTAzLAorICAtOS45OTk3NDgzMjk5NzE4OThlLTAxLCAgIDcuMDk0NjAxNjI2NzUyMjUwZS0wMywKKyAgLTkuOTk5NzM0NTQyNDEyNjU5ZS0wMSwgICA3LjI4NjM0NDI2NzkyNjUyMWUtMDMsCisgIC05Ljk5OTcyMDM4NzE5MTc2N2UtMDEsICAgNy40NzgwODY2NDEyMDI3NDRlLTAzLAorICAtOS45OTk3MDU4NjQzMDk3NDFlLTAxLCAgIDcuNjY5ODI4NzM5NTMxMDk3ZS0wMywKKyAgLTkuOTk5NjkwOTczNzY3MTE2ZS0wMSwgICA3Ljg2MTU3MDU1NTg2MTc3MmUtMDMsCisgIC05Ljk5OTY3NTcxNTU2NDQzOGUtMDEsICAgOC4wNTMzMTIwODMxNDQ5NzJlLTAzLAorICAtOS45OTk2NjAwODk3MDIyNjllLTAxLCAgIDguMjQ1MDUzMzE0MzMwOTA2ZS0wMywKKyAgLTkuOTk5NjQ0MDk2MTgxMTgzZS0wMSwgICA4LjQzNjc5NDI0MjM2OTc5OWUtMDMsCisgIC05Ljk5OTYyNzczNTAwMTc2OWUtMDEsICAgOC42Mjg1MzQ4NjAyMTE4ODZlLTAzLAorICAtOS45OTk2MTEwMDYxNjQ2MjhlLTAxLCAgIDguODIwMjc1MTYwODA3NDExZS0wMywKKyAgLTkuOTk5NTkzOTA5NjcwMzc1ZS0wMSwgICA5LjAxMjAxNTEzNzEwNjYzM2UtMDMsCisgIC05Ljk5OTU3NjQ0NTUxOTYzOWUtMDEsICAgOS4yMDM3NTQ3ODIwNTk4MjBlLTAzLAorICAtOS45OTk1NTg2MTM3MTMwNjFlLTAxLCAgIDkuMzk1NDk0MDg4NjE3MjUxZS0wMywKKyAgLTkuOTk5NTQwNDE0MjUxMjk4ZS0wMSwgICA5LjU4NzIzMzA0OTcyOTIyNWUtMDMsCisgIC05Ljk5OTUyMTg0NzEzNTAxOGUtMDEsICAgOS43Nzg5NzE2NTgzNDYwNDNlLTAzLAorICAtOS45OTk1MDI5MTIzNjQ5MDVlLTAxLCAgIDkuOTcwNzA5OTA3NDE4MDMwZS0wMywKKyAgLTkuOTk5NDgzNjA5OTQxNjU0ZS0wMSwgICAxLjAxNjI0NDc3ODk4OTU1MWUtMDIsCisgIC05Ljk5OTQ2MzkzOTg2NTk3NWUtMDEsICAgMS4wMzU0MTg1Mjk4NzI4ODRlLTAyLAorICAtOS45OTk0NDM5MDIxMzg1OTFlLTAxLCAgIDEuMDU0NTkyMjQyNjg2ODM4ZS0wMiwKKyAgLTkuOTk5NDIzNDk2NzYwMjM5ZS0wMSwgICAxLjA3Mzc2NTkxNjcyNjQ0OWUtMDIsCisgIC05Ljk5OTQwMjcyMzczMTY3MGUtMDEsICAgMS4wOTI5Mzk1NTEyODY3NTdlLTAyLAorICAtOS45OTkzODE1ODMwNTM2NDZlLTAxLCAgIDEuMTEyMTEzMTQ1NjYyODAyZS0wMiwKKyAgLTkuOTk5MzYwMDc0NzI2OTQ2ZS0wMSwgICAxLjEzMTI4NjY5OTE0OTYyNmUtMDIsCisgIC05Ljk5OTMzODE5ODc1MjM2MGUtMDEsICAgMS4xNTA0NjAyMTEwNDIyNzFlLTAyLAorICAtOS45OTkzMTU5NTUxMzA2OTJlLTAxLCAgIDEuMTY5NjMzNjgwNjM1Nzg0ZS0wMiwKKyAgLTkuOTk5MjkzMzQzODYyNzYxZS0wMSwgICAxLjE4ODgwNzEwNzIyNTIwOWUtMDIsCisgIC05Ljk5OTI3MDM2NDk0OTM5NmUtMDEsICAgMS4yMDc5ODA0OTAxMDU1OTZlLTAyLAorICAtOS45OTkyNDcwMTgzOTE0NDVlLTAxLCAgIDEuMjI3MTUzODI4NTcxOTkzZS0wMiwKKyAgLTkuOTk5MjIzMzA0MTg5NzY1ZS0wMSwgICAxLjI0NjMyNzEyMTkxOTQ1MWUtMDIsCisgIC05Ljk5OTE5OTIyMjM0NTIyOGUtMDEsICAgMS4yNjU1MDAzNjk0NDMwMjRlLTAyLAorICAtOS45OTkxNzQ3NzI4NTg3MThlLTAxLCAgIDEuMjg0NjczNTcwNDM3NzY2ZS0wMiwKKyAgLTkuOTk5MTQ5OTU1NzMxMTM1ZS0wMSwgICAxLjMwMzg0NjcyNDE5ODczM2UtMDIsCisgIC05Ljk5OTEyNDc3MDk2MzM5MmUtMDEsICAgMS4zMjMwMTk4MzAwMjA5ODNlLTAyLAorICAtOS45OTkwOTkyMTg1NTY0MTVlLTAxLCAgIDEuMzQyMTkyODg3MTk5NTc3ZS0wMiwKKyAgLTkuOTk5MDczMjk4NTExMTQzZS0wMSwgICAxLjM2MTM2NTg5NTAyOTU3NGUtMDIsCisgIC05Ljk5OTA0NzAxMDgyODUyOWUtMDEsICAgMS4zODA1Mzg4NTI4MDYwMzllLTAyLAorICAtOS45OTkwMjAzNTU1MDk1MzllLTAxLCAgIDEuMzk5NzExNzU5ODI0MDM3ZS0wMiwKKyAgLTkuOTk4OTkzMzMyNTU1MTU0ZS0wMSwgICAxLjQxODg4NDYxNTM3ODYzNGUtMDIsCisgIC05Ljk5ODk2NTk0MTk2NjM2N2UtMDEsICAgMS40MzgwNTc0MTg3NjQ5MDFlLTAyLAorICAtOS45OTg5MzgxODM3NDQxODVlLTAxLCAgIDEuNDU3MjMwMTY5Mjc3OTA2ZS0wMiwKKyAgLTkuOTk4OTEwMDU3ODg5NjMwZS0wMSwgICAxLjQ3NjQwMjg2NjIxMjcyNWUtMDIsCisgIC05Ljk5ODg4MTU2NDQwMzczM2UtMDEsICAgMS40OTU1NzU1MDg4NjQ0MzBlLTAyLAorICAtOS45OTg4NTI3MDMyODc1NDVlLTAxLCAgIDEuNTE0NzQ4MDk2NTI4MDk5ZS0wMiwKKyAgLTkuOTk4ODIzNDc0NTQyMTI2ZS0wMSwgICAxLjUzMzkyMDYyODQ5ODgxMGUtMDIsCisgIC05Ljk5ODc5Mzg3ODE2ODU0OWUtMDEsICAgMS41NTMwOTMxMDQwNzE2NDVlLTAyLAorICAtOS45OTg3NjM5MTQxNjc5MDRlLTAxLCAgIDEuNTcyMjY1NTIyNTQxNjg2ZS0wMiwKKyAgLTkuOTk4NzMzNTgyNTQxMjkzZS0wMSwgICAxLjU5MTQzNzg4MzIwNDAxOGUtMDIsCisgIC05Ljk5ODcwMjg4MzI4OTgzMGUtMDEsICAgMS42MTA2MTAxODUzNTM3MjllLTAyLAorICAtOS45OTg2NzE4MTY0MTQ2NDRlLTAxLCAgIDEuNjI5NzgyNDI4Mjg1OTA2ZS0wMiwKKyAgLTkuOTk4NjQwMzgxOTE2ODc3ZS0wMSwgICAxLjY0ODk1NDYxMTI5NTY0NGUtMDIsCisgIC05Ljk5ODYwODU3OTc5NzY4NWUtMDEsICAgMS42NjgxMjY3MzM2NzgwMzNlLTAyLAorICAtOS45OTg1NzY0MTAwNTgyMzllLTAxLCAgIDEuNjg3Mjk4Nzk0NzI4MTcxZS0wMiwKKyAgLTkuOTk4NTQzODcyNjk5NzE5ZS0wMSwgICAxLjcwNjQ3MDc5Mzc0MTE1NmUtMDIsCisgIC05Ljk5ODUxMDk2NzcyMzMyMmUtMDEsICAgMS43MjU2NDI3MzAwMTIwODhlLTAyLAorICAtOS45OTg0Nzc2OTUxMzAyNTllLTAxLCAgIDEuNzQ0ODE0NjAyODM2MDY5ZS0wMiwKKyAgLTkuOTk4NDQ0MDU0OTIxNzUyZS0wMSwgICAxLjc2Mzk4NjQxMTUwODIwNWUtMDIsCisgIC05Ljk5ODQxMDA0NzA5OTA0MGUtMDEsICAgMS43ODMxNTgxNTUzMjM2MDRlLTAyLAorICAtOS45OTgzNzU2NzE2NjMzNzFlLTAxLCAgIDEuODAyMzI5ODMzNTc3Mzc1ZS0wMiwKKyAgLTkuOTk4MzQwOTI4NjE2MDEwZS0wMSwgICAxLjgyMTUwMTQ0NTU2NDYyOWUtMDIsCisgIC05Ljk5ODMwNTgxNzk1ODIzNGUtMDEsICAgMS44NDA2NzI5OTA1ODA0ODJlLTAyLAorICAtOS45OTgyNzAzMzk2OTEzMzRlLTAxLCAgIDEuODU5ODQ0NDY3OTIwMDUxZS0wMiwKKyAgLTkuOTk4MjM0NDkzODE2NjE2ZS0wMSwgICAxLjg3OTAxNTg3Njg3ODQ1NWUtMDIsCisgIC05Ljk5ODE5ODI4MDMzNTM5NGUtMDEsICAgMS44OTgxODcyMTY3NTA4MThlLTAyLAorICAtOS45OTgxNjE2OTkyNDkwMDRlLTAxLCAgIDEuOTE3MzU4NDg2ODMyMjYyZS0wMiwKKyAgLTkuOTk4MTI0NzUwNTU4Nzg4ZS0wMSwgICAxLjkzNjUyOTY4NjQxNzkxNmUtMDIsCisgIC05Ljk5ODA4NzQzNDI2NjEwNWUtMDEsICAgMS45NTU3MDA4MTQ4MDI5MDhlLTAyLAorICAtOS45OTgwNDk3NTAzNzIzMjllLTAxLCAgIDEuOTc0ODcxODcxMjgyMzczZS0wMiwKKyAgLTkuOTk4MDExNjk4ODc4ODQzZS0wMSwgICAxLjk5NDA0Mjg1NTE1MTQ0NGUtMDIsCisgIC05Ljk5Nzk3MzI3OTc4NzA0N2UtMDEsICAgMi4wMTMyMTM3NjU3MDUyNTllLTAyLAorICAtOS45OTc5MzQ0OTMwOTgzNTNlLTAxLCAgIDIuMDMyMzg0NjAyMjM4OTU5ZS0wMiwKKyAgLTkuOTk3ODk1MzM4ODE0MTg4ZS0wMSwgICAyLjA1MTU1NTM2NDA0NzY4OGUtMDIsCisgIC05Ljk5Nzg1NTgxNjkzNTk5MmUtMDEsICAgMi4wNzA3MjYwNTA0MjY1ODllLTAyLAorICAtOS45OTc4MTU5Mjc0NjUyMTdlLTAxLCAgIDIuMDg5ODk2NjYwNjcwODE0ZS0wMiwKKyAgLTkuOTk3Nzc1NjcwNDAzMzI5ZS0wMSwgICAyLjEwOTA2NzE5NDA3NTUxMmUtMDIsCisgIC05Ljk5NzczNTA0NTc1MTgxMGUtMDEsICAgMi4xMjgyMzc2NDk5MzU4MzllLTAyLAorICAtOS45OTc2OTQwNTM1MTIxNTNlLTAxLCAgIDIuMTQ3NDA4MDI3NTQ2OTUxZS0wMiwKKyAgLTkuOTk3NjUyNjkzNjg1ODY1ZS0wMSwgICAyLjE2NjU3ODMyNjIwNDAwOGUtMDIsCisgIC05Ljk5NzYxMDk2NjI3NDQ2NmUtMDEsICAgMi4xODU3NDg1NDUyMDIxNzRlLTAyLAorICAtOS45OTc1Njg4NzEyNzk0OTFlLTAxLCAgIDIuMjA0OTE4NjgzODM2NjE0ZS0wMiwKKyAgLTkuOTk3NTI2NDA4NzAyNDg4ZS0wMSwgICAyLjIyNDA4ODc0MTQwMjQ5NmUtMDIsCisgIC05Ljk5NzQ4MzU3ODU0NTAxOGUtMDEsICAgMi4yNDMyNTg3MTcxOTQ5OTNlLTAyLAorICAtOS45OTc0NDAzODA4MDg2NTRlLTAxLCAgIDIuMjYyNDI4NjEwNTA5MjgwZS0wMiwKKyAgLTkuOTk3Mzk2ODE1NDk0OTg3ZS0wMSwgICAyLjI4MTU5ODQyMDY0MDUzNWUtMDIsCisgIC05Ljk5NzM1Mjg4MjYwNTYxN2UtMDEsICAgMi4zMDA3NjgxNDY4ODM5MzdlLTAyLAorICAtOS45OTczMDg1ODIxNDIxNjBlLTAxLCAgIDIuMzE5OTM3Nzg4NTM0NjcyZS0wMiwKKyAgLTkuOTk3MjYzOTE0MTA2MjQ1ZS0wMSwgICAyLjMzOTEwNzM0NDg4NzkyNmUtMDIsCisgIC05Ljk5NzIxODg3ODQ5OTUxM2UtMDEsICAgMi4zNTgyNzY4MTUyMzg4ODllLTAyLAorICAtOS45OTcxNzM0NzUzMjM2MjJlLTAxLCAgIDIuMzc3NDQ2MTk4ODgyNzU1ZS0wMiwKKyAgLTkuOTk3MTI3NzA0NTgwMjM5ZS0wMSwgICAyLjM5NjYxNTQ5NTExNDcyMWUtMDIsCisgIC05Ljk5NzA4MTU2NjI3MTA0OWUtMDEsICAgMi40MTU3ODQ3MDMyMjk5ODZlLTAyLAorICAtOS45OTcwMzUwNjAzOTc3NDZlLTAxLCAgIDIuNDM0OTUzODIyNTIzNzUzZS0wMiwKKyAgLTkuOTk2OTg4MTg2OTYyMDQyZS0wMSwgICAyLjQ1NDEyMjg1MjI5MTIyOWUtMDIsCisgIC05Ljk5Njk0MDk0NTk2NTY2MGUtMDEsICAgMi40NzMyOTE3OTE4Mjc2MjJlLTAyLAorICAtOS45OTY4OTMzMzc0MTAzMzZlLTAxLCAgIDIuNDkyNDYwNjQwNDI4MTQ3ZS0wMiwKKyAgLTkuOTk2ODQ1MzYxMjk3ODIxZS0wMSwgICAyLjUxMTYyOTM5NzM4ODAxOWUtMDIsCisgIC05Ljk5Njc5NzAxNzYyOTg3OWUtMDEsICAgMi41MzA3OTgwNjIwMDI0NTdlLTAyLAorICAtOS45OTY3NDgzMDY0MDgyODdlLTAxLCAgIDIuNTQ5OTY2NjMzNTY2Njg1ZS0wMiwKKyAgLTkuOTk2Njk5MjI3NjM0ODM4ZS0wMSwgICAyLjU2OTEzNTExMTM3NTkyOWUtMDIsCisgIC05Ljk5NjY0OTc4MTMxMTMzM2UtMDEsICAgMi41ODgzMDM0OTQ3MjU0MjBlLTAyLAorICAtOS45OTY1OTk5Njc0Mzk1OTJlLTAxLCAgIDIuNjA3NDcxNzgyOTEwMzkwZS0wMiwKKyAgLTkuOTk2NTQ5Nzg2MDIxNDQ3ZS0wMSwgICAyLjYyNjYzOTk3NTIyNjA3NmUtMDIsCisgIC05Ljk5NjQ5OTIzNzA1ODc0MmUtMDEsICAgMi42NDU4MDgwNzA5Njc3MTllLTAyLAorICAtOS45OTY0NDgzMjA1NTMzMzZlLTAxLCAgIDIuNjY0OTc2MDY5NDMwNTYyZS0wMiwKKyAgLTkuOTk2Mzk3MDM2NTA3MTAyZS0wMSwgICAyLjY4NDE0Mzk2OTkwOTg1M2UtMDIsCisgIC05Ljk5NjM0NTM4NDkyMTkyM2UtMDEsICAgMi43MDMzMTE3NzE3MDA4NDNlLTAyLAorICAtOS45OTYyOTMzNjU3OTk3MDFlLTAxLCAgIDIuNzIyNDc5NDc0MDk4Nzg4ZS0wMiwKKyAgLTkuOTk2MjQwOTc5MTQyMzQ2ZS0wMSwgICAyLjc0MTY0NzA3NjM5ODk0NGUtMDIsCisgIC05Ljk5NjE4ODIyNDk1MTc4NmUtMDEsICAgMi43NjA4MTQ1Nzc4OTY1NzRlLTAyLAorICAtOS45OTYxMzUxMDMyMjk5NjBlLTAxLCAgIDIuNzc5OTgxOTc3ODg2OTQ0ZS0wMiwKKyAgLTkuOTk2MDgxNjEzOTc4ODIxZS0wMSwgICAyLjc5OTE0OTI3NTY2NTMyNGUtMDIsCisgIC05Ljk5NjAyNzc1NzIwMDMzNWUtMDEsICAgMi44MTgzMTY0NzA1MjY5ODdlLTAyLAorICAtOS45OTU5NzM1MzI4OTY0ODRlLTAxLCAgIDIuODM3NDgzNTYxNzY3MjEwZS0wMiwKKyAgLTkuOTk1OTE4OTQxMDY5MjYwZS0wMSwgICAyLjg1NjY1MDU0ODY4MTI3M2UtMDIsCisgIC05Ljk5NTg2Mzk4MTcyMDY3MWUtMDEsICAgMi44NzU4MTc0MzA1NjQ0NjFlLTAyLAorICAtOS45OTU4MDg2NTQ4NTI3MzdlLTAxLCAgIDIuODk0OTg0MjA2NzEyMDY0ZS0wMiwKKyAgLTkuOTk1NzUyOTYwNDY3NDkyZS0wMSwgICAyLjkxNDE1MDg3NjQxOTM3MmUtMDIsCisgIC05Ljk5NTY5Njg5ODU2Njk4NmUtMDEsICAgMi45MzMzMTc0Mzg5ODE2ODRlLTAyLAorICAtOS45OTU2NDA0NjkxNTMyNzdlLTAxLCAgIDIuOTUyNDgzODkzNjk0Mjk4ZS0wMiwKKyAgLTkuOTk1NTgzNjcyMjI4NDQzZS0wMSwgICAyLjk3MTY1MDIzOTg1MjUxOWUtMDIsCisgIC05Ljk5NTUyNjUwNzc5NDU3MGUtMDEsICAgMi45OTA4MTY0NzY3NTE2NTVlLTAyLAorICAtOS45OTU0Njg5NzU4NTM3NjBlLTAxLCAgIDMuMDA5OTgyNjAzNjg3MDIwZS0wMiwKKyAgLTkuOTk1NDExMDc2NDA4MTI5ZS0wMSwgICAzLjAyOTE0ODYxOTk1MzkyOGUtMDIsCisgIC05Ljk5NTM1MjgwOTQ1OTgwNWUtMDEsICAgMy4wNDgzMTQ1MjQ4NDc3MDFlLTAyLAorICAtOS45OTUyOTQxNzUwMTA5MzFlLTAxLCAgIDMuMDY3NDgwMzE3NjYzNjYzZS0wMiwKKyAgLTkuOTk1MjM1MTczMDYzNjYzZS0wMSwgICAzLjA4NjY0NTk5NzY5NzE0MWUtMDIsCisgIC05Ljk5NTE3NTgwMzYyMDE3MGUtMDEsICAgMy4xMDU4MTE1NjQyNDM0NzBlLTAyLAorICAtOS45OTUxMTYwNjY2ODI2MzRlLTAxLCAgIDMuMTI0OTc3MDE2NTk3OTg2ZS0wMiwKKyAgLTkuOTk1MDU1OTYyMjUzMjUzZS0wMSwgICAzLjE0NDE0MjM1NDA1NjAzMGUtMDIsCisgIC05Ljk5NDk5NTQ5MDMzNDIzNmUtMDEsICAgMy4xNjMzMDc1NzU5MTI5NDhlLTAyLAorICAtOS45OTQ5MzQ2NTA5Mjc4MDZlLTAxLCAgIDMuMTgyNDcyNjgxNDY0MDg5ZS0wMiwKKyAgLTkuOTk0ODczNDQ0MDM2MjAxZS0wMSwgICAzLjIwMTYzNzY3MDAwNDgwNmUtMDIsCisgIC05Ljk5NDgxMTg2OTY2MTY3MGUtMDEsICAgMy4yMjA4MDI1NDA4MzA0NTllLTAyLAorICAtOS45OTQ3NDk5Mjc4MDY0NzhlLTAxLCAgIDMuMjM5OTY3MjkzMjM2NDA5ZS0wMiwKKyAgLTkuOTk0Njg3NjE4NDcyOTAwZS0wMSwgICAzLjI1OTEzMTkyNjUxODAyM2UtMDIsCisgIC05Ljk5NDYyNDk0MTY2MzIzMmUtMDEsICAgMy4yNzgyOTY0Mzk5NzA2NzJlLTAyLAorICAtOS45OTQ1NjE4OTczNzk3NzNlLTAxLCAgIDMuMjk3NDYwODMyODg5NzM0ZS0wMiwKKyAgLTkuOTk0NDk4NDg1NjI0ODQ1ZS0wMSwgICAzLjMxNjYyNTEwNDU3MDU4NmUtMDIsCisgIC05Ljk5NDQzNDcwNjQwMDc3OGUtMDEsICAgMy4zMzU3ODkyNTQzMDg2MTRlLTAyLAorICAtOS45OTQzNzA1NTk3MDk5MTVlLTAxLCAgIDMuMzU0OTUzMjgxMzk5MjA3ZS0wMiwKKyAgLTkuOTk0MzA2MDQ1NTU0NjE3ZS0wMSwgICAzLjM3NDExNzE4NTEzNzc1OGUtMDIsCisgIC05Ljk5NDI0MTE2MzkzNzI1NmUtMDEsICAgMy4zOTMyODA5NjQ4MTk2NjZlLTAyLAorICAtOS45OTQxNzU5MTQ4NjAyMTdlLTAxLCAgIDMuNDEyNDQ0NjE5NzQwMzMzZS0wMiwKKyAgLTkuOTk0MTEwMjk4MzI1ODk4ZS0wMSwgICAzLjQzMTYwODE0OTE5NTE2NWUtMDIsCisgIC05Ljk5NDA0NDMxNDMzNjcxM2UtMDEsICAgMy40NTA3NzE1NTI0Nzk1NzVlLTAyLAorICAtOS45OTM5Nzc5NjI4OTUwODZlLTAxLCAgIDMuNDY5OTM0ODI4ODg4OTgwZS0wMiwKKyAgLTkuOTkzOTExMjQ0MDAzNDYwZS0wMSwgICAzLjQ4OTA5Nzk3NzcxODgwMGUtMDIsCisgIC05Ljk5Mzg0NDE1NzY2NDI4NmUtMDEsICAgMy41MDgyNjA5OTgyNjQ0NjJlLTAyLAorICAtOS45OTM3NzY3MDM4ODAwMjhlLTAxLCAgIDMuNTI3NDIzODg5ODIxMzk1ZS0wMiwKKyAgLTkuOTkzNzA4ODgyNjUzMTcyZS0wMSwgICAzLjU0NjU4NjY1MTY4NTAzNWUtMDIsCisgIC05Ljk5MzY0MDY5Mzk4NjIwNWUtMDEsICAgMy41NjU3NDkyODMxNTA4MjJlLTAyLAorICAtOS45OTM1NzIxMzc4ODE2NDBlLTAxLCAgIDMuNTg0OTExNzgzNTE0MjAyZS0wMiwKKyAgLTkuOTkzNTAzMjE0MzQxOTk0ZS0wMSwgICAzLjYwNDA3NDE1MjA3MDYyM2UtMDIsCisgIC05Ljk5MzQzMzkyMzM2OTgwMmUtMDEsICAgMy42MjMyMzYzODgxMTU1NDBlLTAyLAorICAtOS45OTMzNjQyNjQ5Njc2MTJlLTAxLCAgIDMuNjQyMzk4NDkwOTQ0NDExZS0wMiwKKyAgLTkuOTkzMjk0MjM5MTM3OTg0ZS0wMSwgICAzLjY2MTU2MDQ1OTg1MjcwM2UtMDIsCisgIC05Ljk5MzIyMzg0NTg4MzQ5NWUtMDEsICAgMy42ODA3MjIyOTQxMzU4ODNlLTAyLAorICAtOS45OTMxNTMwODUyMDY3MzFlLTAxLCAgIDMuNjk5ODgzOTkzMDg5NDI2ZS0wMiwKKyAgLTkuOTkzMDgxOTU3MTEwMjk1ZS0wMSwgICAzLjcxOTA0NTU1NjAwODgxMmUtMDIsCisgIC05Ljk5MzAxMDQ2MTU5NjgwMWUtMDEsICAgMy43MzgyMDY5ODIxODk1MjNlLTAyLAorICAtOS45OTI5Mzg1OTg2Njg4NzhlLTAxLCAgIDMuNzU3MzY4MjcwOTI3MDQ5ZS0wMiwKKyAgLTkuOTkyODY2MzY4MzI5MTY3ZS0wMSwgICAzLjc3NjUyOTQyMTUxNjg4NmUtMDIsCisgIC05Ljk5Mjc5Mzc3MDU4MDMyN2UtMDEsICAgMy43OTU2OTA0MzMyNTQ1MzFlLTAyLAorICAtOS45OTI3MjA4MDU0MjUwMjZlLTAxLCAgIDMuODE0ODUxMzA1NDM1NDg5ZS0wMiwKKyAgLTkuOTkyNjQ3NDcyODY1OTQ0ZS0wMSwgICAzLjgzNDAxMjAzNzM1NTI2OWUtMDIsCisgIC05Ljk5MjU3Mzc3MjkwNTc4MWUtMDEsICAgMy44NTMxNzI2MjgzMDkzODdlLTAyLAorICAtOS45OTI0OTk3MDU1NDcyNDRlLTAxLCAgIDMuODcyMzMzMDc3NTkzMzYyZS0wMiwKKyAgLTkuOTkyNDI1MjcwNzkzMDU4ZS0wMSwgICAzLjg5MTQ5MzM4NDUwMjcxOWUtMDIsCisgIC05Ljk5MjM1MDQ2ODY0NTk1OWUtMDEsICAgMy45MTA2NTM1NDgzMzI5ODllLTAyLAorICAtOS45OTIyNzUyOTkxMDg2OTZlLTAxLCAgIDMuOTI5ODEzNTY4Mzc5NzA2ZS0wMiwKKyAgLTkuOTkyMTk5NzYyMTg0MDM1ZS0wMSwgICAzLjk0ODk3MzQ0MzkzODQxMmUtMDIsCisgIC05Ljk5MjEyMzg1Nzg3NDc1M2UtMDEsICAgMy45NjgxMzMxNzQzMDQ2NTNlLTAyLAorICAtOS45OTIwNDc1ODYxODM2MzllLTAxLCAgIDMuOTg3MjkyNzU4NzczOTgxZS0wMiwKKyAgLTkuOTkxOTcwOTQ3MTEzNDk5ZS0wMSwgICA0LjAwNjQ1MjE5NjY0MTk1MmUtMDIsCisgIC05Ljk5MTg5Mzk0MDY2NzE0OWUtMDEsICAgNC4wMjU2MTE0ODcyMDQxMjhlLTAyLAorICAtOS45OTE4MTY1NjY4NDc0MjNlLTAxLCAgIDQuMDQ0NzcwNjI5NzU2MDc4ZS0wMiwKKyAgLTkuOTkxNzM4ODI1NjU3MTY0ZS0wMSwgICA0LjA2MzkyOTYyMzU5MzM3NGUtMDIsCisgIC05Ljk5MTY2MDcxNzA5OTIzMGUtMDEsICAgNC4wODMwODg0NjgwMTE1OTVlLTAyLAorICAtOS45OTE1ODIyNDExNzY0OTRlLTAxLCAgIDQuMTAyMjQ3MTYyMzA2MzI0ZS0wMiwKKyAgLTkuOTkxNTAzMzk3ODkxODQxZS0wMSwgICA0LjEyMTQwNTcwNTc3MzE1MmUtMDIsCisgIC05Ljk5MTQyNDE4NzI0ODE2OWUtMDEsICAgNC4xNDA1NjQwOTc3MDc2NzRlLTAyLAorICAtOS45OTEzNDQ2MDkyNDgzOTJlLTAxLCAgIDQuMTU5NzIyMzM3NDA1NDg5ZS0wMiwKKyAgLTkuOTkxMjY0NjYzODk1NDM0ZS0wMSwgICA0LjE3ODg4MDQyNDE2MjIwNmUtMDIsCisgIC05Ljk5MTE4NDM1MTE5MjIzNWUtMDEsICAgNC4xOTgwMzgzNTcyNzM0MzZlLTAyLAorICAtOS45OTExMDM2NzExNDE3NDllLTAxLCAgIDQuMjE3MTk2MTM2MDM0Nzk1ZS0wMiwKKyAgLTkuOTkxMDIyNjIzNzQ2OTQxZS0wMSwgICA0LjIzNjM1Mzc1OTc0MTkwN2UtMDIsCisgIC05Ljk5MDk0MTIwOTAxMDc5MWUtMDEsICAgNC4yNTU1MTEyMjc2OTA0MDJlLTAyLAorICAtOS45OTA4NTk0MjY5MzYyOTNlLTAxLCAgIDQuMjc0NjY4NTM5MTc1OTEzZS0wMiwKKyAgLTkuOTkwNzc3Mjc3NTI2NDU0ZS0wMSwgICA0LjI5MzgyNTY5MzQ5NDA4MmUtMDIsCisgIC05Ljk5MDY5NDc2MDc4NDI5M2UtMDEsICAgNC4zMTI5ODI2ODk5NDA1NTVlLTAyLAorICAtOS45OTA2MTE4NzY3MTI4NDZlLTAxLCAgIDQuMzMyMTM5NTI3ODEwOTgzZS0wMiwKKyAgLTkuOTkwNTI4NjI1MzE1MTU5ZS0wMSwgICA0LjM1MTI5NjIwNjQwMTAyNGUtMDIsCisgIC05Ljk5MDQ0NTAwNjU5NDI5M2UtMDEsICAgNC4zNzA0NTI3MjUwMDYzNDJlLTAyLAorICAtOS45OTAzNjEwMjA1NTMzMjNlLTAxLCAgIDQuMzg5NjA5MDgyOTIyNjA3ZS0wMiwKKyAgLTkuOTkwMjc2NjY3MTk1MzM3ZS0wMSwgICA0LjQwODc2NTI3OTQ0NTQ5NGUtMDIsCisgIC05Ljk5MDE5MTk0NjUyMzQzNWUtMDEsICAgNC40Mjc5MjEzMTM4NzA2ODVlLTAyLAorICAtOS45OTAxMDY4NTg1NDA3MzRlLTAxLCAgIDQuNDQ3MDc3MTg1NDkzODY3ZS0wMiwKKyAgLTkuOTkwMDIxNDAzMjUwMzYwZS0wMSwgICA0LjQ2NjIzMjg5MzYxMDczMmUtMDIsCisgIC05Ljk4OTkzNTU4MDY1NTQ1N2UtMDEsICAgNC40ODUzODg0Mzc1MTY5ODJlLTAyLAorICAtOS45ODk4NDkzOTA3NTkxODBlLTAxLCAgIDQuNTA0NTQzODE2NTA4MzIwZS0wMiwKKyAgLTkuOTg5NzYyODMzNTY0Njk4ZS0wMSwgICA0LjUyMzY5OTAyOTg4MDQ1OWUtMDIsCisgIC05Ljk4OTY3NTkwOTA3NTE5M2UtMDEsICAgNC41NDI4NTQwNzY5MjkxMTVlLTAyLAorICAtOS45ODk1ODg2MTcyOTM4NjFlLTAxLCAgIDQuNTYyMDA4OTU2OTUwMDE0ZS0wMiwKKyAgLTkuOTg5NTAwOTU4MjIzOTEyZS0wMSwgICA0LjU4MTE2MzY2OTIzODg4NGUtMDIsCisgIC05Ljk4OTQxMjkzMTg2ODU2OWUtMDEsICAgNC42MDAzMTgyMTMwOTE0NjJlLTAyLAorICAtOS45ODkzMjQ1MzgyMzEwNjdlLTAxLCAgIDQuNjE5NDcyNTg3ODAzNDkxZS0wMiwKKyAgLTkuOTg5MjM1Nzc3MzE0NjU4ZS0wMSwgICA0LjYzODYyNjc5MjY3MDcxNmUtMDIsCisgIC05Ljk4OTE0NjY0OTEyMjYwNGUtMDEsICAgNC42NTc3ODA4MjY5ODg4OTRlLTAyLAorICAtOS45ODkwNTcxNTM2NTgxODNlLTAxLCAgIDQuNjc2OTM0NjkwMDUzNzg2ZS0wMiwKKyAgLTkuOTg4OTY3MjkwOTI0Njg0ZS0wMSwgICA0LjY5NjA4ODM4MTE2MTE1OWUtMDIsCisgIC05Ljk4ODg3NzA2MDkyNTQxM2UtMDEsICAgNC43MTUyNDE4OTk2MDY3ODdlLTAyLAorICAtOS45ODg3ODY0NjM2NjM2ODdlLTAxLCAgIDQuNzM0Mzk1MjQ0Njg2NDQ4ZS0wMiwKKyAgLTkuOTg4Njk1NDk5MTQyODM2ZS0wMSwgICA0Ljc1MzU0ODQxNTY5NTkzMGUtMDIsCisgIC05Ljk4ODYwNDE2NzM2NjIwNWUtMDEsICAgNC43NzI3MDE0MTE5MzEwMjVlLTAyLAorICAtOS45ODg1MTI0NjgzMzcxNTJlLTAxLCAgIDQuNzkxODU0MjMyNjg3NTMzZS0wMiwKKyAgLTkuOTg4NDIwNDAyMDU5MDQ4ZS0wMSwgICA0LjgxMTAwNjg3NzI2MTI1OWUtMDIsCisgIC05Ljk4ODMyNzk2ODUzNTI4MGUtMDEsICAgNC44MzAxNTkzNDQ5NDgwMTRlLTAyLAorICAtOS45ODgyMzUxNjc3NjkyNDVlLTAxLCAgIDQuODQ5MzExNjM1MDQzNjE4ZS0wMiwKKyAgLTkuOTg4MTQxOTk5NzY0MzU0ZS0wMSwgICA0Ljg2ODQ2Mzc0Njg0Mzg5NGUtMDIsCisgIC05Ljk4ODA0ODQ2NDUyNDAzNGUtMDEsICAgNC44ODc2MTU2Nzk2NDQ2NzZlLTAyLAorICAtOS45ODc5NTQ1NjIwNTE3MjRlLTAxLCAgIDQuOTA2NzY3NDMyNzQxODAxZS0wMiwKKyAgLTkuOTg3ODYwMjkyMzUwODc2ZS0wMSwgICA0LjkyNTkxOTAwNTQzMTExNGUtMDIsCisgIC05Ljk4Nzc2NTY1NTQyNDk1NmUtMDEsICAgNC45NDUwNzAzOTcwMDg0NjZlLTAyLAorICAtOS45ODc2NzA2NTEyNzc0NDRlLTAxLCAgIDQuOTY0MjIxNjA2NzY5NzE2ZS0wMiwKKyAgLTkuOTg3NTc1Mjc5OTExODMzZS0wMSwgICA0Ljk4MzM3MjYzNDAxMDcyOGUtMDIsCisgIC05Ljk4NzQ3OTU0MTMzMTYyOWUtMDEsICAgNS4wMDI1MjM0NzgwMjczNzNlLTAyLAorICAtOS45ODczODM0MzU1NDAzNTJlLTAxLCAgIDUuMDIxNjc0MTM4MTE1NTMxZS0wMiwKKyAgLTkuOTg3Mjg2OTYyNTQxNTM3ZS0wMSwgICA1LjA0MDgyNDYxMzU3MTA4NmUtMDIsCisgIC05Ljk4NzE5MDEyMjMzODcyOWUtMDEsICAgNS4wNTk5NzQ5MDM2ODk5MjhlLTAyLAorICAtOS45ODcwOTI5MTQ5MzU0OTBlLTAxLCAgIDUuMDc5MTI1MDA3NzY3OTU4ZS0wMiwKKyAgLTkuOTg2OTk1MzQwMzM1MzkzZS0wMSwgICA1LjA5ODI3NDkyNTEwMTA4MGUtMDIsCisgIC05Ljk4Njg5NzM5ODU0MjAyNmUtMDEsICAgNS4xMTc0MjQ2NTQ5ODUyMDhlLTAyLAorICAtOS45ODY3OTkwODk1NTg5OTFlLTAxLCAgIDUuMTM2NTc0MTk2NzE2MjU5ZS0wMiwKKyAgLTkuOTg2NzAwNDEzMzg5OTAxZS0wMSwgICA1LjE1NTcyMzU0OTU5MDE2MWUtMDIsCisgIC05Ljk4NjYwMTM3MDAzODM4NWUtMDEsICAgNS4xNzQ4NzI3MTI5MDI4NDZlLTAyLAorICAtOS45ODY1MDE5NTk1MDgwODNlLTAxLCAgIDUuMTk0MDIxNjg1OTUwMjU0ZS0wMiwKKyAgLTkuOTg2NDAyMTgxODAyNjUzZS0wMSwgICA1LjIxMzE3MDQ2ODAyODMzMmUtMDIsCisgIC05Ljk4NjMwMjAzNjkyNTc2MGUtMDEsICAgNS4yMzIzMTkwNTg0MzMwMzVlLTAyLAorICAtOS45ODYyMDE1MjQ4ODEwODllLTAxLCAgIDUuMjUxNDY3NDU2NDYwMzIyZS0wMiwKKyAgLTkuOTg2MTAwNjQ1NjcyMzMzZS0wMSwgICA1LjI3MDYxNTY2MTQwNjE2M2UtMDIsCisgIC05Ljk4NTk5OTM5OTMwMzIwNGUtMDEsICAgNS4yODk3NjM2NzI1NjY1MzJlLTAyLAorICAtOS45ODU4OTc3ODU3Nzc0MjJlLTAxLCAgIDUuMzA4OTExNDg5MjM3NDEzZS0wMiwKKyAgLTkuOTg1Nzk1ODA1MDk4NzI1ZS0wMSwgICA1LjMyODA1OTExMDcxNDc5NWUtMDIsCisgIC05Ljk4NTY5MzQ1NzI3MDg2MWUtMDEsICAgNS4zNDcyMDY1MzYyOTQ2NzNlLTAyLAorICAtOS45ODU1OTA3NDIyOTc1OTNlLTAxLCAgIDUuMzY2MzUzNzY1MjczMDUyZS0wMiwKKyAgLTkuOTg1NDg3NjYwMTgyNjk5ZS0wMSwgICA1LjM4NTUwMDc5Njk0NTk0NGUtMDIsCisgIC05Ljk4NTM4NDIxMDkyOTk2N2UtMDEsICAgNS40MDQ2NDc2MzA2MDkzNjZlLTAyLAorICAtOS45ODUyODAzOTQ1NDMyMDJlLTAxLCAgIDUuNDIzNzk0MjY1NTU5MzQ1ZS0wMiwKKyAgLTkuOTg1MTc2MjExMDI2MjIyZS0wMSwgICA1LjQ0Mjk0MDcwMTA5MTkxM2UtMDIsCisgIC05Ljk4NTA3MTY2MDM4Mjg1NWUtMDEsICAgNS40NjIwODY5MzY1MDMxMTFlLTAyLAorICAtOS45ODQ5NjY3NDI2MTY5NDZlLTAxLCAgIDUuNDgxMjMyOTcxMDg4OTg1ZS0wMiwKKyAgLTkuOTg0ODYxNDU3NzMyMzU0ZS0wMSwgICA1LjUwMDM3ODgwNDE0NTU5MmUtMDIsCisgIC05Ljk4NDc1NTgwNTczMjk0OGUtMDEsICAgNS41MTk1MjQ0MzQ5Njg5OTNlLTAyLAorICAtOS45ODQ2NDk3ODY2MjI2MTJlLTAxLCAgIDUuNTM4NjY5ODYyODU1MjYwZS0wMiwKKyAgLTkuOTg0NTQzNDAwNDA1MjQ4ZS0wMSwgICA1LjU1NzgxNTA4NzEwMDQ2OGUtMDIsCisgIC05Ljk4NDQzNjY0NzA4NDc2M2UtMDEsICAgNS41NzY5NjAxMDcwMDA3MDNlLTAyLAorICAtOS45ODQzMjk1MjY2NjUwODRlLTAxLCAgIDUuNTk2MTA0OTIxODUyMDU3ZS0wMiwKKyAgLTkuOTg0MjIyMDM5MTUwMTUwZS0wMSwgICA1LjYxNTI0OTUzMDk1MDYyOWUtMDIsCisgIC05Ljk4NDExNDE4NDU0MzkxM2UtMDEsICAgNS42MzQzOTM5MzM1OTI1MjllLTAyLAorICAtOS45ODQwMDU5NjI4NTAzMzZlLTAxLCAgIDUuNjUzNTM4MTI5MDczODcwZS0wMiwKKyAgLTkuOTgzODk3Mzc0MDczNDAyZS0wMSwgICA1LjY3MjY4MjExNjY5MDc3NWUtMDIsCisgIC05Ljk4Mzc4ODQxODIxNzEwMGUtMDEsICAgNS42OTE4MjU4OTU3MzkzNzRlLTAyLAorICAtOS45ODM2NzkwOTUyODU0MzhlLTAxLCAgIDUuNzEwOTY5NDY1NTE1ODA2ZS0wMiwKKyAgLTkuOTgzNTY5NDA1MjgyNDM0ZS0wMSwgICA1LjczMDExMjgyNTMxNjIxNmUtMDIsCisgIC05Ljk4MzQ1OTM0ODIxMjEyNGUtMDEsICAgNS43NDkyNTU5NzQ0MzY3NTdlLTAyLAorICAtOS45ODMzNDg5MjQwNzg1NTBlLTAxLCAgIDUuNzY4Mzk4OTEyMTczNTkwZS0wMiwKKyAgLTkuOTgzMjM4MTMyODg1Nzc2ZS0wMSwgICA1Ljc4NzU0MTYzNzgyMjg4NmUtMDIsCisgIC05Ljk4MzEyNjk3NDYzNzg3M2UtMDEsICAgNS44MDY2ODQxNTA2ODA4MTllLTAyLAorICAtOS45ODMwMTU0NDkzMzg5MjllLTAxLCAgIDUuODI1ODI2NDUwMDQzNTc1ZS0wMiwKKyAgLTkuOTgyOTAzNTU2OTkzMDQ0ZS0wMSwgICA1Ljg0NDk2ODUzNTIwNzM0OGUtMDIsCisgIC05Ljk4Mjc5MTI5NzYwNDMzMmUtMDEsICAgNS44NjQxMTA0MDU0NjgzMzRlLTAyLAorICAtOS45ODI2Nzg2NzExNzY5MjFlLTAxLCAgIDUuODgzMjUyMDYwMTIyNzQ0ZS0wMiwKKyAgLTkuOTgyNTY1Njc3NzE0OTUyZS0wMSwgICA1LjkwMjM5MzQ5ODQ2Njc5M2UtMDIsCisgIC05Ljk4MjQ1MjMxNzIyMjU3OWUtMDEsICAgNS45MjE1MzQ3MTk3OTY3MDZlLTAyLAorICAtOS45ODIzMzg1ODk3MDM5NjhlLTAxLCAgIDUuOTQwNjc1NzIzNDA4NzE1ZS0wMiwKKyAgLTkuOTgyMjI0NDk1MTYzMzA1ZS0wMSwgICA1Ljk1OTgxNjUwODU5OTA1OWUtMDIsCisgIC05Ljk4MjExMDAzMzYwNDc4MmUtMDEsICAgNS45Nzg5NTcwNzQ2NjM5ODdlLTAyLAorICAtOS45ODE5OTUyMDUwMzI2MDdlLTAxLCAgIDUuOTk4MDk3NDIwODk5NzU1ZS0wMiwKKyAgLTkuOTgxODgwMDA5NDUxMDAzZS0wMSwgICA2LjAxNzIzNzU0NjYwMjYyNmUtMDIsCisgIC05Ljk4MTc2NDQ0Njg2NDIwNWUtMDEsICAgNi4wMzYzNzc0NTEwNjg4NzRlLTAyLAorICAtOS45ODE2NDg1MTcyNzY0NjJlLTAxLCAgIDYuMDU1NTE3MTMzNTk0Nzc5ZS0wMiwKKyAgLTkuOTgxNTMyMjIwNjkyMDM4ZS0wMSwgICA2LjA3NDY1NjU5MzQ3NjYyOWUtMDIsCisgIC05Ljk4MTQxNTU1NzExNTIwNWUtMDEsICAgNi4wOTM3OTU4MzAwMTA3MjBlLTAyLAorICAtOS45ODEyOTg1MjY1NTAyNTZlLTAxLCAgIDYuMTEyOTM0ODQyNDkzMzU5ZS0wMiwKKyAgLTkuOTgxMTgxMTI5MDAxNDkyZS0wMSwgICA2LjEzMjA3MzYzMDIyMDg1OGUtMDIsCisgIC05Ljk4MTA2MzM2NDQ3MzIzMGUtMDEsICAgNi4xNTEyMTIxOTI0ODk1MzhlLTAyLAorICAtOS45ODA5NDUyMzI5Njk4MDBlLTAxLCAgIDYuMTcwMzUwNTI4NTk1NzMwZS0wMiwKKyAgLTkuOTgwODI2NzM0NDk1NTQ2ZS0wMSwgICA2LjE4OTQ4ODYzNzgzNTc3MmUtMDIsCisgIC05Ljk4MDcwNzg2OTA1NDgyM2UtMDEsICAgNi4yMDg2MjY1MTk1MDYwMDllLTAyLAorICAtOS45ODA1ODg2MzY2NTIwMDJlLTAxLCAgIDYuMjI3NzY0MTcyOTAyNzk3ZS0wMiwKKyAgLTkuOTgwNDY5MDM3MjkxNDY4ZS0wMSwgICA2LjI0NjkwMTU5NzMyMjUwMGUtMDIsCisgIC05Ljk4MDM0OTA3MDk3NzYxOGUtMDEsICAgNi4yNjYwMzg3OTIwNjE0ODdlLTAyLAorICAtOS45ODAyMjg3Mzc3MTQ4NjJlLTAxLCAgIDYuMjg1MTc1NzU2NDE2MTQwZS0wMiwKKyAgLTkuOTgwMTA4MDM3NTA3NjI1ZS0wMSwgICA2LjMwNDMxMjQ4OTY4Mjg0OWUtMDIsCisgIC05Ljk3OTk4Njk3MDM2MDM0NGUtMDEsICAgNi4zMjM0NDg5OTExNTgwMDdlLTAyLAorICAtOS45Nzk4NjU1MzYyNzc0NzBlLTAxLCAgIDYuMzQyNTg1MjYwMTM4MDIzZS0wMiwKKyAgLTkuOTc5NzQzNzM1MjYzNDcwZS0wMSwgICA2LjM2MTcyMTI5NTkxOTMxMGUtMDIsCisgIC05Ljk3OTYyMTU2NzMyMjgyMGUtMDEsICAgNi4zODA4NTcwOTc3OTgyOTBlLTAyLAorICAtOS45Nzk0OTkwMzI0NjAwMTJlLTAxLCAgIDYuMzk5OTkyNjY1MDcxMzk0ZS0wMiwKKyAgLTkuOTc5Mzc2MTMwNjc5NTUzZS0wMSwgICA2LjQxOTEyNzk5NzAzNTA2NGUtMDIsCisgIC05Ljk3OTI1Mjg2MTk4NTk2MGUtMDEsICAgNi40MzgyNjMwOTI5ODU3NDdlLTAyLAorICAtOS45NzkxMjkyMjYzODM3NjZlLTAxLCAgIDYuNDU3Mzk3OTUyMjE5ODk4ZS0wMiwKKyAgLTkuOTc5MDA1MjIzODc3NTE2ZS0wMSwgICA2LjQ3NjUzMjU3NDAzMzk4OWUtMDIsCisgIC05Ljk3ODg4MDg1NDQ3MTc3MWUtMDEsICAgNi40OTU2NjY5NTc3MjQ0ODdlLTAyLAorICAtOS45Nzg3NTYxMTgxNzExMDJlLTAxLCAgIDYuNTE0ODAxMTAyNTg3ODgzZS0wMiwKKyAgLTkuOTc4NjMxMDE0OTgwMDk1ZS0wMSwgICA2LjUzMzkzNTAwNzkyMDY2M2UtMDIsCisgIC05Ljk3ODUwNTU0NDkwMzM1MWUtMDEsICAgNi41NTMwNjg2NzMwMTkzMzNlLTAyLAorICAtOS45NzgzNzk3MDc5NDU0ODNlLTAxLCAgIDYuNTcyMjAyMDk3MTgwMzk5ZS0wMiwKKyAgLTkuOTc4MjUzNTA0MTExMTE2ZS0wMSwgICA2LjU5MTMzNTI3OTcwMDM4MGUtMDIsCisgIC05Ljk3ODEyNjkzMzQwNDg5M2UtMDEsICAgNi42MTA0NjgyMTk4NzU4MDhlLTAyLAorICAtOS45Nzc5OTk5OTU4MzE0NjVlLTAxLCAgIDYuNjI5NjAwOTE3MDAzMjEzZS0wMiwKKyAgLTkuOTc3ODcyNjkxMzk1NTAwZS0wMSwgICA2LjY0ODczMzM3MDM3OTE0NWUtMDIsCisgIC05Ljk3Nzc0NTAyMDEwMTY3OGUtMDEsICAgNi42Njc4NjU1NzkzMDAxNTZlLTAyLAorICAtOS45Nzc2MTY5ODE5NTQ2OTZlLTAxLCAgIDYuNjg2OTk3NTQzMDYyODExZS0wMiwKKyAgLTkuOTc3NDg4NTc2OTU5MjU3ZS0wMSwgICA2LjcwNjEyOTI2MDk2MzY4MmUtMDIsCisgIC05Ljk3NzM1OTgwNTEyMDA4NmUtMDEsICAgNi43MjUyNjA3MzIyOTkzNTBlLTAyLAorICAtOS45NzcyMzA2NjY0NDE5MTZlLTAxLCAgIDYuNzQ0MzkxOTU2MzY2NDA1ZS0wMiwKKyAgLTkuOTc3MTAxMTYwOTI5NDk2ZS0wMSwgICA2Ljc2MzUyMjkzMjQ2MTQ0OGUtMDIsCisgIC05Ljk3Njk3MTI4ODU4NzU4NWUtMDEsICAgNi43ODI2NTM2NTk4ODEwODdlLTAyLAorICAtOS45NzY4NDEwNDk0MjA5NjBlLTAxLCAgIDYuODAxNzg0MTM3OTIxOTM5ZS0wMiwKKyAgLTkuOTc2NzEwNDQzNDM0NDEwZS0wMSwgICA2LjgyMDkxNDM2NTg4MDYzM2UtMDIsCisgIC05Ljk3NjU3OTQ3MDYzMjczN2UtMDEsICAgNi44NDAwNDQzNDMwNTM4MDFlLTAyLAorICAtOS45NzY0NDgxMzEwMjA3NTRlLTAxLCAgIDYuODU5MTc0MDY4NzM4MDk0ZS0wMiwKKyAgLTkuOTc2MzE2NDI0NjAzMjkzZS0wMSwgICA2Ljg3ODMwMzU0MjIzMDE2M2UtMDIsCisgIC05Ljk3NjE4NDM1MTM4NTE5NmUtMDEsICAgNi44OTc0MzI3NjI4MjY2NzVlLTAyLAorICAtOS45NzYwNTE5MTEzNzEzMTZlLTAxLCAgIDYuOTE2NTYxNzI5ODI0Mjk4ZS0wMiwKKyAgLTkuOTc1OTE5MTA0NTY2NTI2ZS0wMSwgICA2LjkzNTY5MDQ0MjUxOTcyMWUtMDIsCisgIC05Ljk3NTc4NTkzMDk3NTcwOGUtMDEsICAgNi45NTQ4MTg5MDAyMDk2MzBlLTAyLAorICAtOS45NzU2NTIzOTA2MDM3NThlLTAxLCAgIDYuOTczOTQ3MTAyMTkwNzMwZS0wMiwKKyAgLTkuOTc1NTE4NDgzNDU1NTg0ZS0wMSwgICA2Ljk5MzA3NTA0Nzc1OTczMWUtMDIsCisgIC05Ljk3NTM4NDIwOTUzNjExM2UtMDEsICAgNy4wMTIyMDI3MzYyMTMzNTJlLTAyLAorICAtOS45NzUyNDk1Njg4NTAyODBlLTAxLCAgIDcuMDMxMzMwMTY2ODQ4MzI1ZS0wMiwKKyAgLTkuOTc1MTE0NTYxNDAzMDM1ZS0wMSwgICA3LjA1MDQ1NzMzODk2MTM4NmUtMDIsCisgIC05Ljk3NDk3OTE4NzE5OTM0MmUtMDEsICAgNy4wNjk1ODQyNTE4NDkyODVlLTAyLAorICAtOS45NzQ4NDM0NDYyNDQxNzllLTAxLCAgIDcuMDg4NzEwOTA0ODA4NzgwZS0wMiwKKyAgLTkuOTc0NzA3MzM4NTQyNTM3ZS0wMSwgICA3LjEwNzgzNzI5NzEzNjY0MGUtMDIsCisgIC05Ljk3NDU3MDg2NDA5OTQxOWUtMDEsICAgNy4xMjY5NjM0MjgxMjk2NDBlLTAyLAorICAtOS45NzQ0MzQwMjI5MTk4NDRlLTAxLCAgIDcuMTQ2MDg5Mjk3MDg0NTY4ZS0wMiwKKyAgLTkuOTc0Mjk2ODE1MDA4ODQyZS0wMSwgICA3LjE2NTIxNDkwMzI5ODIyMWUtMDIsCisgIC05Ljk3NDE1OTI0MDM3MTQ2MGUtMDEsICAgNy4xODQzNDAyNDYwNjc0MDNlLTAyLAorICAtOS45NzQwMjEyOTkwMTI3NTNlLTAxLCAgIDcuMjAzNDY1MzI0Njg4OTMzZS0wMiwKKyAgLTkuOTczODgyOTkwOTM3Nzk1ZS0wMSwgICA3LjIyMjU5MDEzODQ1OTYzMmUtMDIsCisgIC05Ljk3Mzc0NDMxNjE1MTY3MWUtMDEsICAgNy4yNDE3MTQ2ODY2NzYzNDFlLTAyLAorICAtOS45NzM2MDUyNzQ2NTk0NzllLTAxLCAgIDcuMjYwODM4OTY4NjM1ODk5ZS0wMiwKKyAgLTkuOTczNDY1ODY2NDY2MzMyZS0wMSwgICA3LjI3OTk2Mjk4MzYzNTE2N2UtMDIsCisgIC05Ljk3MzMyNjA5MTU3NzM1NWUtMDEsICAgNy4yOTkwODY3MzA5NzEwMDRlLTAyLAorICAtOS45NzMxODU5NDk5OTc2ODZlLTAxLCAgIDcuMzE4MjEwMjA5OTQwMjg5ZS0wMiwKKyAgLTkuOTczMDQ1NDQxNzMyNDgwZS0wMSwgICA3LjMzNzMzMzQxOTgzOTkwM2UtMDIsCisgIC05Ljk3MjkwNDU2Njc4NjkwMmUtMDEsICAgNy4zNTY0NTYzNTk5NjY3NDNlLTAyLAorICAtOS45NzI3NjMzMjUxNjYxMzJlLTAxLCAgIDcuMzc1NTc5MDI5NjE3NzEwZS0wMiwKKyAgLTkuOTcyNjIxNzE2ODc1MzYyZS0wMSwgICA3LjM5NDcwMTQyODA4OTcyMGUtMDIsCisgIC05Ljk3MjQ3OTc0MTkxOTc5OWUtMDEsICAgNy40MTM4MjM1NTQ2Nzk2OThlLTAyLAorICAtOS45NzIzMzc0MDAzMDQ2NjNlLTAxLCAgIDcuNDMyOTQ1NDA4Njg0NTc2ZS0wMiwKKyAgLTkuOTcyMTk0NjkyMDM1MTg3ZS0wMSwgICA3LjQ1MjA2Njk4OTQwMTMwMGUtMDIsCisgIC05Ljk3MjA1MTYxNzExNjYxOGUtMDEsICAgNy40NzExODgyOTYxMjY4MjFlLTAyLAorICAtOS45NzE5MDgxNzU1NTQyMTllLTAxLCAgIDcuNDkwMzA5MzI4MTU4MTA4ZS0wMiwKKyAgLTkuOTcxNzY0MzY3MzUzMjYyZS0wMSwgICA3LjUwOTQzMDA4NDc5MjEzMGUtMDIsCisgIC05Ljk3MTYyMDE5MjUxOTAzM2UtMDEsICAgNy41Mjg1NTA1NjUzMjU4NzdlLTAyLAorICAtOS45NzE0NzU2NTEwNTY4MzVlLTAxLCAgIDcuNTQ3NjcwNzY5MDU2MzM5ZS0wMiwKKyAgLTkuOTcxMzMwNzQyOTcxOTgxZS0wMSwgICA3LjU2Njc5MDY5NTI4MDUyM2UtMDIsCisgIC05Ljk3MTE4NTQ2ODI2OTgwMGUtMDEsICAgNy41ODU5MTAzNDMyOTU0NDVlLTAyLAorICAtOS45NzEwMzk4MjY5NTU2MzNlLTAxLCAgIDcuNjA1MDI5NzEyMzk4MTI2ZS0wMiwKKyAgLTkuOTcwODkzODE5MDM0ODM0ZS0wMSwgICA3LjYyNDE0ODgwMTg4NTYwN2UtMDIsCisgIC05Ljk3MDc0NzQ0NDUxMjc3M2UtMDEsICAgNy42NDMyNjc2MTEwNTQ5MjhlLTAyLAorICAtOS45NzA2MDA3MDMzOTQ4MzBlLTAxLCAgIDcuNjYyMzg2MTM5MjAzMTQ5ZS0wMiwKKyAgLTkuOTcwNDUzNTk1Njg2NDAwZS0wMSwgICA3LjY4MTUwNDM4NTYyNzMzNGUtMDIsCisgIC05Ljk3MDMwNjEyMTM5Mjg5NWUtMDEsICAgNy43MDA2MjIzNDk2MjQ1NjRlLTAyLAorICAtOS45NzAxNTgyODA1MTk3MzNlLTAxLCAgIDcuNzE5NzQwMDMwNDkxOTIwZS0wMiwKKyAgLTkuOTcwMDEwMDczMDcyMzUzZS0wMSwgICA3LjczODg1NzQyNzUyNjUwNWUtMDIsCisgIC05Ljk2OTg2MTQ5OTA1NjIwMmUtMDEsICAgNy43NTc5NzQ1NDAwMjU0MjJlLTAyLAorICAtOS45Njk3MTI1NTg0NzY3NDNlLTAxLCAgIDcuNzc3MDkxMzY3Mjg1Nzk1ZS0wMiwKKyAgLTkuOTY5NTYzMjUxMzM5NDUzZS0wMSwgICA3Ljc5NjIwNzkwODYwNDc0OWUtMDIsCisgIC05Ljk2OTQxMzU3NzY0OTgyMmUtMDEsICAgNy44MTUzMjQxNjMyNzk0MjNlLTAyLAorICAtOS45NjkyNjM1Mzc0MTMzNTFlLTAxLCAgIDcuODM0NDQwMTMwNjA2OTcwZS0wMiwKKyAgLTkuOTY5MTEzMTMwNjM1NTU3ZS0wMSwgICA3Ljg1MzU1NTgwOTg4NDU0OGUtMDIsCisgIC05Ljk2ODk2MjM1NzMyMTk3MmUtMDEsICAgNy44NzI2NzEyMDA0MDkzMzBlLTAyLAorICAtOS45Njg4MTEyMTc0NzgxMzhlLTAxLCAgIDcuODkxNzg2MzAxNDc4NDk0ZS0wMiwKKyAgLTkuOTY4NjU5NzExMTA5NjEzZS0wMSwgICA3LjkxMDkwMTExMjM4OTIzOGUtMDIsCisgIC05Ljk2ODUwNzgzODIyMTk2NmUtMDEsICAgNy45MzAwMTU2MzI0Mzg3NjBlLTAyLAorICAtOS45NjgzNTU1OTg4MjA3ODJlLTAxLCAgIDcuOTQ5MTI5ODYwOTI0Mjc3ZS0wMiwKKyAgLTkuOTY4MjAyOTkyOTExNjU3ZS0wMSwgICA3Ljk2ODI0Mzc5NzE0MzAxM2UtMDIsCisgIC05Ljk2ODA1MDAyMDUwMDIwNGUtMDEsICAgNy45ODczNTc0NDAzOTIyMDBlLTAyLAorICAtOS45Njc4OTY2ODE1OTIwNDZlLTAxLCAgIDguMDA2NDcwNzg5OTY5MDg5ZS0wMiwKKyAgLTkuOTY3NzQyOTc2MTkyODIwZS0wMSwgICA4LjAyNTU4Mzg0NTE3MDkzMmUtMDIsCisgIC05Ljk2NzU4ODkwNDMwODE4MGUtMDEsICAgOC4wNDQ2OTY2MDUyOTUwMDFlLTAyLAorICAtOS45Njc0MzQ0NjU5NDM3ODllLTAxLCAgIDguMDYzODA5MDY5NjM4NTcxZS0wMiwKKyAgLTkuOTY3Mjc5NjYxMTA1MzI1ZS0wMSwgICA4LjA4MjkyMTIzNzQ5ODkzM2UtMDIsCisgIC05Ljk2NzEyNDQ4OTc5ODQ4MGUtMDEsICAgOC4xMDIwMzMxMDgxNzMzODZlLTAyLAorICAtOS45NjY5Njg5NTIwMjg5NjFlLTAxLCAgIDguMTIxMTQ0NjgwOTU5MjQ0ZS0wMiwKKyAgLTkuOTY2ODEzMDQ3ODAyNDgzZS0wMSwgICA4LjE0MDI1NTk1NTE1MzgyNGUtMDIsCisgIC05Ljk2NjY1Njc3NzEyNDc4MmUtMDEsICAgOC4xNTkzNjY5MzAwNTQ0NjVlLTAyLAorICAtOS45NjY1MDAxNDAwMDE2MDFlLTAxLCAgIDguMTc4NDc3NjA0OTU4NTA4ZS0wMiwKKyAgLTkuOTY2MzQzMTM2NDM4Njk5ZS0wMSwgICA4LjE5NzU4Nzk3OTE2MzMwN2UtMDIsCisgIC05Ljk2NjE4NTc2NjQ0MTg1MWUtMDEsICAgOC4yMTY2OTgwNTE5NjYyMzFlLTAyLAorICAtOS45NjYwMjgwMzAwMTY4NDFlLTAxLCAgIDguMjM1ODA3ODIyNjY0NjU0ZS0wMiwKKyAgLTkuOTY1ODY5OTI3MTY5NDcwZS0wMSwgICA4LjI1NDkxNzI5MDU1NTk2N2UtMDIsCisgIC05Ljk2NTcxMTQ1NzkwNTU0OGUtMDEsICAgOC4yNzQwMjY0NTQ5Mzc1NjllLTAyLAorICAtOS45NjU1NTI2MjIyMzA5MDVlLTAxLCAgIDguMjkzMTM1MzE1MTA2ODcwZS0wMiwKKyAgLTkuOTY1MzkzNDIwMTUxMzc5ZS0wMSwgICA4LjMxMjI0Mzg3MDM2MTI5MWUtMDIsCisgIC05Ljk2NTIzMzg1MTY3MjgyNGUtMDEsICAgOC4zMzEzNTIxMTk5OTgyNjhlLTAyLAorICAtOS45NjUwNzM5MTY4MDExMDhlLTAxLCAgIDguMzUwNDYwMDYzMzE1MjQzZS0wMiwKKyAgLTkuOTY0OTEzNjE1NTQyMTA5ZS0wMSwgICA4LjM2OTU2NzY5OTYwOTY3MmUtMDIsCisgIC05Ljk2NDc1Mjk0NzkwMTcyMmUtMDEsICAgOC4zODg2NzUwMjgxNzkwMjNlLTAyLAorICAtOS45NjQ1OTE5MTM4ODU4NTRlLTAxLCAgIDguNDA3NzgyMDQ4MzIwNzcwZS0wMiwKKyAgLTkuOTY0NDMwNTEzNTAwNDI2ZS0wMSwgICA4LjQyNjg4ODc1OTMzMjQwN2UtMDIsCisgIC05Ljk2NDI2ODc0Njc1MTM3MmUtMDEsICAgOC40NDU5OTUxNjA1MTE0MzNlLTAyLAorICAtOS45NjQxMDY2MTM2NDQ2NDFlLTAxLCAgIDguNDY1MTAxMjUxMTU1MzYyZS0wMiwKKyAgLTkuOTYzOTQ0MTE0MTg2MTkzZS0wMSwgICA4LjQ4NDIwNzAzMDU2MTcxM2UtMDIsCisgIC05Ljk2Mzc4MTI0ODM4MjAwMmUtMDEsICAgOC41MDMzMTI0OTgwMjgwMjhlLTAyLAorICAtOS45NjM2MTgwMTYyMzgwNTdlLTAxLCAgIDguNTIyNDE3NjUyODUxODQ4ZS0wMiwKKyAgLTkuOTYzNDU0NDE3NzYwMzU5ZS0wMSwgICA4LjU0MTUyMjQ5NDMzMDczM2UtMDIsCisgIC05Ljk2MzI5MDQ1Mjk1NDkyNGUtMDEsICAgOC41NjA2MjcwMjE3NjIyNTNlLTAyLAorICAtOS45NjMxMjYxMjE4Mjc3ODBlLTAxLCAgIDguNTc5NzMxMjM0NDQzOTkwZS0wMiwKKyAgLTkuOTYyOTYxNDI0Mzg0OTY4ZS0wMSwgICA4LjU5ODgzNTEzMTY3MzUzNGUtMDIsCisgIC05Ljk2Mjc5NjM2MDYzMjU0NmUtMDEsICAgOC42MTc5Mzg3MTI3NDg0OTBlLTAyLAorICAtOS45NjI2MzA5MzA1NzY1ODFlLTAxLCAgIDguNjM3MDQxOTc2OTY2NDc1ZS0wMiwKKyAgLTkuOTYyNDY1MTM0MjIzMTU1ZS0wMSwgICA4LjY1NjE0NDkyMzYyNTExN2UtMDIsCisgIC05Ljk2MjI5ODk3MTU3ODM2NWUtMDEsICAgOC42NzUyNDc1NTIwMjIwNTRlLTAyLAorICAtOS45NjIxMzI0NDI2NDgzMjBlLTAxLCAgIDguNjk0MzQ5ODYxNDU0OTM4ZS0wMiwKKyAgLTkuOTYxOTY1NTQ3NDM5MTQyZS0wMSwgICA4LjcxMzQ1MTg1MTIyMTQzMGUtMDIsCisgIC05Ljk2MTc5ODI4NTk1Njk3MGUtMDEsICAgOC43MzI1NTM1MjA2MTkyMDZlLTAyLAorICAtOS45NjE2MzA2NTgyMDc5NTBlLTAxLCAgIDguNzUxNjU0ODY4OTQ1OTUzZS0wMiwKKyAgLTkuOTYxNDYyNjY0MTk4MjQ2ZS0wMSwgICA4Ljc3MDc1NTg5NTQ5OTM2NmUtMDIsCisgIC05Ljk2MTI5NDMwMzkzNDAzN2UtMDEsICAgOC43ODk4NTY1OTk1NzcxNTllLTAyLAorICAtOS45NjExMjU1Nzc0MjE1MTFlLTAxLCAgIDguODA4OTU2OTgwNDc3MDUwZS0wMiwKKyAgLTkuOTYwOTU2NDg0NjY2ODczZS0wMSwgICA4LjgyODA1NzAzNzQ5Njc3NGUtMDIsCisgIC05Ljk2MDc4NzAyNTY3NjM0MGUtMDEsICAgOC44NDcxNTY3Njk5MzQwNzdlLTAyLAorICAtOS45NjA2MTcyMDA0NTYxNDBlLTAxLCAgIDguODY2MjU2MTc3MDg2NzE1ZS0wMiwKKyAgLTkuOTYwNDQ3MDA5MDEyNTIwZS0wMSwgICA4Ljg4NTM1NTI1ODI1MjQ2MGUtMDIsCisgIC05Ljk2MDI3NjQ1MTM1MTczNmUtMDEsICAgOC45MDQ0NTQwMTI3MjkwODllLTAyLAorICAtOS45NjAxMDU1Mjc0ODAwNTllLTAxLCAgIDguOTIzNTUyNDM5ODE0NDAxZS0wMiwKKyAgLTkuOTU5OTM0MjM3NDAzNzc0ZS0wMSwgICA4Ljk0MjY1MDUzODgwNjE5NmUtMDIsCisgIC05Ljk1OTc2MjU4MTEyOTE3OGUtMDEsICAgOC45NjE3NDgzMDkwMDIyOTZlLTAyLAorICAtOS45NTk1OTA1NTg2NjI1ODNlLTAxLCAgIDguOTgwODQ1NzQ5NzAwNTI4ZS0wMiwKKyAgLTkuOTU5NDE4MTcwMDEwMzEzZS0wMSwgICA4Ljk5OTk0Mjg2MDE5ODczNGUtMDIsCisgIC05Ljk1OTI0NTQxNTE3ODcwOGUtMDEsICAgOS4wMTkwMzk2Mzk3OTQ3NzBlLTAyLAorICAtOS45NTkwNzIyOTQxNzQxMTdlLTAxLCAgIDkuMDM4MTM2MDg3Nzg2NDk4ZS0wMiwKKyAgLTkuOTU4ODk4ODA3MDAyOTA3ZS0wMSwgICA5LjA1NzIzMjIwMzQ3MTc5OWUtMDIsCisgIC05Ljk1ODcyNDk1MzY3MTQ1N2UtMDEsICAgOS4wNzYzMjc5ODYxNDg1NjJlLTAyLAorICAtOS45NTg1NTA3MzQxODYxNThlLTAxLCAgIDkuMDk1NDIzNDM1MTE0NjkzZS0wMiwKKyAgLTkuOTU4Mzc2MTQ4NTUzNDE2ZS0wMSwgICA5LjExNDUxODU0OTY2ODEwMGUtMDIsCisgIC05Ljk1ODIwMTE5Njc3OTY0OWUtMDEsICAgOS4xMzM2MTMzMjkxMDY3MThlLTAyLAorICAtOS45NTgwMjU4Nzg4NzEyOTJlLTAxLCAgIDkuMTUyNzA3NzcyNzI4NDgzZS0wMiwKKyAgLTkuOTU3ODUwMTk0ODM0Nzg4ZS0wMSwgICA5LjE3MTgwMTg3OTgzMTM0NmUtMDIsCisgIC05Ljk1NzY3NDE0NDY3NjU5OGUtMDEsICAgOS4xOTA4OTU2NDk3MTMyNzJlLTAyLAorICAtOS45NTc0OTc3Mjg0MDMxOTVlLTAxLCAgIDkuMjA5OTg5MDgxNjcyMjM5ZS0wMiwKKyAgLTkuOTU3MzIwOTQ2MDIxMDY0ZS0wMSwgICA5LjIyOTA4MjE3NTAwNjIzNWUtMDIsCisgIC05Ljk1NzE0Mzc5NzUzNjcwNmUtMDEsICAgOS4yNDgxNzQ5MjkwMTMyNjBlLTAyLAorICAtOS45NTY5NjYyODI5NTY2MzVlLTAxLCAgIDkuMjY3MjY3MzQyOTkxMzMxZS0wMiwKKyAgLTkuOTU2Nzg4NDAyMjg3Mzc1ZS0wMSwgICA5LjI4NjM1OTQxNjIzODQ3MmUtMDIsCisgIC05Ljk1NjYxMDE1NTUzNTQ2OWUtMDEsICAgOS4zMDU0NTExNDgwNTI3MjVlLTAyLAorICAtOS45NTY0MzE1NDI3MDc0NjllLTAxLCAgIDkuMzI0NTQyNTM3NzMyMTM4ZS0wMiwKKyAgLTkuOTU2MjUyNTYzODA5OTQzZS0wMSwgICA5LjM0MzYzMzU4NDU3NDc3OWUtMDIsCisgIC05Ljk1NjA3MzIxODg0OTQ3MGUtMDEsICAgOS4zNjI3MjQyODc4Nzg3MjBlLTAyLAorICAtOS45NTU4OTM1MDc4MzI2NDZlLTAxLCAgIDkuMzgxODE0NjQ2OTQyMDU1ZS0wMiwKKyAgLTkuOTU1NzEzNDMwNzY2MDc4ZS0wMSwgICA5LjQwMDkwNDY2MTA2Mjg4NGUtMDIsCisgIC05Ljk1NTUzMjk4NzY1NjM4NWUtMDEsICAgOS40MTk5OTQzMjk1MzkzMjBlLTAyLAorICAtOS45NTUzNTIxNzg1MTAyMDRlLTAxLCAgIDkuNDM5MDgzNjUxNjY5NDk0ZS0wMiwKKyAgLTkuOTU1MTcxMDAzMzM0MTgxZS0wMSwgICA5LjQ1ODE3MjYyNjc1MTU0NWUtMDIsCisgIC05Ljk1NDk4OTQ2MjEzNDk3OGUtMDEsICAgOS40NzcyNjEyNTQwODM2MjRlLTAyLAorICAtOS45NTQ4MDc1NTQ5MTkyNjllLTAxLCAgIDkuNDk2MzQ5NTMyOTYzODk5ZS0wMiwKKyAgLTkuOTU0NjI1MjgxNjkzNzQ0ZS0wMSwgICA5LjUxNTQzNzQ2MjY5MDU0OWUtMDIsCisgIC05Ljk1NDQ0MjY0MjQ2NTEwM2UtMDEsICAgOS41MzQ1MjUwNDI1NjE3NjJlLTAyLAorICAtOS45NTQyNTk2MzcyNDAwNjJlLTAxLCAgIDkuNTUzNjEyMjcxODc1NzQ3ZS0wMiwKKyAgLTkuOTU0MDc2MjY2MDI1MzQ5ZS0wMSwgICA5LjU3MjY5OTE0OTkzMDcxNmUtMDIsCisgIC05Ljk1Mzg5MjUyODgyNzcwN2UtMDEsICAgOS41OTE3ODU2NzYwMjQ5MDRlLTAyLAorICAtOS45NTM3MDg0MjU2NTM4OTBlLTAxLCAgIDkuNjEwODcxODQ5NDU2NTUxZS0wMiwKKyAgLTkuOTUzNTIzOTU2NTEwNjY4ZS0wMSwgICA5LjYyOTk1NzY2OTUyMzkxM2UtMDIsCisgIC05Ljk1MzMzOTEyMTQwNDgyM2UtMDEsICAgOS42NDkwNDMxMzU1MjUyNTllLTAyLAorICAtOS45NTMxNTM5MjAzNDMxNTFlLTAxLCAgIDkuNjY4MTI4MjQ2NzU4ODczZS0wMiwKKyAgLTkuOTUyOTY4MzUzMzMyNDYxZS0wMSwgICA5LjY4NzIxMzAwMjUyMzA0N2UtMDIsCisgIC05Ljk1Mjc4MjQyMDM3OTU3N2UtMDEsICAgOS43MDYyOTc0MDIxMTYwOTJlLTAyLAorICAtOS45NTI1OTYxMjE0OTEzMzRlLTAxLCAgIDkuNzI1MzgxNDQ0ODM2MzI3ZS0wMiwKKyAgLTkuOTUyNDA5NDU2Njc0NTgxZS0wMSwgICA5Ljc0NDQ2NTEyOTk4MjA4N2UtMDIsCisgIC05Ljk1MjIyMjQyNTkzNjE4NGUtMDEsICAgOS43NjM1NDg0NTY4NTE3MjBlLTAyLAorICAtOS45NTIwMzUwMjkyODMwMTVlLTAxLCAgIDkuNzgyNjMxNDI0NzQzNTg2ZS0wMiwKKyAgLTkuOTUxODQ3MjY2NzIxOTY5ZS0wMSwgICA5LjgwMTcxNDAzMjk1NjA2MGUtMDIsCisgIC05Ljk1MTY1OTEzODI1OTk0NmUtMDEsICAgOS44MjA3OTYyODA3ODc1MjhlLTAyLAorICAtOS45NTE0NzA2NDM5MDM4NjVlLTAxLCAgIDkuODM5ODc4MTY3NTM2Mzg4ZS0wMiwKKyAgLTkuOTUxMjgxNzgzNjYwNjU1ZS0wMSwgICA5Ljg1ODk1OTY5MjUwMTA1OGUtMDIsCisgIC05Ljk1MTA5MjU1NzUzNzI2MWUtMDEsICAgOS44NzgwNDA4NTQ5Nzk5NjJlLTAyLAorICAtOS45NTA5MDI5NjU1NDA2NDBlLTAxLCAgIDkuODk3MTIxNjU0MjcxNTQzZS0wMiwKKyAgLTkuOTUwNzEzMDA3Njc3NzYyZS0wMSwgICA5LjkxNjIwMjA4OTY3NDI1MGUtMDIsCisgIC05Ljk1MDUyMjY4Mzk1NTYxMGUtMDEsICAgOS45MzUyODIxNjA0ODY1NTRlLTAyLAorICAtOS45NTAzMzE5OTQzODExODZlLTAxLCAgIDkuOTU0MzYxODY2MDA2OTMyZS0wMiwKKyAgLTkuOTUwMTQwOTM4OTYxNDk3ZS0wMSwgICA5Ljk3MzQ0MTIwNTUzMzg4M2UtMDIsCisgIC05Ljk0OTk0OTUxNzcwMzU3MGUtMDEsICAgOS45OTI1MjAxNzgzNjU5MDdlLTAyLAorICAtOS45NDk3NTc3MzA2MTQ0NDFlLTAxLCAgIDEuMDAxMTU5ODc4MzgwMTUzZS0wMSwKKyAgLTkuOTQ5NTY1NTc3NzAxMTY0ZS0wMSwgICAxLjAwMzA2NzcwMjExMzkyOWUtMDEsCisgIC05Ljk0OTM3MzA1ODk3MDgwMWUtMDEsICAgMS4wMDQ5NzU0ODg5Njc3NzJlLTAxLAorICAtOS45NDkxODAxNzQ0MzA0MzJlLTAxLCAgIDEuMDA2ODgzMjM4ODcxNTQwZS0wMSwKKyAgLTkuOTQ4OTg2OTI0MDg3MTQ5ZS0wMSwgICAxLjAwODc5MDk1MTc1NTA4OWUtMDEsCisgIC05Ljk0ODc5MzMwNzk0ODA1NmUtMDEsICAgMS4wMTA2OTg2Mjc1NDgyNzhlLTAxLAorICAtOS45NDg1OTkzMjYwMjAyNzNlLTAxLCAgIDEuMDEyNjA2MjY2MTgwOTY4ZS0wMSwKKyAgLTkuOTQ4NDA0OTc4MzEwOTMyZS0wMSwgICAxLjAxNDUxMzg2NzU4MzAyMWUtMDEsCisgIC05Ljk0ODIxMDI2NDgyNzE3OWUtMDEsICAgMS4wMTY0MjE0MzE2ODQyOThlLTAxLAorICAtOS45NDgwMTUxODU1NzYxNzFlLTAxLCAgIDEuMDE4MzI4OTU4NDE0NjY1ZS0wMSwKKyAgLTkuOTQ3ODE5NzQwNTY1MDgzZS0wMSwgICAxLjAyMDIzNjQ0NzcwMzk4N2UtMDEsCisgIC05Ljk0NzYyMzkyOTgwMTA5OWUtMDEsICAgMS4wMjIxNDM4OTk0ODIxMzJlLTAxLAorICAtOS45NDc0Mjc3NTMyOTE0MjBlLTAxLCAgIDEuMDI0MDUxMzEzNjc4OTY3ZS0wMSwKKyAgLTkuOTQ3MjMxMjExMDQzMjU3ZS0wMSwgICAxLjAyNTk1ODY5MDIyNDM2M2UtMDEsCisgIC05Ljk0NzAzNDMwMzA2MzgzOWUtMDEsICAgMS4wMjc4NjYwMjkwNDgxOTBlLTAxLAorICAtOS45NDY4MzcwMjkzNjA0MDJlLTAxLCAgIDEuMDI5NzczMzMwMDgwMzIyZS0wMSwKKyAgLTkuOTQ2NjM5Mzg5OTQwMjA0ZS0wMSwgICAxLjAzMTY4MDU5MzI1MDYzMmUtMDEsCisgIC05Ljk0NjQ0MTM4NDgxMDUwN2UtMDEsICAgMS4wMzM1ODc4MTg0ODg5OTZlLTAxLAorICAtOS45NDYyNDMwMTM5Nzg1OTRlLTAxLCAgIDEuMDM1NDk1MDA1NzI1MjkxZS0wMSwKKyAgLTkuOTQ2MDQ0Mjc3NDUxNzU3ZS0wMSwgICAxLjAzNzQwMjE1NDg4OTM5NGUtMDEsCisgIC05Ljk0NTg0NTE3NTIzNzMwM2UtMDEsICAgMS4wMzkzMDkyNjU5MTExODVlLTAxLAorICAtOS45NDU2NDU3MDczNDI1NTRlLTAxLCAgIDEuMDQxMjE2MzM4NzIwNTQ2ZS0wMSwKKyAgLTkuOTQ1NDQ1ODczNzc0ODQzZS0wMSwgICAxLjA0MzEyMzM3MzI0NzM1OGUtMDEsCisgIC05Ljk0NTI0NTY3NDU0MTUxN2UtMDEsICAgMS4wNDUwMzAzNjk0MjE1MDZlLTAxLAorICAtOS45NDUwNDUxMDk2NDk5MzdlLTAxLCAgIDEuMDQ2OTM3MzI3MTcyODc0ZS0wMSwKKyAgLTkuOTQ0ODQ0MTc5MTA3NDc2ZS0wMSwgICAxLjA0ODg0NDI0NjQzMTM1MGUtMDEsCisgIC05Ljk0NDY0Mjg4MjkyMTUyNGUtMDEsICAgMS4wNTA3NTExMjcxMjY4MjBlLTAxLAorICAtOS45NDQ0NDEyMjEwOTk0ODBlLTAxLCAgIDEuMDUyNjU3OTY5MTg5MTc2ZS0wMSwKKyAgLTkuOTQ0MjM5MTkzNjQ4NzYwZS0wMSwgICAxLjA1NDU2NDc3MjU0ODMwN2UtMDEsCisgIC05Ljk0NDAzNjgwMDU3Njc5MWUtMDEsICAgMS4wNTY0NzE1MzcxMzQxMDZlLTAxLAorICAtOS45NDM4MzQwNDE4OTEwMTRlLTAxLCAgIDEuMDU4Mzc4MjYyODc2NDY3ZS0wMSwKKyAgLTkuOTQzNjMwOTE3NTk4ODg2ZS0wMSwgICAxLjA2MDI4NDk0OTcwNTI4NGUtMDEsCisgIC05Ljk0MzQyNzQyNzcwNzg3M2UtMDEsICAgMS4wNjIxOTE1OTc1NTA0NTVlLTAxLAorICAtOS45NDMyMjM1NzIyMjU0NThlLTAxLCAgIDEuMDY0MDk4MjA2MzQxODc3ZS0wMSwKKyAgLTkuOTQzMDE5MzUxMTU5MTM2ZS0wMSwgICAxLjA2NjAwNDc3NjAwOTQ1MGUtMDEsCisgIC05Ljk0MjgxNDc2NDUxNjQxNmUtMDEsICAgMS4wNjc5MTEzMDY0ODMwNzRlLTAxLAorICAtOS45NDI2MDk4MTIzMDQ4MThlLTAxLCAgIDEuMDY5ODE3Nzk3NjkyNjUyZS0wMSwKKyAgLTkuOTQyNDA0NDk0NTMxODc5ZS0wMSwgICAxLjA3MTcyNDI0OTU2ODA4OGUtMDEsCisgIC05Ljk0MjE5ODgxMTIwNTE1MGUtMDEsICAgMS4wNzM2MzA2NjIwMzkyODhlLTAxLAorICAtOS45NDE5OTI3NjIzMzIxODllLTAxLCAgIDEuMDc1NTM3MDM1MDM2MTU2ZS0wMSwKKyAgLTkuOTQxNzg2MzQ3OTIwNTc2ZS0wMSwgICAxLjA3NzQ0MzM2ODQ4ODYwM2UtMDEsCisgIC05Ljk0MTU3OTU2Nzk3Nzg5N2UtMDEsICAgMS4wNzkzNDk2NjIzMjY1MzdlLTAxLAorICAtOS45NDEzNzI0MjI1MTE3NTdlLTAxLCAgIDEuMDgxMjU1OTE2NDc5ODY5ZS0wMSwKKyAgLTkuOTQxMTY0OTExNTI5NzcxZS0wMSwgICAxLjA4MzE2MjEzMDg3ODUxMmUtMDEsCisgIC05Ljk0MDk1NzAzNTAzOTU2OWUtMDEsICAgMS4wODUwNjgzMDU0NTIzNzllLTAxLAorICAtOS45NDA3NDg3OTMwNDg3OTRlLTAxLCAgIDEuMDg2OTc0NDQwMTMxMzg3ZS0wMSwKKyAgLTkuOTQwNTQwMTg1NTY1MTAyZS0wMSwgICAxLjA4ODg4MDUzNDg0NTQ1MmUtMDEsCisgIC05Ljk0MDMzMTIxMjU5NjE2NGUtMDEsICAgMS4wOTA3ODY1ODk1MjQ0OTJlLTAxLAorICAtOS45NDAxMjE4NzQxNDk2NjJlLTAxLCAgIDEuMDkyNjkyNjA0MDk4NDI4ZS0wMSwKKyAgLTkuOTM5OTEyMTcwMjMzMjk0ZS0wMSwgICAxLjA5NDU5ODU3ODQ5NzE4MGUtMDEsCisgIC05LjkzOTcwMjEwMDg1NDc2OWUtMDEsICAgMS4wOTY1MDQ1MTI2NTA2NzFlLTAxLAorICAtOS45Mzk0OTE2NjYwMjE4MTFlLTAxLCAgIDEuMDk4NDEwNDA2NDg4ODI2ZS0wMSwKKyAgLTkuOTM5MjgwODY1NzQyMTU4ZS0wMSwgICAxLjEwMDMxNjI1OTk0MTU3MGUtMDEsCisgIC05LjkzOTA2OTcwMDAyMzU2MWUtMDEsICAgMS4xMDIyMjIwNzI5Mzg4MzFlLTAxLAorICAtOS45Mzg4NTgxNjg4NzM3ODFlLTAxLCAgIDEuMTA0MTI3ODQ1NDEwNTM2ZS0wMSwKKyAgLTkuOTM4NjQ2MjcyMzAwNTk3ZS0wMSwgICAxLjEwNjAzMzU3NzI4NjYxN2UtMDEsCisgIC05LjkzODQzNDAxMDMxMTgwMmUtMDEsICAgMS4xMDc5MzkyNjg0OTcwMDZlLTAxLAorICAtOS45MzgyMjEzODI5MTUxOTdlLTAxLCAgIDEuMTA5ODQ0OTE4OTcxNjM0ZS0wMSwKKyAgLTkuOTM4MDA4MzkwMTE4NjAxZS0wMSwgICAxLjExMTc1MDUyODY0MDQzN2UtMDEsCisgIC05LjkzNzc5NTAzMTkyOTg0NmUtMDEsICAgMS4xMTM2NTYwOTc0MzMzNTJlLTAxLAorICAtOS45Mzc1ODEzMDgzNTY3NzRlLTAxLCAgIDEuMTE1NTYxNjI1MjgwMzE1ZS0wMSwKKyAgLTkuOTM3MzY3MjE5NDA3MjQ2ZS0wMSwgICAxLjExNzQ2NzExMjExMTI2NmUtMDEsCisgIC05LjkzNzE1Mjc2NTA4OTEzMmUtMDEsICAgMS4xMTkzNzI1NTc4NTYxNDZlLTAxLAorICAtOS45MzY5Mzc5NDU0MTAzMThlLTAxLCAgIDEuMTIxMjc3OTYyNDQ0ODk2ZS0wMSwKKyAgLTkuOTM2NzIyNzYwMzc4NzAwZS0wMSwgICAxLjEyMzE4MzMyNTgwNzQ2MmUtMDEsCisgIC05LjkzNjUwNzIxMDAwMjE5MWUtMDEsICAgMS4xMjUwODg2NDc4NzM3ODdlLTAxLAorICAtOS45MzYyOTEyOTQyODg3MTdlLTAxLCAgIDEuMTI2OTkzOTI4NTczODE5ZS0wMSwKKyAgLTkuOTM2MDc1MDEzMjQ2MjE2ZS0wMSwgICAxLjEyODg5OTE2NzgzNzUwNWUtMDEsCisgIC05LjkzNTg1ODM2Njg4MjY0MGUtMDEsICAgMS4xMzA4MDQzNjU1OTQ3OTZlLTAxLAorICAtOS45MzU2NDEzNTUyMDU5NTNlLTAxLCAgIDEuMTMyNzA5NTIxNzc1NjQzZS0wMSwKKyAgLTkuOTM1NDIzOTc4MjI0MTM2ZS0wMSwgICAxLjEzNDYxNDYzNjMwOTk5OWUtMDEsCisgIC05LjkzNTIwNjIzNTk0NTE4MWUtMDEsICAgMS4xMzY1MTk3MDkxMjc4MTllLTAxLAorICAtOS45MzQ5ODgxMjgzNzcwOTRlLTAxLCAgIDEuMTM4NDI0NzQwMTU5MDU3ZS0wMSwKKyAgLTkuOTM0NzY5NjU1NTI3ODkyZS0wMSwgICAxLjE0MDMyOTcyOTMzMzY3MmUtMDEsCisgIC05LjkzNDU1MDgxNzQwNTYxMGUtMDEsICAgMS4xNDIyMzQ2NzY1ODE2MjNlLTAxLAorICAtOS45MzQzMzE2MTQwMTgyOTRlLTAxLCAgIDEuMTQ0MTM5NTgxODMyODY5ZS0wMSwKKyAgLTkuOTM0MTEyMDQ1Mzc0MDAxZS0wMSwgICAxLjE0NjA0NDQ0NTAxNzM3NGUtMDEsCisgIC05LjkzMzg5MjExMTQ4MDgwN2UtMDEsICAgMS4xNDc5NDkyNjYwNjUxMDFlLTAxLAorICAtOS45MzM2NzE4MTIzNDY3OTZlLTAxLCAgIDEuMTQ5ODU0MDQ0OTA2MDE1ZS0wMSwKKyAgLTkuOTMzNDUxMTQ3OTgwMDY5ZS0wMSwgICAxLjE1MTc1ODc4MTQ3MDA4MmUtMDEsCisgIC05LjkzMzIzMDExODM4ODc0MGUtMDEsICAgMS4xNTM2NjM0NzU2ODcyNzFlLTAxLAorICAtOS45MzMwMDg3MjM1ODA5MzNlLTAxLCAgIDEuMTU1NTY4MTI3NDg3NTUzZS0wMSwKKyAgLTkuOTMyNzg2OTYzNTY0NzkwZS0wMSwgICAxLjE1NzQ3MjczNjgwMDg5N2UtMDEsCisgIC05LjkzMjU2NDgzODM0ODQ2NGUtMDEsICAgMS4xNTkzNzczMDM1NTcyNzhlLTAxLAorICAtOS45MzIzNDIzNDc5NDAxMjNlLTAxLCAgIDEuMTYxMjgxODI3Njg2NjY5ZS0wMSwKKyAgLTkuOTMyMTE5NDkyMzQ3OTQ1ZS0wMSwgICAxLjE2MzE4NjMwOTExOTA0OGUtMDEsCisgIC05LjkzMTg5NjI3MTU4MDEyNmUtMDEsICAgMS4xNjUwOTA3NDc3ODQzOTBlLTAxLAorICAtOS45MzE2NzI2ODU2NDQ4NzJlLTAxLCAgIDEuMTY2OTk1MTQzNjEyNjc3ZS0wMSwKKyAgLTkuOTMxNDQ4NzM0NTUwNDA0ZS0wMSwgICAxLjE2ODg5OTQ5NjUzMzg4OGUtMDEsCisgIC05LjkzMTIyNDQxODMwNDk1NmUtMDEsICAgMS4xNzA4MDM4MDY0NzgwMDZlLTAxLAorICAtOS45MzA5OTk3MzY5MTY3NzZlLTAxLCAgIDEuMTcyNzA4MDczMzc1MDE1ZS0wMSwKKyAgLTkuOTMwNzc0NjkwMzk0MTIzZS0wMSwgICAxLjE3NDYxMjI5NzE1NDkwMGUtMDEsCisgIC05LjkzMDU0OTI3ODc0NTI3M2UtMDEsICAgMS4xNzY1MTY0Nzc3NDc2NDllLTAxLAorICAtOS45MzAzMjM1MDE5Nzg1MTRlLTAxLCAgIDEuMTc4NDIwNjE1MDgzMjUwZS0wMSwKKyAgLTkuOTMwMDk3MzYwMTAyMTQ2ZS0wMSwgICAxLjE4MDMyNDcwOTA5MTY5M2UtMDEsCisgIC05LjkyOTg3MDg1MzEyNDQ4NGUtMDEsICAgMS4xODIyMjg3NTk3MDI5NzJlLTAxLAorICAtOS45Mjk2NDM5ODEwNTM4NTZlLTAxLCAgIDEuMTg0MTMyNzY2ODQ3MDc4ZS0wMSwKKyAgLTkuOTI5NDE2NzQzODk4NjA1ZS0wMSwgICAxLjE4NjAzNjczMDQ1NDAwN2UtMDEsCisgIC05LjkyOTE4OTE0MTY2NzA4M2UtMDEsICAgMS4xODc5NDA2NTA0NTM3NTZlLTAxLAorICAtOS45Mjg5NjExNzQzNjc2NjBlLTAxLCAgIDEuMTg5ODQ0NTI2Nzc2MzIzZS0wMSwKKyAgLTkuOTI4NzMyODQyMDA4NzE3ZS0wMSwgICAxLjE5MTc0ODM1OTM1MTcwOWUtMDEsCisgIC05LjkyODUwNDE0NDU5ODY1MWUtMDEsICAgMS4xOTM2NTIxNDgxMDk5MTRlLTAxLAorICAtOS45MjgyNzUwODIxNDU4NjhlLTAxLCAgIDEuMTk1NTU1ODkyOTgwOTQxZS0wMSwKKyAgLTkuOTI4MDQ1NjU0NjU4NzkxZS0wMSwgICAxLjE5NzQ1OTU5Mzg5NDc5NmUtMDEsCisgIC05LjkyNzgxNTg2MjE0NTg1NmUtMDEsICAgMS4xOTkzNjMyNTA3ODE0ODVlLTAxLAorICAtOS45Mjc1ODU3MDQ2MTU1MTFlLTAxLCAgIDEuMjAxMjY2ODYzNTcxMDE1ZS0wMSwKKyAgLTkuOTI3MzU1MTgyMDc2MjE4ZS0wMSwgICAxLjIwMzE3MDQzMjE5MzM5N2UtMDEsCisgIC05LjkyNzEyNDI5NDUzNjQ1NWUtMDEsICAgMS4yMDUwNzM5NTY1Nzg2NDFlLTAxLAorICAtOS45MjY4OTMwNDIwMDQ3MDdlLTAxLCAgIDEuMjA2OTc3NDM2NjU2NzYxZS0wMSwKKyAgLTkuOTI2NjYxNDI0NDg5NDgwZS0wMSwgICAxLjIwODg4MDg3MjM1Nzc3MWUtMDEsCisgIC05LjkyNjQyOTQ0MTk5OTI4OGUtMDEsICAgMS4yMTA3ODQyNjM2MTE2ODZlLTAxLAorICAtOS45MjYxOTcwOTQ1NDI2NjFlLTAxLCAgIDEuMjEyNjg3NjEwMzQ4NTI2ZS0wMSwKKyAgLTkuOTI1OTY0MzgyMTI4MTQzZS0wMSwgICAxLjIxNDU5MDkxMjQ5ODMwOGUtMDEsCisgIC05LjkyNTczMTMwNDc2NDI4OGUtMDEsICAgMS4yMTY0OTQxNjk5OTEwNTVlLTAxLAorICAtOS45MjU0OTc4NjI0NTk2NjdlLTAxLCAgIDEuMjE4Mzk3MzgyNzU2Nzg5ZS0wMSwKKyAgLTkuOTI1MjY0MDU1MjIyODYxZS0wMSwgICAxLjIyMDMwMDU1MDcyNTUzNGUtMDEsCisgIC05LjkyNTAyOTg4MzA2MjQ3MGUtMDEsICAgMS4yMjIyMDM2NzM4MjczMTVlLTAxLAorICAtOS45MjQ3OTUzNDU5ODcxMDBlLTAxLCAgIDEuMjI0MTA2NzUxOTkyMTYyZS0wMSwKKyAgLTkuOTI0NTYwNDQ0MDA1Mzc3ZS0wMSwgICAxLjIyNjAwOTc4NTE1MDEwMmUtMDEsCisgIC05LjkyNDMyNTE3NzEyNTkzN2UtMDEsICAgMS4yMjc5MTI3NzMyMzExNjhlLTAxLAorICAtOS45MjQwODk1NDUzNTc0MjhlLTAxLCAgIDEuMjI5ODE1NzE2MTY1MzkxZS0wMSwKKyAgLTkuOTIzODUzNTQ4NzA4NTE3ZS0wMSwgICAxLjIzMTcxODYxMzg4MjgwNWUtMDEsCisgIC05LjkyMzYxNzE4NzE4Nzg3OWUtMDEsICAgMS4yMzM2MjE0NjYzMTM0NDdlLTAxLAorICAtOS45MjMzODA0NjA4MDQyMDRlLTAxLCAgIDEuMjM1NTI0MjczMzg3MzU0ZS0wMSwKKyAgLTkuOTIzMTQzMzY5NTY2MTk2ZS0wMSwgICAxLjIzNzQyNzAzNTAzNDU2NWUtMDEsCisgIC05LjkyMjkwNTkxMzQ4MjU3NGUtMDEsICAgMS4yMzkzMjk3NTExODUxMjJlLTAxLAorICAtOS45MjI2NjgwOTI1NjIwNjZlLTAxLCAgIDEuMjQxMjMyNDIxNzY5MDY2ZS0wMSwKKyAgLTkuOTIyNDI5OTA2ODEzNDE3ZS0wMSwgICAxLjI0MzEzNTA0NjcxNjQ0MmUtMDEsCisgIC05LjkyMjE5MTM1NjI0NTM4NWUtMDEsICAgMS4yNDUwMzc2MjU5NTcyOTdlLTAxLAorICAtOS45MjE5NTI0NDA4NjY3MzllLTAxLCAgIDEuMjQ2OTQwMTU5NDIxNjc2ZS0wMSwKKyAgLTkuOTIxNzEzMTYwNjg2MjY1ZS0wMSwgICAxLjI0ODg0MjY0NzAzOTYzMWUtMDEsCisgIC05LjkyMTQ3MzUxNTcxMjc2MWUtMDEsICAgMS4yNTA3NDUwODg3NDEyMTJlLTAxLAorICAtOS45MjEyMzM1MDU5NTUwMzdlLTAxLCAgIDEuMjUyNjQ3NDg0NDU2NDcxZS0wMSwKKyAgLTkuOTIwOTkzMTMxNDIxOTE4ZS0wMSwgICAxLjI1NDU0OTgzNDExNTQ2MmUtMDEsCisgIC05LjkyMDc1MjM5MjEyMjI0MWUtMDEsICAgMS4yNTY0NTIxMzc2NDgyNDNlLTAxLAorICAtOS45MjA1MTEyODgwNjQ4NTdlLTAxLCAgIDEuMjU4MzU0Mzk0OTg0ODcwZS0wMSwKKyAgLTkuOTIwMjY5ODE5MjU4NjM0ZS0wMSwgICAxLjI2MDI1NjYwNjA1NTQwM2UtMDEsCisgIC05LjkyMDAyNzk4NTcxMjQ0NWUtMDEsICAgMS4yNjIxNTg3NzA3ODk5MDNlLTAxLAorICAtOS45MTk3ODU3ODc0MzUxODZlLTAxLCAgIDEuMjY0MDYwODg5MTE4NDM0ZS0wMSwKKyAgLTkuOTE5NTQzMjI0NDM1NzYwZS0wMSwgICAxLjI2NTk2Mjk2MDk3MTA1OGUtMDEsCisgIC05LjkxOTMwMDI5NjcyMzA4NWUtMDEsICAgMS4yNjc4NjQ5ODYyNzc4NDRlLTAxLAorICAtOS45MTkwNTcwMDQzMDYwOTNlLTAxLCAgIDEuMjY5NzY2OTY0OTY4ODU5ZS0wMSwKKyAgLTkuOTE4ODEzMzQ3MTkzNzMwZS0wMSwgICAxLjI3MTY2ODg5Njk3NDE3MmUtMDEsCisgIC05LjkxODU2OTMyNTM5NDk1NWUtMDEsICAgMS4yNzM1NzA3ODIyMjM4NTRlLTAxLAorICAtOS45MTgzMjQ5Mzg5MTg3MzhlLTAxLCAgIDEuMjc1NDcyNjIwNjQ3OTgwZS0wMSwKKyAgLTkuOTE4MDgwMTg3Nzc0MDY0ZS0wMSwgICAxLjI3NzM3NDQxMjE3NjYyM2UtMDEsCisgIC05LjkxNzgzNTA3MTk2OTkzNWUtMDEsICAgMS4yNzkyNzYxNTY3Mzk4NjFlLTAxLAorICAtOS45MTc1ODk1OTE1MTUzNjFlLTAxLCAgIDEuMjgxMTc3ODU0MjY3NzcxZS0wMSwKKyAgLTkuOTE3MzQzNzQ2NDE5MzY4ZS0wMSwgICAxLjI4MzA3OTUwNDY5MDQzNGUtMDEsCisgIC05LjkxNzA5NzUzNjY5MDk5NWUtMDEsICAgMS4yODQ5ODExMDc5Mzc5MzJlLTAxLAorICAtOS45MTY4NTA5NjIzMzkyOTRlLTAxLCAgIDEuMjg2ODgyNjYzOTQwMzQ3ZS0wMSwKKyAgLTkuOTE2NjA0MDIzMzczMzMyZS0wMSwgICAxLjI4ODc4NDE3MjYyNzc2NWUtMDEsCisgIC05LjkxNjM1NjcxOTgwMjE4N2UtMDEsICAgMS4yOTA2ODU2MzM5MzAyNzRlLTAxLAorICAtOS45MTYxMDkwNTE2MzQ5NTRlLTAxLCAgIDEuMjkyNTg3MDQ3Nzc3OTYxZS0wMSwKKyAgLTkuOTE1ODYxMDE4ODgwNzM1ZS0wMSwgICAxLjI5NDQ4ODQxNDEwMDkxOGUtMDEsCisgIC05LjkxNTYxMjYyMTU0ODY1M2UtMDEsICAgMS4yOTYzODk3MzI4MjkyMzZlLTAxLAorICAtOS45MTUzNjM4NTk2NDc4MzllLTAxLCAgIDEuMjk4MjkxMDAzODkzMDA5ZS0wMSwKKyAgLTkuOTE1MTE0NzMzMTg3NDM5ZS0wMSwgICAxLjMwMDE5MjIyNzIyMjMzM2UtMDEsCisgIC05LjkxNDg2NTI0MjE3NjYxNWUtMDEsICAgMS4zMDIwOTM0MDI3NDczMDZlLTAxLAorICAtOS45MTQ2MTUzODY2MjQ1MzhlLTAxLCAgIDEuMzAzOTk0NTMwMzk4MDI3ZS0wMSwKKyAgLTkuOTE0MzY1MTY2NTQwMzk0ZS0wMSwgICAxLjMwNTg5NTYxMDEwNDU5N2UtMDEsCisgIC05LjkxNDExNDU4MTkzMzM4NWUtMDEsICAgMS4zMDc3OTY2NDE3OTcxMTdlLTAxLAorICAtOS45MTM4NjM2MzI4MTI3MjNlLTAxLCAgIDEuMzA5Njk3NjI1NDA1Njk0ZS0wMSwKKyAgLTkuOTEzNjEyMzE5MTg3NjM1ZS0wMSwgICAxLjMxMTU5ODU2MDg2MDQzM2UtMDEsCisgIC05LjkxMzM2MDY0MTA2NzM2MWUtMDEsICAgMS4zMTM0OTk0NDgwOTE0NDJlLTAxLAorICAtOS45MTMxMDg1OTg0NjExNTRlLTAxLCAgIDEuMzE1NDAwMjg3MDI4ODMxZS0wMSwKKyAgLTkuOTEyODU2MTkxMzc4MjgyZS0wMSwgICAxLjMxNzMwMTA3NzYwMjcxMmUtMDEsCisgIC05LjkxMjYwMzQxOTgyODAyNGUtMDEsICAgMS4zMTkyMDE4MTk3NDMxOThlLTAxLAorICAtOS45MTIzNTAyODM4MTk2NzRlLTAxLCAgIDEuMzIxMTAyNTEzMzgwNDA0ZS0wMSwKKyAgLTkuOTEyMDk2NzgzMzYyNTQxZS0wMSwgICAxLjMyMzAwMzE1ODQ0NDQ0N2UtMDEsCisgIC05LjkxMTg0MjkxODQ2NTk0MmUtMDEsICAgMS4zMjQ5MDM3NTQ4NjU0NDVlLTAxLAorICAtOS45MTE1ODg2ODkxMzkyMTRlLTAxLCAgIDEuMzI2ODA0MzAyNTczNTIxZS0wMSwKKyAgLTkuOTExMzM0MDk1MzkxNzAyZS0wMSwgICAxLjMyODcwNDgwMTQ5ODc5NGUtMDEsCisgIC05LjkxMTA3OTEzNzIzMjc2OWUtMDEsICAgMS4zMzA2MDUyNTE1NzEzOTFlLTAxLAorICAtOS45MTA4MjM4MTQ2NzE3ODZlLTAxLCAgIDEuMzMyNTA1NjUyNzIxNDM2ZS0wMSwKKyAgLTkuOTEwNTY4MTI3NzE4MTQzZS0wMSwgICAxLjMzNDQwNjAwNDg3OTA1N2UtMDEsCisgIC05LjkxMDMxMjA3NjM4MTI0MWUtMDEsICAgMS4zMzYzMDYzMDc5NzQzODNlLTAxLAorICAtOS45MTAwNTU2NjA2NzA0OTRlLTAxLCAgIDEuMzM4MjA2NTYxOTM3NTQ3ZS0wMSwKKyAgLTkuOTA5Nzk4ODgwNTk1MzI3ZS0wMSwgICAxLjM0MDEwNjc2NjY5ODY4MWUtMDEsCisgIC05LjkwOTU0MTczNjE2NTE4NWUtMDEsICAgMS4zNDIwMDY5MjIxODc5MjBlLTAxLAorICAtOS45MDkyODQyMjczODk1MjBlLTAxLCAgIDEuMzQzOTA3MDI4MzM1NDAxZS0wMSwKKyAgLTkuOTA5MDI2MzU0Mjc3ODAwZS0wMSwgICAxLjM0NTgwNzA4NTA3MTI2MmUtMDEsCisgIC05LjkwODc2ODExNjgzOTUwN2UtMDEsICAgMS4zNDc3MDcwOTIzMjU2NDNlLTAxLAorICAtOS45MDg1MDk1MTUwODQxMzZlLTAxLCAgIDEuMzQ5NjA3MDUwMDI4Njg3ZS0wMSwKKyAgLTkuOTA4MjUwNTQ5MDIxMTk1ZS0wMSwgICAxLjM1MTUwNjk1ODExMDUzOWUtMDEsCisgIC05LjkwNzk5MTIxODY2MDIwNGUtMDEsICAgMS4zNTM0MDY4MTY1MDEzNDJlLTAxLAorICAtOS45MDc3MzE1MjQwMTA2OThlLTAxLCAgIDEuMzU1MzA2NjI1MTMxMjQ2ZS0wMSwKKyAgLTkuOTA3NDcxNDY1MDgyMjI3ZS0wMSwgICAxLjM1NzIwNjM4MzkzMDM5OWUtMDEsCisgIC05LjkwNzIxMTA0MTg4NDM1MmUtMDEsICAgMS4zNTkxMDYwOTI4Mjg5NTNlLTAxLAorICAtOS45MDY5NTAyNTQ0MjY2NDZlLTAxLCAgIDEuMzYxMDA1NzUxNzU3MDYyZS0wMSwKKyAgLTkuOTA2Njg5MTAyNzE4NzAxZS0wMSwgICAxLjM2MjkwNTM2MDY0NDg4MGUtMDEsCisgIC05LjkwNjQyNzU4Njc3MDExNmUtMDEsICAgMS4zNjQ4MDQ5MTk0MjI1NjNlLTAxLAorICAtOS45MDYxNjU3MDY1OTA1MDZlLTAxLCAgIDEuMzY2NzA0NDI4MDIwMjcxZS0wMSwKKyAgLTkuOTA1OTAzNDYyMTg5NTAxZS0wMSwgICAxLjM2ODYwMzg4NjM2ODE2NGUtMDEsCisgIC05LjkwNTY0MDg1MzU3Njc0NGUtMDEsICAgMS4zNzA1MDMyOTQzOTY0MDRlLTAxLAorICAtOS45MDUzNzc4ODA3NjE4ODhlLTAxLCAgIDEuMzcyNDAyNjUyMDM1MTU2ZS0wMSwKKyAgLTkuOTA1MTE0NTQzNzU0NjAzZS0wMSwgICAxLjM3NDMwMTk1OTIxNDU4NmUtMDEsCisgIC05LjkwNDg1MDg0MjU2NDU3MWUtMDEsICAgMS4zNzYyMDEyMTU4NjQ4NjBlLTAxLAorICAtOS45MDQ1ODY3NzcyMDE0ODZlLTAxLCAgIDEuMzc4MTAwNDIxOTE2MTUxZS0wMSwKKyAgLTkuOTA0MzIyMzQ3Njc1MDYwZS0wMSwgICAxLjM3OTk5OTU3NzI5ODYyOGUtMDEsCisgIC05LjkwNDA1NzU1Mzk5NTAxM2UtMDEsICAgMS4zODE4OTg2ODE5NDI0NjZlLTAxLAorICAtOS45MDM3OTIzOTYxNzEwODJlLTAxLCAgIDEuMzgzNzk3NzM1Nzc3ODM5ZS0wMSwKKyAgLTkuOTAzNTI2ODc0MjEzMDE0ZS0wMSwgICAxLjM4NTY5NjczODczNDkyNWUtMDEsCisgIC05LjkwMzI2MDk4ODEzMDU3M2UtMDEsICAgMS4zODc1OTU2OTA3NDM5MDRlLTAxLAorICAtOS45MDI5OTQ3Mzc5MzM1MzZlLTAxLCAgIDEuMzg5NDk0NTkxNzM0OTU1ZS0wMSwKKyAgLTkuOTAyNzI4MTIzNjMxNjkxZS0wMSwgICAxLjM5MTM5MzQ0MTYzODI2MmUtMDEsCisgIC05LjkwMjQ2MTE0NTIzNDg0MGUtMDEsICAgMS4zOTMyOTIyNDAzODQwMTBlLTAxLAorICAtOS45MDIxOTM4MDI3NTI4MDBlLTAxLCAgIDEuMzk1MTkwOTg3OTAyMzg1ZS0wMSwKKyAgLTkuOTAxOTI2MDk2MTk1NDAwZS0wMSwgICAxLjM5NzA4OTY4NDEyMzU3NmUtMDEsCisgIC05LjkwMTY1ODAyNTU3MjQ4NGUtMDEsICAgMS4zOTg5ODgzMjg5Nzc3NzJlLTAxLAorICAtOS45MDEzODk1OTA4OTM5MDZlLTAxLCAgIDEuNDAwODg2OTIyMzk1MTY3ZS0wMSwKKyAgLTkuOTAxMTIwNzkyMTY5NTM4ZS0wMSwgICAxLjQwMjc4NTQ2NDMwNTk1NGUtMDEsCisgIC05LjkwMDg1MTYyOTQwOTI2MGUtMDEsICAgMS40MDQ2ODM5NTQ2NDAzMzBlLTAxLAorICAtOS45MDA1ODIxMDI2MjI5NzFlLTAxLCAgIDEuNDA2NTgyMzkzMzI4NDkyZS0wMSwKKyAgLTkuOTAwMzEyMjExODIwNTgwZS0wMSwgICAxLjQwODQ4MDc4MDMwMDY0MWUtMDEsCisgIC05LjkwMDA0MTk1NzAxMjAwOWUtMDEsICAgMS40MTAzNzkxMTU0ODY5NzdlLTAxLAorICAtOS44OTk3NzEzMzgyMDcxOTZlLTAxLCAgIDEuNDEyMjc3Mzk4ODE3NzA1ZS0wMSwKKyAgLTkuODk5NTAwMzU1NDE2MDkwZS0wMSwgICAxLjQxNDE3NTYzMDIyMzAzMGUtMDEsCisgIC05Ljg5OTIyOTAwODY0ODY1NWUtMDEsICAgMS40MTYwNzM4MDk2MzMxNjBlLTAxLAorICAtOS44OTg5NTcyOTc5MTQ4NjdlLTAxLCAgIDEuNDE3OTcxOTM2OTc4MzA0ZS0wMSwKKyAgLTkuODk4Njg1MjIzMjI0NzE2ZS0wMSwgICAxLjQxOTg3MDAxMjE4ODY3M2UtMDEsCisgIC05Ljg5ODQxMjc4NDU4ODIwNWUtMDEsICAgMS40MjE3NjgwMzUxOTQ0ODBlLTAxLAorICAtOS44OTgxMzk5ODIwMTUzNTNlLTAxLCAgIDEuNDIzNjY2MDA1OTI1OTQyZS0wMSwKKyAgLTkuODk3ODY2ODE1NTE2MTg2ZS0wMSwgICAxLjQyNTU2MzkyNDMxMzI3M2UtMDEsCisgIC05Ljg5NzU5MzI4NTEwMDc1MmUtMDEsICAgMS40Mjc0NjE3OTAyODY2OTVlLTAxLAorICAtOS44OTczMTkzOTA3NzkxMDZlLTAxLCAgIDEuNDI5MzU5NjAzNzc2NDI3ZS0wMSwKKyAgLTkuODk3MDQ1MTMyNTYxMzE4ZS0wMSwgICAxLjQzMTI1NzM2NDcxMjY5MmUtMDEsCisgIC05Ljg5Njc3MDUxMDQ1NzQ3MmUtMDEsICAgMS40MzMxNTUwNzMwMjU3MTVlLTAxLAorICAtOS44OTY0OTU1MjQ0Nzc2NjVlLTAxLCAgIDEuNDM1MDUyNzI4NjQ1NzIzZS0wMSwKKyAgLTkuODk2MjIwMTc0NjMyMDA5ZS0wMSwgICAxLjQzNjk1MDMzMTUwMjk0NWUtMDEsCisgIC05Ljg5NTk0NDQ2MDkzMDYyNWUtMDEsICAgMS40Mzg4NDc4ODE1Mjc2MTBlLTAxLAorICAtOS44OTU2NjgzODMzODM2NTFlLTAxLCAgIDEuNDQwNzQ1Mzc4NjQ5OTUyZS0wMSwKKyAgLTkuODk1MzkxOTQyMDAxMjM5ZS0wMSwgICAxLjQ0MjY0MjgyMjgwMDIwNGUtMDEsCisgIC05Ljg5NTExNTEzNjc5MzU1MmUtMDEsICAgMS40NDQ1NDAyMTM5MDg2MDVlLTAxLAorICAtOS44OTQ4Mzc5Njc3NzA3NjhlLTAxLCAgIDEuNDQ2NDM3NTUxOTA1MzkwZS0wMSwKKyAgLTkuODk0NTYwNDM0OTQzMDc3ZS0wMSwgICAxLjQ0ODMzNDgzNjcyMDgwMmUtMDEsCisgIC05Ljg5NDI4MjUzODMyMDY4MmUtMDEsICAgMS40NTAyMzIwNjgyODUwODJlLTAxLAorICAtOS44OTQwMDQyNzc5MTM4MDRlLTAxLCAgIDEuNDUyMTI5MjQ2NTI4NDc1ZS0wMSwKKyAgLTkuODkzNzI1NjUzNzMyNjcwZS0wMSwgICAxLjQ1NDAyNjM3MTM4MTIyNmUtMDEsCisgIC05Ljg5MzQ0NjY2NTc4NzUyNmUtMDEsICAgMS40NTU5MjM0NDI3NzM1ODNlLTAxLAorICAtOS44OTMxNjczMTQwODg2MzBlLTAxLCAgIDEuNDU3ODIwNDYwNjM1Nzk5ZS0wMSwKKyAgLTkuODkyODg3NTk4NjQ2MjUyZS0wMSwgICAxLjQ1OTcxNzQyNDg5ODEyMmUtMDEsCisgIC05Ljg5MjYwNzUxOTQ3MDY3NmUtMDEsICAgMS40NjE2MTQzMzU0OTA4MDllLTAxLAorICAtOS44OTIzMjcwNzY1NzIyMDBlLTAxLCAgIDEuNDYzNTExMTkyMzQ0MTE1ZS0wMSwKKyAgLTkuODkyMDQ2MjY5OTYxMTM4ZS0wMSwgICAxLjQ2NTQwNzk5NTM4ODI5OGUtMDEsCisgIC05Ljg5MTc2NTA5OTY0NzgxMGUtMDEsICAgMS40NjczMDQ3NDQ1NTM2MTdlLTAxLAorICAtOS44OTE0ODM1NjU2NDI1NTZlLTAxLCAgIDEuNDY5MjAxNDM5NzcwMzM2ZS0wMSwKKyAgLTkuODkxMjAxNjY3OTU1NzI3ZS0wMSwgICAxLjQ3MTA5ODA4MDk2ODcxOGUtMDEsCisgIC05Ljg5MDkxOTQwNjU5NzY4OGUtMDEsICAgMS40NzI5OTQ2NjgwNzkwMjhlLTAxLAorICAtOS44OTA2MzY3ODE1Nzg4MTVlLTAxLCAgIDEuNDc0ODkxMjAxMDMxNTM2ZS0wMSwKKyAgLTkuODkwMzUzNzkyOTA5NTAzZS0wMSwgICAxLjQ3Njc4NzY3OTc1NjUxMGUtMDEsCisgIC05Ljg5MDA3MDQ0MDYwMDE1M2UtMDEsICAgMS40Nzg2ODQxMDQxODQyMjJlLTAxLAorICAtOS44ODk3ODY3MjQ2NjExODVlLTAxLCAgIDEuNDgwNTgwNDc0MjQ0OTQ3ZS0wMSwKKyAgLTkuODg5NTAyNjQ1MTAzMDMwZS0wMSwgICAxLjQ4MjQ3Njc4OTg2ODk2MGUtMDEsCisgIC05Ljg4OTIxODIwMTkzNjEzMmUtMDEsICAgMS40ODQzNzMwNTA5ODY1NDBlLTAxLAorICAtOS44ODg5MzMzOTUxNzA5NTFlLTAxLCAgIDEuNDg2MjY5MjU3NTI3OTY1ZS0wMSwKKyAgLTkuODg4NjQ4MjI0ODE3OTU2ZS0wMSwgICAxLjQ4ODE2NTQwOTQyMzUxOWUtMDEsCisgIC05Ljg4ODM2MjY5MDg4NzYzNWUtMDEsICAgMS40OTAwNjE1MDY2MDM0ODRlLTAxLAorICAtOS44ODgwNzY3OTMzOTA0ODVlLTAxLCAgIDEuNDkxOTU3NTQ4OTk4MTQ4ZS0wMSwKKyAgLTkuODg3NzkwNTMyMzM3MDE1ZS0wMSwgICAxLjQ5Mzg1MzUzNjUzNzc5N2UtMDEsCisgIC05Ljg4NzUwMzkwNzczNzc1NGUtMDEsICAgMS40OTU3NDk0NjkxNTI3MjJlLTAxLAorICAtOS44ODcyMTY5MTk2MDMyMzhlLTAxLCAgIDEuNDk3NjQ1MzQ2NzczMjE1ZS0wMSwKKyAgLTkuODg2OTI5NTY3OTQ0MDIwZS0wMSwgICAxLjQ5OTU0MTE2OTMyOTU3MGUtMDEsCisgIC05Ljg4NjY0MTg1Mjc3MDY2MmUtMDEsICAgMS41MDE0MzY5MzY3NTIwODJlLTAxLAorICAtOS44ODYzNTM3NzQwOTM3NDhlLTAxLCAgIDEuNTAzMzMyNjQ4OTcxMDUwZS0wMSwKKyAgLTkuODg2MDY1MzMxOTIzODY0ZS0wMSwgICAxLjUwNTIyODMwNTkxNjc3NGUtMDEsCisgIC05Ljg4NTc3NjUyNjI3MTYyMGUtMDEsICAgMS41MDcxMjM5MDc1MTk1NTZlLTAxLAorICAtOS44ODU0ODczNTcxNDc2MzJlLTAxLCAgIDEuNTA5MDE5NDUzNzA5NzAwZS0wMSwKKyAgLTkuODg1MTk3ODI0NTYyNTMzZS0wMSwgICAxLjUxMDkxNDk0NDQxNzUxM2UtMDEsCisgIC05Ljg4NDkwNzkyODUyNjk2NmUtMDEsICAgMS41MTI4MTAzNzk1NzMzMDJlLTAxLAorICAtOS44ODQ2MTc2NjkwNTE1OTNlLTAxLCAgIDEuNTE0NzA1NzU5MTA3Mzc4ZS0wMSwKKyAgLTkuODg0MzI3MDQ2MTQ3MDgzZS0wMSwgICAxLjUxNjYwMTA4Mjk1MDA1M2UtMDEsCisgIC05Ljg4NDAzNjA1OTgyNDEyNGUtMDEsICAgMS41MTg0OTYzNTEwMzE2NDJlLTAxLAorICAtOS44ODM3NDQ3MTAwOTM0MTNlLTAxLCAgIDEuNTIwMzkxNTYzMjgyNDYxZS0wMSwKKyAgLTkuODgzNDUyOTk2OTY1NjYxZS0wMSwgICAxLjUyMjI4NjcxOTYzMjgyN2UtMDEsCisgIC05Ljg4MzE2MDkyMDQ1MTU5N2UtMDEsICAgMS41MjQxODE4MjAwMTMwNjNlLTAxLAorICAtOS44ODI4Njg0ODA1NjE5NThlLTAxLCAgIDEuNTI2MDc2ODY0MzUzNDkxZS0wMSwKKyAgLTkuODgyNTc1Njc3MzA3NDk1ZS0wMSwgICAxLjUyNzk3MTg1MjU4NDQzNGUtMDEsCisgIC05Ljg4MjI4MjUxMDY5ODk3NGUtMDEsICAgMS41Mjk4NjY3ODQ2MzYyMjBlLTAxLAorICAtOS44ODE5ODg5ODA3NDcxNzZlLTAxLCAgIDEuNTMxNzYxNjYwNDM5MTc4ZS0wMSwKKyAgLTkuODgxNjk1MDg3NDYyODkxZS0wMSwgICAxLjUzMzY1NjQ3OTkyMzYzOWUtMDEsCisgIC05Ljg4MTQwMDgzMDg1NjkyNmUtMDEsICAgMS41MzU1NTEyNDMwMTk5MzRlLTAxLAorICAtOS44ODExMDYyMTA5NDAwOThlLTAxLCAgIDEuNTM3NDQ1OTQ5NjU4NDAwZS0wMSwKKyAgLTkuODgwODExMjI3NzIzMjQxZS0wMSwgICAxLjUzOTM0MDU5OTc2OTM3M2UtMDEsCisgIC05Ljg4MDUxNTg4MTIxNzIwMWUtMDEsICAgMS41NDEyMzUxOTMyODMxOTRlLTAxLAorICAtOS44ODAyMjAxNzE0MzI4MzVlLTAxLCAgIDEuNTQzMTI5NzMwMTMwMjAxZS0wMSwKKyAgLTkuODc5OTI0MDk4MzgxMDE5ZS0wMSwgICAxLjU0NTAyNDIxMDI0MDczOWUtMDEsCisgIC05Ljg3OTYyNzY2MjA3MjYzNGUtMDEsICAgMS41NDY5MTg2MzM1NDUxNTRlLTAxLAorICAtOS44NzkzMzA4NjI1MTg1ODRlLTAxLCAgIDEuNTQ4ODEyOTk5OTczNzkzZS0wMSwKKyAgLTkuODc5MDMzNjk5NzI5Nzc4ZS0wMSwgICAxLjU1MDcwNzMwOTQ1NzAwNWUtMDEsCisgIC05Ljg3ODczNjE3MzcxNzE0MmUtMDEsICAgMS41NTI2MDE1NjE5MjUxNDJlLTAxLAorICAtOS44Nzg0MzgyODQ0OTE2MTdlLTAxLCAgIDEuNTU0NDk1NzU3MzA4NTU5ZS0wMSwKKyAgLTkuODc4MTQwMDMyMDY0MTU1ZS0wMSwgICAxLjU1NjM4OTg5NTUzNzYwOWUtMDEsCisgIC05Ljg3Nzg0MTQxNjQ0NTcyMmUtMDEsICAgMS41NTgyODM5NzY1NDI2NTJlLTAxLAorICAtOS44Nzc1NDI0Mzc2NDcyOTVlLTAxLCAgIDEuNTYwMTc4MDAwMjU0MDQ4ZS0wMSwKKyAgLTkuODc3MjQzMDk1Njc5ODcwZS0wMSwgICAxLjU2MjA3MTk2NjYwMjE1OWUtMDEsCisgIC05Ljg3Njk0MzM5MDU1NDQ1MWUtMDEsICAgMS41NjM5NjU4NzU1MTczNDllLTAxLAorICAtOS44NzY2NDMzMjIyODIwNTdlLTAxLCAgIDEuNTY1ODU5NzI2OTI5OTg0ZS0wMSwKKyAgLTkuODc2MzQyODkwODczNzIyZS0wMSwgICAxLjU2Nzc1MzUyMDc3MDQzNGUtMDEsCisgIC05Ljg3NjA0MjA5NjM0MDQ5MmUtMDEsICAgMS41Njk2NDcyNTY5NjkwNjhlLTAxLAorICAtOS44NzU3NDA5Mzg2OTM0MjRlLTAxLCAgIDEuNTcxNTQwOTM1NDU2MjU5ZS0wMSwKKyAgLTkuODc1NDM5NDE3OTQzNTkyZS0wMSwgICAxLjU3MzQzNDU1NjE2MjM4MmUtMDEsCisgIC05Ljg3NTEzNzUzNDEwMjA4NGUtMDEsICAgMS41NzUzMjgxMTkwMTc4MTVlLTAxLAorICAtOS44NzQ4MzUyODcxNzk5OTdlLTAxLCAgIDEuNTc3MjIxNjIzOTUyOTM2ZS0wMSwKKyAgLTkuODc0NTMyNjc3MTg4NDQ2ZS0wMSwgICAxLjU3OTExNTA3MDg5ODEyN2UtMDEsCisgIC05Ljg3NDIyOTcwNDEzODU1NGUtMDEsICAgMS41ODEwMDg0NTk3ODM3NzBlLTAxLAorICAtOS44NzM5MjYzNjgwNDE0NjJlLTAxLCAgIDEuNTgyOTAxNzkwNTQwMjUyZS0wMSwKKyAgLTkuODczNjIyNjY4OTA4MzI0ZS0wMSwgICAxLjU4NDc5NTA2MzA5Nzk2MGUtMDEsCisgIC05Ljg3MzMxODYwNjc1MDMwNGUtMDEsICAgMS41ODY2ODgyNzczODcyODNlLTAxLAorICAtOS44NzMwMTQxODE1Nzg1ODRlLTAxLCAgIDEuNTg4NTgxNDMzMzM4NjE0ZS0wMSwKKyAgLTkuODcyNzA5MzkzNDA0MzU0ZS0wMSwgICAxLjU5MDQ3NDUzMDg4MjM0OGUtMDEsCisgIC05Ljg3MjQwNDI0MjIzODgyM2UtMDEsICAgMS41OTIzNjc1Njk5NDg4NzhlLTAxLAorICAtOS44NzIwOTg3MjgwOTMyMDhlLTAxLCAgIDEuNTk0MjYwNTUwNDY4NjA2ZS0wMSwKKyAgLTkuODcxNzkyODUwOTc4NzQzZS0wMSwgICAxLjU5NjE1MzQ3MjM3MTkzMWUtMDEsCisgIC05Ljg3MTQ4NjYxMDkwNjY3NmUtMDEsICAgMS41OTgwNDYzMzU1ODkyNTRlLTAxLAorICAtOS44NzExODAwMDc4ODgyNjNlLTAxLCAgIDEuNTk5OTM5MTQwMDUwOTgzZS0wMSwKKyAgLTkuODcwODczMDQxOTM0Nzc5ZS0wMSwgICAxLjYwMTgzMTg4NTY4NzUyMmUtMDEsCisgIC05Ljg3MDU2NTcxMzA1NzUxMGUtMDEsICAgMS42MDM3MjQ1NzI0MjkyODNlLTAxLAorICAtOS44NzAyNTgwMjEyNjc3NTZlLTAxLCAgIDEuNjA1NjE3MjAwMjA2Njc1ZS0wMSwKKyAgLTkuODY5OTQ5OTY2NTc2ODMwZS0wMSwgICAxLjYwNzUwOTc2ODk1MDExMmUtMDEsCisgIC05Ljg2OTY0MTU0ODk5NjA1N2UtMDEsICAgMS42MDk0MDIyNzg1OTAwMTFlLTAxLAorICAtOS44NjkzMzI3Njg1MzY3NzdlLTAxLCAgIDEuNjExMjk0NzI5MDU2Nzg4ZS0wMSwKKyAgLTkuODY5MDIzNjI1MjEwMzQ1ZS0wMSwgICAxLjYxMzE4NzEyMDI4MDg2NGUtMDEsCisgIC05Ljg2ODcxNDExOTAyODEyNWUtMDEsICAgMS42MTUwNzk0NTIxOTI2NjFlLTAxLAorICAtOS44Njg0MDQyNTAwMDE0OTdlLTAxLCAgIDEuNjE2OTcxNzI0NzIyNjA0ZS0wMSwKKyAgLTkuODY4MDk0MDE4MTQxODU1ZS0wMSwgICAxLjYxODg2MzkzNzgwMTExOGUtMDEsCisgIC05Ljg2Nzc4MzQyMzQ2MDYwNGUtMDEsICAgMS42MjA3NTYwOTEzNTg2MzNlLTAxLAorICAtOS44Njc0NzI0NjU5NjkxNjZlLTAxLCAgIDEuNjIyNjQ4MTg1MzI1NTgwZS0wMSwKKyAgLTkuODY3MTYxMTQ1Njc4OTcxZS0wMSwgICAxLjYyNDU0MDIxOTYzMjM5MmUtMDEsCisgIC05Ljg2Njg0OTQ2MjYwMTQ2N2UtMDEsICAgMS42MjY0MzIxOTQyMDk1MDNlLTAxLAorICAtOS44NjY1Mzc0MTY3NDgxMTNlLTAxLCAgIDEuNjI4MzI0MTA4OTg3MzUyZS0wMSwKKyAgLTkuODY2MjI1MDA4MTMwMzg1ZS0wMSwgICAxLjYzMDIxNTk2Mzg5NjM3OGUtMDEsCisgIC05Ljg2NTkxMjIzNjc1OTc2NGUtMDEsICAgMS42MzIxMDc3NTg4NjcwMjRlLTAxLAorICAtOS44NjU1OTkxMDI2NDc3NTRlLTAxLCAgIDEuNjMzOTk5NDkzODI5NzMyZS0wMSwKKyAgLTkuODY1Mjg1NjA1ODA1ODY3ZS0wMSwgICAxLjYzNTg5MTE2ODcxNDk1MGUtMDEsCisgIC05Ljg2NDk3MTc0NjI0NTYyOWUtMDEsICAgMS42Mzc3ODI3ODM0NTMxMjdlLTAxLAorICAtOS44NjQ2NTc1MjM5Nzg1NzllLTAxLCAgIDEuNjM5Njc0MzM3OTc0NzEyZS0wMSwKKyAgLTkuODY0MzQyOTM5MDE2MjcyZS0wMSwgICAxLjY0MTU2NTgzMjIxMDE1OGUtMDEsCisgIC05Ljg2NDAyNzk5MTM3MDI3MmUtMDEsICAgMS42NDM0NTcyNjYwODk5MjJlLTAxLAorICAtOS44NjM3MTI2ODEwNTIxNjBlLTAxLCAgIDEuNjQ1MzQ4NjM5NTQ0NDYwZS0wMSwKKyAgLTkuODYzMzk3MDA4MDczNTMwZS0wMSwgICAxLjY0NzIzOTk1MjUwNDIzMmUtMDEsCisgIC05Ljg2MzA4MDk3MjQ0NTk4N2UtMDEsICAgMS42NDkxMzEyMDQ4OTk2OTllLTAxLAorICAtOS44NjI3NjQ1NzQxODExNTFlLTAxLCAgIDEuNjUxMDIyMzk2NjYxMzI3ZS0wMSwKKyAgLTkuODYyNDQ3ODEzMjkwNjU1ZS0wMSwgICAxLjY1MjkxMzUyNzcxOTU4MGUtMDEsCisgIC05Ljg2MjEzMDY4OTc4NjE0NWUtMDEsICAgMS42NTQ4MDQ1OTgwMDQ5MjhlLTAxLAorICAtOS44NjE4MTMyMDM2NzkyODNlLTAxLCAgIDEuNjU2Njk1NjA3NDQ3ODQxZS0wMSwKKyAgLTkuODYxNDk1MzU0OTgxNzM5ZS0wMSwgICAxLjY1ODU4NjU1NTk3ODc5M2UtMDEsCisgIC05Ljg2MTE3NzE0MzcwNTIwMWUtMDEsICAgMS42NjA0Nzc0NDM1MjgyNThlLTAxLAorICAtOS44NjA4NTg1Njk4NjEzNjhlLTAxLCAgIDEuNjYyMzY4MjcwMDI2NzE0ZS0wMSwKKyAgLTkuODYwNTM5NjMzNDYxOTU0ZS0wMSwgICAxLjY2NDI1OTAzNTQwNDY0MWUtMDEsCisgIC05Ljg2MDIyMDMzNDUxODY4NmUtMDEsICAgMS42NjYxNDk3Mzk1OTI1MjFlLTAxLAorICAtOS44NTk5MDA2NzMwNDMzMDFlLTAxLCAgIDEuNjY4MDQwMzgyNTIwODM3ZS0wMSwKKyAgLTkuODU5NTgwNjQ5MDQ3NTU1ZS0wMSwgICAxLjY2OTkzMDk2NDEyMDA3N2UtMDEsCisgIC05Ljg1OTI2MDI2MjU0MzIxMWUtMDEsICAgMS42NzE4MjE0ODQzMjA3MjllLTAxLAorICAtOS44NTg5Mzk1MTM1NDIwNTJlLTAxLCAgIDEuNjczNzExOTQzMDUzMjg0ZS0wMSwKKyAgLTkuODU4NjE4NDAyMDU1ODcwZS0wMSwgICAxLjY3NTYwMjM0MDI0ODIzNmUtMDEsCisgIC05Ljg1ODI5NjkyODA5NjQ3MGUtMDEsICAgMS42Nzc0OTI2NzU4MzYwNzllLTAxLAorICAtOS44NTc5NzUwOTE2NzU2NzVlLTAxLCAgIDEuNjc5MzgyOTQ5NzQ3MzEyZS0wMSwKKyAgLTkuODU3NjUyODkyODA1MzEzZS0wMSwgICAxLjY4MTI3MzE2MTkxMjQzNGUtMDEsCisgIC05Ljg1NzMzMDMzMTQ5NzIzNWUtMDEsICAgMS42ODMxNjMzMTIyNjE5NDhlLTAxLAorICAtOS44NTcwMDc0MDc3NjMyOTllLTAxLCAgIDEuNjg1MDUzNDAwNzI2MzU5ZS0wMSwKKyAgLTkuODU2Njg0MTIxNjE1Mzc2ZS0wMSwgICAxLjY4Njk0MzQyNzIzNjE3M2UtMDEsCisgIC05Ljg1NjM2MDQ3MzA2NTM1NGUtMDEsICAgMS42ODg4MzMzOTE3MjE5MDBlLTAxLAorICAtOS44NTYwMzY0NjIxMjUxMzRlLTAxLCAgIDEuNjkwNzIzMjk0MTE0MDUwZS0wMSwKKyAgLTkuODU1NzEyMDg4ODA2NjI3ZS0wMSwgICAxLjY5MjYxMzEzNDM0MzEzOGUtMDEsCisgIC05Ljg1NTM4NzM1MzEyMTc2MWUtMDEsICAgMS42OTQ1MDI5MTIzMzk2ODBlLTAxLAorICAtOS44NTUwNjIyNTUwODI0NzNlLTAxLCAgIDEuNjk2MzkyNjI4MDM0MTkzZS0wMSwKKyAgLTkuODU0NzM2Nzk0NzAwNzE4ZS0wMSwgICAxLjY5ODI4MjI4MTM1NzE5OGUtMDEsCisgIC05Ljg1NDQxMDk3MTk4ODQ2MmUtMDEsICAgMS43MDAxNzE4NzIyMzkyMjBlLTAxLAorICAtOS44NTQwODQ3ODY5NTc2ODRlLTAxLCAgIDEuNzAyMDYxNDAwNjEwNzgxZS0wMSwKKyAgLTkuODUzNzU4MjM5NjIwMzc3ZS0wMSwgICAxLjcwMzk1MDg2NjQwMjQwOWUtMDEsCisgIC05Ljg1MzQzMTMyOTk4ODU0OGUtMDEsICAgMS43MDU4NDAyNjk1NDQ2MzZlLTAxLAorICAtOS44NTMxMDQwNTgwNzQyMTZlLTAxLCAgIDEuNzA3NzI5NjA5OTY3OTkyZS0wMSwKKyAgLTkuODUyNzc2NDIzODg5NDEyZS0wMSwgICAxLjcwOTYxODg4NzYwMzAxMmUtMDEsCisgIC05Ljg1MjQ0ODQyNzQ0NjE4NWUtMDEsICAgMS43MTE1MDgxMDIzODAyMzNlLTAxLAorICAtOS44NTIxMjAwNjg3NTY1OTRlLTAxLCAgIDEuNzEzMzk3MjU0MjMwMTkzZS0wMSwKKyAgLTkuODUxNzkxMzQ3ODMyNzExZS0wMSwgICAxLjcxNTI4NjM0MzA4MzQzNGUtMDEsCisgIC05Ljg1MTQ2MjI2NDY4NjYyMmUtMDEsICAgMS43MTcxNzUzNjg4NzA1MDBlLTAxLAorICAtOS44NTExMzI4MTkzMzA0MjdlLTAxLCAgIDEuNzE5MDY0MzMxNTIxOTM1ZS0wMSwKKyAgLTkuODUwODAzMDExNzc2MjM4ZS0wMSwgICAxLjcyMDk1MzIzMDk2ODI5MGUtMDEsCisgIC05Ljg1MDQ3Mjg0MjAzNjE4MmUtMDEsICAgMS43MjI4NDIwNjcxNDAxMTRlLTAxLAorICAtOS44NTAxNDIzMTAxMjIzOThlLTAxLCAgIDEuNzI0NzMwODM5OTY3OTYwZS0wMSwKKyAgLTkuODQ5ODExNDE2MDQ3MDQwZS0wMSwgICAxLjcyNjYxOTU0OTM4MjM4M2UtMDEsCisgIC05Ljg0OTQ4MDE1OTgyMjI3MGUtMDEsICAgMS43Mjg1MDgxOTUzMTM5NDFlLTAxLAorICAtOS44NDkxNDg1NDE0NjAyNzJlLTAxLCAgIDEuNzMwMzk2Nzc3NjkzMTk0ZS0wMSwKKyAgLTkuODQ4ODE2NTYwOTczMjM3ZS0wMSwgICAxLjczMjI4NTI5NjQ1MDcwM2UtMDEsCisgIC05Ljg0ODQ4NDIxODM3MzM3MGUtMDEsICAgMS43MzQxNzM3NTE1MTcwMzVlLTAxLAorICAtOS44NDgxNTE1MTM2NzI4OTFlLTAxLCAgIDEuNzM2MDYyMTQyODIyNzU0ZS0wMSwKKyAgLTkuODQ3ODE4NDQ2ODg0MDM0ZS0wMSwgICAxLjczNzk1MDQ3MDI5ODQzMmUtMDEsCisgIC05Ljg0NzQ4NTAxODAxOTA0MmUtMDEsICAgMS43Mzk4Mzg3MzM4NzQ2MzhlLTAxLAorICAtOS44NDcxNTEyMjcwOTAxNzZlLTAxLCAgIDEuNzQxNzI2OTMzNDgxOTQ4ZS0wMSwKKyAgLTkuODQ2ODE3MDc0MTA5NzA5ZS0wMSwgICAxLjc0MzYxNTA2OTA1MDkzN2UtMDEsCisgIC05Ljg0NjQ4MjU1OTA4OTkyNmUtMDEsICAgMS43NDU1MDMxNDA1MTIxODVlLTAxLAorICAtOS44NDYxNDc2ODIwNDMxMjZlLTAxLCAgIDEuNzQ3MzkxMTQ3Nzk2MjcyZS0wMSwKKyAgLTkuODQ1ODEyNDQyOTgxNjIyZS0wMSwgICAxLjc0OTI3OTA5MDgzMzc4MmUtMDEsCisgIC05Ljg0NTQ3Njg0MTkxNzc0MGUtMDEsICAgMS43NTExNjY5Njk1NTUyOTllLTAxLAorICAtOS44NDUxNDA4Nzg4NjM4MThlLTAxLCAgIDEuNzUzMDU0NzgzODkxNDEzZS0wMSwKKyAgLTkuODQ0ODA0NTUzODMyMjA5ZS0wMSwgICAxLjc1NDk0MjUzMzc3MjcxNGUtMDEsCisgIC05Ljg0NDQ2Nzg2NjgzNTI3OWUtMDEsICAgMS43NTY4MzAyMTkxMjk3OTVlLTAxLAorICAtOS44NDQxMzA4MTc4ODU0MDdlLTAxLCAgIDEuNzU4NzE3ODM5ODkzMjUwZS0wMSwKKyAgLTkuODQzNzkzNDA2OTk0OTg1ZS0wMSwgICAxLjc2MDYwNTM5NTk5MzY3OGUtMDEsCisgIC05Ljg0MzQ1NTYzNDE3NjQxOWUtMDEsICAgMS43NjI0OTI4ODczNjE2NzllLTAxLAorICAtOS44NDMxMTc0OTk0NDIxMjhlLTAxLCAgIDEuNzY0MzgwMzEzOTI3ODU0ZS0wMSwKKyAgLTkuODQyNzc5MDAyODA0NTQ0ZS0wMSwgICAxLjc2NjI2NzY3NTYyMjgwOWUtMDEsCisgIC05Ljg0MjQ0MDE0NDI3NjExMWUtMDEsICAgMS43NjgxNTQ5NzIzNzcxNTBlLTAxLAorICAtOS44NDIxMDA5MjM4NjkyOTBlLTAxLCAgIDEuNzcwMDQyMjA0MTIxNDg3ZS0wMSwKKyAgLTkuODQxNzYxMzQxNTk2NTUzZS0wMSwgICAxLjc3MTkyOTM3MDc4NjQzM2UtMDEsCisgIC05Ljg0MTQyMTM5NzQ3MDM4NmUtMDEsICAgMS43NzM4MTY0NzIzMDI2MDBlLTAxLAorICAtOS44NDEwODEwOTE1MDMyODVlLTAxLCAgIDEuNzc1NzAzNTA4NjAwNjA3ZS0wMSwKKyAgLTkuODQwNzQwNDIzNzA3NzY0ZS0wMSwgICAxLjc3NzU5MDQ3OTYxMTA3MmUtMDEsCisgIC05Ljg0MDM5OTM5NDA5NjM1MGUtMDEsICAgMS43Nzk0NzczODUyNjQ2MTZlLTAxLAorICAtOS44NDAwNTgwMDI2ODE1NzllLTAxLCAgIDEuNzgxMzY0MjI1NDkxODYzZS0wMSwKKyAgLTkuODM5NzE2MjQ5NDc2MDAzZS0wMSwgICAxLjc4MzI1MTAwMDIyMzQ0MGUtMDEsCisgIC05LjgzOTM3NDEzNDQ5MjE4OWUtMDEsICAgMS43ODUxMzc3MDkzODk5NzVlLTAxLAorICAtOS44MzkwMzE2NTc3NDI3MTVlLTAxLCAgIDEuNzg3MDI0MzUyOTIyMTAwZS0wMSwKKyAgLTkuODM4Njg4ODE5MjQwMTcyZS0wMSwgICAxLjc4ODkxMDkzMDc1MDQ0N2UtMDEsCisgIC05LjgzODM0NTYxODk5NzE2NmUtMDEsICAgMS43OTA3OTc0NDI4MDU2NTRlLTAxLAorICAtOS44MzgwMDIwNTcwMjYzMTZlLTAxLCAgIDEuNzkyNjgzODg5MDE4MzU3ZS0wMSwKKyAgLTkuODM3NjU4MTMzMzQwMjUyZS0wMSwgICAxLjc5NDU3MDI2OTMxOTE5OWUtMDEsCisgIC05LjgzNzMxMzg0Nzk1MTYyMWUtMDEsICAgMS43OTY0NTY1ODM2Mzg4MjJlLTAxLAorICAtOS44MzY5NjkyMDA4NzMwODFlLTAxLCAgIDEuNzk4MzQyODMxOTA3ODcxZS0wMSwKKyAgLTkuODM2NjI0MTkyMTE3MzAzZS0wMSwgICAxLjgwMDIyOTAxNDA1Njk5NWUtMDEsCisgIC05LjgzNjI3ODgyMTY5Njk3MmUtMDEsICAgMS44MDIxMTUxMzAwMTY4NDRlLTAxLAorICAtOS44MzU5MzMwODk2MjQ3ODdlLTAxLCAgIDEuODA0MDAxMTc5NzE4MDcyZS0wMSwKKyAgLTkuODM1NTg2OTk1OTEzNDU5ZS0wMSwgICAxLjgwNTg4NzE2MzA5MTMzM2UtMDEsCisgIC05LjgzNTI0MDU0MDU3NTcxM2UtMDEsICAgMS44MDc3NzMwODAwNjcyODZlLTAxLAorICAtOS44MzQ4OTM3MjM2MjQyODdlLTAxLCAgIDEuODA5NjU4OTMwNTc2NTkwZS0wMSwKKyAgLTkuODM0NTQ2NTQ1MDcxOTMzZS0wMSwgICAxLjgxMTU0NDcxNDU0OTkwOGUtMDEsCisgIC05LjgzNDE5OTAwNDkzMTQxNWUtMDEsICAgMS44MTM0MzA0MzE5MTc5MDVlLTAxLAorICAtOS44MzM4NTExMDMyMTU1MTJlLTAxLCAgIDEuODE1MzE2MDgyNjExMjUwZS0wMSwKKyAgLTkuODMzNTAyODM5OTM3MDE1ZS0wMSwgICAxLjgxNzIwMTY2NjU2MDYxMWUtMDEsCisgIC05LjgzMzE1NDIxNTEwODcyOGUtMDEsICAgMS44MTkwODcxODM2OTY2NjJlLTAxLAorICAtOS44MzI4MDUyMjg3NDM0NzBlLTAxLCAgIDEuODIwOTcyNjMzOTUwMDc2ZS0wMSwKKyAgLTkuODMyNDU1ODgwODU0MDcxZS0wMSwgICAxLjgyMjg1ODAxNzI1MTUzM2UtMDEsCisgIC05LjgzMjEwNjE3MTQ1MzM3NmUtMDEsICAgMS44MjQ3NDMzMzM1MzE3MTFlLTAxLAorICAtOS44MzE3NTYxMDA1NTQyNDRlLTAxLCAgIDEuODI2NjI4NTgyNzIxMjkzZS0wMSwKKyAgLTkuODMxNDA1NjY4MTY5NTQ1ZS0wMSwgICAxLjgyODUxMzc2NDc1MDk2M2UtMDEsCisgIC05LjgzMTA1NDg3NDMxMjE2M2UtMDEsICAgMS44MzAzOTg4Nzk1NTE0MTBlLTAxLAorICAtOS44MzA3MDM3MTg5OTQ5OTZlLTAxLCAgIDEuODMyMjgzOTI3MDUzMzIxZS0wMSwKKyAgLTkuODMwMzUyMjAyMjMwOTU2ZS0wMSwgICAxLjgzNDE2ODkwNzE4NzM5MWUtMDEsCisgIC05LjgzMDAwMDMyNDAzMjk2NmUtMDEsICAgMS44MzYwNTM4MTk4ODQzMTNlLTAxLAorICAtOS44Mjk2NDgwODQ0MTM5NjRlLTAxLCAgIDEuODM3OTM4NjY1MDc0Nzg0ZS0wMSwKKyAgLTkuODI5Mjk1NDgzMzg2OTAyZS0wMSwgICAxLjgzOTgyMzQ0MjY4OTUwNWUtMDEsCisgIC05LjgyODk0MjUyMDk2NDc0MWUtMDEsICAgMS44NDE3MDgxNTI2NTkxNzdlLTAxLAorICAtOS44Mjg1ODkxOTcxNjA0NjFlLTAxLCAgIDEuODQzNTkyNzk0OTE0NTA1ZS0wMSwKKyAgLTkuODI4MjM1NTExOTg3MDUyZS0wMSwgICAxLjg0NTQ3NzM2OTM4NjE5NmUtMDEsCisgIC05LjgyNzg4MTQ2NTQ1NzUyMGUtMDEsICAgMS44NDczNjE4NzYwMDQ5NjBlLTAxLAorICAtOS44Mjc1MjcwNTc1ODQ4NzhlLTAxLCAgIDEuODQ5MjQ2MzE0NzAxNTA4ZS0wMSwKKyAgLTkuODI3MTcyMjg4MzgyMTYwZS0wMSwgICAxLjg1MTEzMDY4NTQwNjU1NWUtMDEsCisgIC05LjgyNjgxNzE1Nzg2MjQwOWUtMDEsICAgMS44NTMwMTQ5ODgwNTA4MTllLTAxLAorICAtOS44MjY0NjE2NjYwMzg2ODBlLTAxLCAgIDEuODU0ODk5MjIyNTY1MDE5ZS0wMSwKKyAgLTkuODI2MTA1ODEyOTI0MDQ4ZS0wMSwgICAxLjg1Njc4MzM4ODg3OTg3NmUtMDEsCisgIC05LjgyNTc0OTU5ODUzMTU5MmUtMDEsICAgMS44NTg2Njc0ODY5MjYxMTdlLTAxLAorICAtOS44MjUzOTMwMjI4NzQ0MTJlLTAxLCAgIDEuODYwNTUxNTE2NjM0NDY2ZS0wMSwKKyAgLTkuODI1MDM2MDg1OTY1NjE4ZS0wMSwgICAxLjg2MjQzNTQ3NzkzNTY1NmUtMDEsCisgIC05LjgyNDY3ODc4NzgxODMzMmUtMDEsICAgMS44NjQzMTkzNzA3NjA0MTZlLTAxLAorICAtOS44MjQzMjExMjg0NDU2OTFlLTAxLCAgIDEuODY2MjAzMTk1MDM5NDgzZS0wMSwKKyAgLTkuODIzOTYzMTA3ODYwODQ3ZS0wMSwgICAxLjg2ODA4Njk1MDcwMzU5M2UtMDEsCisgIC05LjgyMzYwNDcyNjA3Njk2MmUtMDEsICAgMS44Njk5NzA2Mzc2ODM0ODVlLTAxLAorICAtOS44MjMyNDU5ODMxMDcyMTNlLTAxLCAgIDEuODcxODU0MjU1OTA5OTAzZS0wMSwKKyAgLTkuODIyODg2ODc4OTY0Nzg4ZS0wMSwgICAxLjg3MzczNzgwNTMxMzU5MWUtMDEsCisgIC05LjgyMjUyNzQxMzY2Mjg5NGUtMDEsICAgMS44NzU2MjEyODU4MjUyOTZlLTAxLAorICAtOS44MjIxNjc1ODcyMTQ3NDVlLTAxLCAgIDEuODc3NTA0Njk3Mzc1NzY4ZS0wMSwKKyAgLTkuODIxODA3Mzk5NjMzNTcxZS0wMSwgICAxLjg3OTM4ODAzOTg5NTc1OWUtMDEsCisgIC05LjgyMTQ0Njg1MDkzMjYxNmUtMDEsICAgMS44ODEyNzEzMTMzMTYwMjRlLTAxLAorICAtOS44MjEwODU5NDExMjUxMzZlLTAxLCAgIDEuODgzMTU0NTE3NTY3MzIxZS0wMSwKKyAgLTkuODIwNzI0NjcwMjI0NDAwZS0wMSwgICAxLjg4NTAzNzY1MjU4MDQwOWUtMDEsCisgIC05LjgyMDM2MzAzODI0MzY5MGUtMDEsICAgMS44ODY5MjA3MTgyODYwNTJlLTAxLAorICAtOS44MjAwMDEwNDUxOTYzMDVlLTAxLCAgIDEuODg4ODAzNzE0NjE1MDE0ZS0wMSwKKyAgLTkuODE5NjM4NjkxMDk1NTUyZS0wMSwgICAxLjg5MDY4NjY0MTQ5ODA2MmUtMDEsCisgIC05LjgxOTI3NTk3NTk1NDc1NWUtMDEsICAgMS44OTI1Njk0OTg4NjU5NjdlLTAxLAorICAtOS44MTg5MTI4OTk3ODcyNTFlLTAxLCAgIDEuODk0NDUyMjg2NjQ5NTAyZS0wMSwKKyAgLTkuODE4NTQ5NDYyNjA2Mzg2ZS0wMSwgICAxLjg5NjMzNTAwNDc3OTQ0MmUtMDEsCisgIC05LjgxODE4NTY2NDQyNTUyNWUtMDEsICAgMS44OTgyMTc2NTMxODY1NjRlLTAxLAorICAtOS44MTc4MjE1MDUyNTgwNDNlLTAxLCAgIDEuOTAwMTAwMjMxODAxNjUwZS0wMSwKKyAgLTkuODE3NDU2OTg1MTE3MzMwZS0wMSwgICAxLjkwMTk4Mjc0MDU1NTQ4MWUtMDEsCisgIC05LjgxNzA5MjEwNDAxNjc4OGUtMDEsICAgMS45MDM4NjUxNzkzNzg4NDVlLTAxLAorICAtOS44MTY3MjY4NjE5Njk4MzFlLTAxLCAgIDEuOTA1NzQ3NTQ4MjAyNTI3ZS0wMSwKKyAgLTkuODE2MzYxMjU4OTg5ODkxZS0wMSwgICAxLjkwNzYyOTg0Njk1NzMyMWUtMDEsCisgIC05LjgxNTk5NTI5NTA5MDQwN2UtMDEsICAgMS45MDk1MTIwNzU1NzQwMThlLTAxLAorICAtOS44MTU2Mjg5NzAyODQ4MzZlLTAxLCAgIDEuOTExMzk0MjMzOTgzNDE0ZS0wMSwKKyAgLTkuODE1MjYyMjg0NTg2NjQ4ZS0wMSwgICAxLjkxMzI3NjMyMjExNjMwOWUtMDEsCisgIC05LjgxNDg5NTIzODAwOTMyMWUtMDEsICAgMS45MTUxNTgzMzk5MDM1MDJlLTAxLAorICAtOS44MTQ1Mjc4MzA1NjYzNTVlLTAxLCAgIDEuOTE3MDQwMjg3Mjc1Nzk4ZS0wMSwKKyAgLTkuODE0MTYwMDYyMjcxMjU1ZS0wMSwgICAxLjkxODkyMjE2NDE2NDAwMmUtMDEsCisgIC05LjgxMzc5MTkzMzEzNzU0NmUtMDEsICAgMS45MjA4MDM5NzA0OTg5MjRlLTAxLAorICAtOS44MTM0MjM0NDMxNzg3NjBlLTAxLCAgIDEuOTIyNjg1NzA2MjExMzc1ZS0wMSwKKyAgLTkuODEzMDU0NTkyNDA4NDQ3ZS0wMSwgICAxLjkyNDU2NzM3MTIzMjE2OGUtMDEsCisgIC05LjgxMjY4NTM4MDg0MDE2N2UtMDEsICAgMS45MjY0NDg5NjU0OTIxMjFlLTAxLAorICAtOS44MTIzMTU4MDg0ODc0OTdlLTAxLCAgIDEuOTI4MzMwNDg4OTIyMDUyZS0wMSwKKyAgLTkuODExOTQ1ODc1MzY0MDIzZS0wMSwgICAxLjkzMDIxMTk0MTQ1Mjc4NGUtMDEsCisgIC05LjgxMTU3NTU4MTQ4MzM0OGUtMDEsICAgMS45MzIwOTMzMjMwMTUxNDBlLTAxLAorICAtOS44MTEyMDQ5MjY4NTkwODdlLTAxLCAgIDEuOTMzOTc0NjMzNTM5OTQ3ZS0wMSwKKyAgLTkuODEwODMzOTExNTA0ODY3ZS0wMSwgICAxLjkzNTg1NTg3Mjk1ODAzNmUtMDEsCisgIC05LjgxMDQ2MjUzNTQzNDMyOGUtMDEsICAgMS45Mzc3MzcwNDEyMDAyMzhlLTAxLAorICAtOS44MTAwOTA3OTg2NjExMjZlLTAxLCAgIDEuOTM5NjE4MTM4MTk3Mzg4ZS0wMSwKKyAgLTkuODA5NzE4NzAxMTk4OTI4ZS0wMSwgICAxLjk0MTQ5OTE2Mzg4MDMyNGUtMDEsCisgIC05LjgwOTM0NjI0MzA2MTQxNmUtMDEsICAgMS45NDMzODAxMTgxNzk4ODZlLTAxLAorICAtOS44MDg5NzM0MjQyNjIyODRlLTAxLCAgIDEuOTQ1MjYxMDAxMDI2OTE2ZS0wMSwKKyAgLTkuODA4NjAwMjQ0ODE1MjM5ZS0wMSwgICAxLjk0NzE0MTgxMjM1MjI2MGUtMDEsCisgIC05LjgwODIyNjcwNDczNDAwMWUtMDEsICAgMS45NDkwMjI1NTIwODY3NjVlLTAxLAorICAtOS44MDc4NTI4MDQwMzIzMDRlLTAxLCAgIDEuOTUwOTAzMjIwMTYxMjgyZS0wMSwKKyAgLTkuODA3NDc4NTQyNzIzODk4ZS0wMSwgICAxLjk1Mjc4MzgxNjUwNjY2NWUtMDEsCisgIC05LjgwNzEwMzkyMDgyMjU0MGUtMDEsICAgMS45NTQ2NjQzNDEwNTM3NzBlLTAxLAorICAtOS44MDY3Mjg5MzgzNDIwMDVlLTAxLCAgIDEuOTU2NTQ0NzkzNzMzNDU0ZS0wMSwKKyAgLTkuODA2MzUzNTk1Mjk2MDgxZS0wMSwgICAxLjk1ODQyNTE3NDQ3NjU3OGUtMDEsCisgIC05LjgwNTk3Nzg5MTY5ODU2OGUtMDEsICAgMS45NjAzMDU0ODMyMTQwMDhlLTAxLAorICAtOS44MDU2MDE4Mjc1NjMyNzhlLTAxLCAgIDEuOTYyMTg1NzE5ODc2NjA5ZS0wMSwKKyAgLTkuODA1MjI1NDAyOTA0MDQxZS0wMSwgICAxLjk2NDA2NTg4NDM5NTI1MGUtMDEsCisgIC05LjgwNDg0ODYxNzczNDY5NGUtMDEsICAgMS45NjU5NDU5NzY3MDA4MDJlLTAxLAorICAtOS44MDQ0NzE0NzIwNjkwOTFlLTAxLCAgIDEuOTY3ODI1OTk2NzI0MTQxZS0wMSwKKyAgLTkuODA0MDkzOTY1OTIxMDk5ZS0wMSwgICAxLjk2OTcwNTk0NDM5NjE0M2UtMDEsCisgIC05LjgwMzcxNjA5OTMwNDU5OGUtMDEsICAgMS45NzE1ODU4MTk2NDc2ODllLTAxLAorICAtOS44MDMzMzc4NzIyMzM0ODBlLTAxLCAgIDEuOTczNDY1NjIyNDA5NjU5ZS0wMSwKKyAgLTkuODAyOTU5Mjg0NzIxNjUzZS0wMSwgICAxLjk3NTM0NTM1MjYxMjk0MGUtMDEsCisgIC05LjgwMjU4MDMzNjc4MzAzNmUtMDEsICAgMS45NzcyMjUwMTAxODg0MTllLTAxLAorICAtOS44MDIyMDEwMjg0MzE1NjFlLTAxLCAgIDEuOTc5MTA0NTk1MDY2OTg3ZS0wMSwKKyAgLTkuODAxODIxMzU5NjgxMTc0ZS0wMSwgICAxLjk4MDk4NDEwNzE3OTUzNmUtMDEsCisgIC05LjgwMTQ0MTMzMDU0NTgzNmUtMDEsICAgMS45ODI4NjM1NDY0NTY5NjJlLTAxLAorICAtOS44MDEwNjA5NDEwMzk1MThlLTAxLCAgIDEuOTg0NzQyOTEyODMwMTY0ZS0wMSwKKyAgLTkuODAwNjgwMTkxMTc2MjA2ZS0wMSwgICAxLjk4NjYyMjIwNjIzMDA0MmUtMDEsCisgIC05LjgwMDI5OTA4MDk2OTkwMWUtMDEsICAgMS45ODg1MDE0MjY1ODc1MDFlLTAxLAorICAtOS43OTk5MTc2MTA0MzQ2MTJlLTAxLCAgIDEuOTkwMzgwNTczODMzNDQ3ZS0wMSwKKyAgLTkuNzk5NTM1Nzc5NTg0MzY3ZS0wMSwgICAxLjk5MjI1OTY0Nzg5ODc4OGUtMDEsCisgIC05Ljc5OTE1MzU4ODQzMzIwNWUtMDEsICAgMS45OTQxMzg2NDg3MTQ0MzhlLTAxLAorICAtOS43OTg3NzEwMzY5OTUxNzZlLTAxLCAgIDEuOTk2MDE3NTc2MjExMzEwZS0wMSwKKyAgLTkuNzk4Mzg4MTI1Mjg0MzQ3ZS0wMSwgICAxLjk5Nzg5NjQzMDMyMDMyMWUtMDEsCisgIC05Ljc5ODAwNDg1MzMxNDc5OGUtMDEsICAgMS45OTk3NzUyMTA5NzIzOTJlLTAxLAorICAtOS43OTc2MjEyMjExMDA2MThlLTAxLCAgIDIuMDAxNjUzOTE4MDk4NDQ0ZS0wMSwKKyAgLTkuNzk3MjM3MjI4NjU1OTEyZS0wMSwgICAyLjAwMzUzMjU1MTYyOTQwNGUtMDEsCisgIC05Ljc5Njg1Mjg3NTk5NDc5OWUtMDEsICAgMi4wMDU0MTExMTE0OTYyMDBlLTAxLAorICAtOS43OTY0NjgxNjMxMzE0MTJlLTAxLCAgIDIuMDA3Mjg5NTk3NjI5NzYxZS0wMSwKKyAgLTkuNzk2MDgzMDkwMDc5ODk1ZS0wMSwgICAyLjAwOTE2ODAwOTk2MTAyMmUtMDEsCisgIC05Ljc5NTY5NzY1Njg1NDQwNWUtMDEsICAgMi4wMTEwNDYzNDg0MjA5MTllLTAxLAorICAtOS43OTUzMTE4NjM0NjkxMTVlLTAxLCAgIDIuMDEyOTI0NjEyOTQwMzkwZS0wMSwKKyAgLTkuNzk0OTI1NzA5OTM4MjA4ZS0wMSwgICAyLjAxNDgwMjgwMzQ1MDM3N2UtMDEsCisgIC05Ljc5NDUzOTE5NjI3NTg4MmUtMDEsICAgMi4wMTY2ODA5MTk4ODE4MjVlLTAxLAorICAtOS43OTQxNTIzMjI0OTYzNDhlLTAxLCAgIDIuMDE4NTU4OTYyMTY1NjgwZS0wMSwKKyAgLTkuNzkzNzY1MDg4NjEzODMyZS0wMSwgICAyLjAyMDQzNjkzMDIzMjg5M2UtMDEsCisgIC05Ljc5MzM3NzQ5NDY0MjU2OGUtMDEsICAgMi4wMjIzMTQ4MjQwMTQ0MTVlLTAxLAorICAtOS43OTI5ODk1NDA1OTY4MTBlLTAxLCAgIDIuMDI0MTkyNjQzNDQxMjAyZS0wMSwKKyAgLTkuNzkyNjAxMjI2NDkwODIwZS0wMSwgICAyLjAyNjA3MDM4ODQ0NDIxMWUtMDEsCisgIC05Ljc5MjIxMjU1MjMzODg3N2UtMDEsICAgMi4wMjc5NDgwNTg5NTQ0MDRlLTAxLAorICAtOS43OTE4MjM1MTgxNTUyNjllLTAxLCAgIDIuMDI5ODI1NjU0OTAyNzQ0ZS0wMSwKKyAgLTkuNzkxNDM0MTIzOTU0MzAyZS0wMSwgICAyLjAzMTcwMzE3NjIyMDE5OGUtMDEsCisgIC05Ljc5MTA0NDM2OTc1MDI5MmUtMDEsICAgMi4wMzM1ODA2MjI4Mzc3MzNlLTAxLAorICAtOS43OTA2NTQyNTU1NTc1NjllLTAxLCAgIDIuMDM1NDU3OTk0Njg2MzIyZS0wMSwKKyAgLTkuNzkwMjYzNzgxMzkwNDc2ZS0wMSwgICAyLjAzNzMzNTI5MTY5NjkzOWUtMDEsCisgIC05Ljc4OTg3Mjk0NzI2MzM3MGUtMDEsICAgMi4wMzkyMTI1MTM4MDA1NjFlLTAxLAorICAtOS43ODk0ODE3NTMxOTA2MjJlLTAxLCAgIDIuMDQxMDg5NjYwOTI4MTY5ZS0wMSwKKyAgLTkuNzg5MDkwMTk5MTg2NjEzZS0wMSwgICAyLjA0Mjk2NjczMzAxMDc0NGUtMDEsCisgIC05Ljc4ODY5ODI4NTI2NTc0MWUtMDEsICAgMi4wNDQ4NDM3Mjk5NzkyNzJlLTAxLAorICAtOS43ODgzMDYwMTE0NDI0MTVlLTAxLCAgIDIuMDQ2NzIwNjUxNzY0NzQyZS0wMSwKKyAgLTkuNzg3OTEzMzc3NzMxMDU3ZS0wMSwgICAyLjA0ODU5NzQ5ODI5ODE0NGUtMDEsCisgIC05Ljc4NzUyMDM4NDE0NjEwM2UtMDEsICAgMi4wNTA0NzQyNjk1MTA0NzJlLTAxLAorICAtOS43ODcxMjcwMzA3MDIwMDRlLTAxLCAgIDIuMDUyMzUwOTY1MzMyNzIzZS0wMSwKKyAgLTkuNzg2NzMzMzE3NDEzMjIyZS0wMSwgICAyLjA1NDIyNzU4NTY5NTg5NmUtMDEsCisgIC05Ljc4NjMzOTI0NDI5NDIzMmUtMDEsICAgMi4wNTYxMDQxMzA1MzA5OTJlLTAxLAorICAtOS43ODU5NDQ4MTEzNTk1MjNlLTAxLCAgIDIuMDU3OTgwNTk5NzY5MDE4ZS0wMSwKKyAgLTkuNzg1NTUwMDE4NjIzNTk2ZS0wMSwgICAyLjA1OTg1Njk5MzM0MDk3OWUtMDEsCisgIC05Ljc4NTE1NDg2NjEwMDk2OWUtMDEsICAgMi4wNjE3MzMzMTExNzc4ODdlLTAxLAorICAtOS43ODQ3NTkzNTM4MDYxNjhlLTAxLCAgIDIuMDYzNjA5NTUzMjEwNzU1ZS0wMSwKKyAgLTkuNzg0MzYzNDgxNzUzNzM3ZS0wMSwgICAyLjA2NTQ4NTcxOTM3MDU5OWUtMDEsCisgIC05Ljc4Mzk2NzI0OTk1ODIzMWUtMDEsICAgMi4wNjczNjE4MDk1ODg0MzdlLTAxLAorICAtOS43ODM1NzA2NTg0MzQyMTZlLTAxLCAgIDIuMDY5MjM3ODIzNzk1MjkxZS0wMSwKKyAgLTkuNzgzMTczNzA3MTk2Mjc3ZS0wMSwgICAyLjA3MTExMzc2MTkyMjE4NmUtMDEsCisgIC05Ljc4Mjc3NjM5NjI1OTAwNWUtMDEsICAgMi4wNzI5ODk2MjM5MDAxNDdlLTAxLAorICAtOS43ODIzNzg3MjU2MzcwMTFlLTAxLCAgIDIuMDc0ODY1NDA5NjYwMjA2ZS0wMSwKKyAgLTkuNzgxOTgwNjk1MzQ0OTE0ZS0wMSwgICAyLjA3Njc0MTExOTEzMzM5NmUtMDEsCisgIC05Ljc4MTU4MjMwNTM5NzM1MGUtMDEsICAgMi4wNzg2MTY3NTIyNTA3NTFlLTAxLAorICAtOS43ODExODM1NTU4MDg5NjdlLTAxLCAgIDIuMDgwNDkyMzA4OTQzMzA5ZS0wMSwKKyAgLTkuNzgwNzg0NDQ2NTk0NDI0ZS0wMSwgICAyLjA4MjM2Nzc4OTE0MjExM2UtMDEsCisgIC05Ljc4MDM4NDk3Nzc2ODM5NmUtMDEsICAgMi4wODQyNDMxOTI3NzgyMDZlLTAxLAorICAtOS43Nzk5ODUxNDkzNDU1NzFlLTAxLCAgIDIuMDg2MTE4NTE5NzgyNjM1ZS0wMSwKKyAgLTkuNzc5NTg0OTYxMzQwNjQ4ZS0wMSwgICAyLjA4Nzk5Mzc3MDA4NjQ0OWUtMDEsCisgIC05Ljc3OTE4NDQxMzc2ODM0NGUtMDEsICAgMi4wODk4Njg5NDM2MjA3MDFlLTAxLAorICAtOS43Nzg3ODM1MDY2NDMzODFlLTAxLCAgIDIuMDkxNzQ0MDQwMzE2NDQ2ZS0wMSwKKyAgLTkuNzc4MzgyMjM5OTgwNTA0ZS0wMSwgICAyLjA5MzYxOTA2MDEwNDc0MmUtMDEsCisgIC05Ljc3Nzk4MDYxMzc5NDQ2NGUtMDEsICAgMi4wOTU0OTQwMDI5MTY2NDllLTAxLAorICAtOS43Nzc1Nzg2MjgxMDAwMjhlLTAxLCAgIDIuMDk3MzY4ODY4NjgzMjMzZS0wMSwKKyAgLTkuNzc3MTc2MjgyOTExOTc1ZS0wMSwgICAyLjA5OTI0MzY1NzMzNTU1OWUtMDEsCisgIC05Ljc3Njc3MzU3ODI0NTA5OWUtMDEsICAgMi4xMDExMTgzNjg4MDQ2OTZlLTAxLAorICAtOS43NzYzNzA1MTQxMTQyMDhlLTAxLCAgIDIuMTAyOTkzMDAzMDIxNzE3ZS0wMSwKKyAgLTkuNzc1OTY3MDkwNTM0MTE5ZS0wMSwgICAyLjEwNDg2NzU1OTkxNzY5N2UtMDEsCisgIC05Ljc3NTU2MzMwNzUxOTY2NWUtMDEsICAgMi4xMDY3NDIwMzk0MjM3MTRlLTAxLAorICAtOS43NzUxNTkxNjUwODU2OTNlLTAxLCAgIDIuMTA4NjE2NDQxNDcwODQ5ZS0wMSwKKyAgLTkuNzc0NzU0NjYzMjQ3MDYyZS0wMSwgICAyLjExMDQ5MDc2NTk5MDE4NGUtMDEsCisgIC05Ljc3NDM0OTgwMjAxODY0M2UtMDEsICAgMi4xMTIzNjUwMTI5MTI4MDdlLTAxLAorICAtOS43NzM5NDQ1ODE0MTUzMjNlLTAxLCAgIDIuMTE0MjM5MTgyMTY5ODA3ZS0wMSwKKyAgLTkuNzczNTM5MDAxNDUyMDAwZS0wMSwgICAyLjExNjExMzI3MzY5MjI3NmUtMDEsCisgIC05Ljc3MzEzMzA2MjE0MzU4N2UtMDEsICAgMi4xMTc5ODcyODc0MTEzMDhlLTAxLAorICAtOS43NzI3MjY3NjM1MDUwMDllLTAxLCAgIDIuMTE5ODYxMjIzMjU4MDAzZS0wMSwKKyAgLTkuNzcyMzIwMTA1NTUxMjAzZS0wMSwgICAyLjEyMTczNTA4MTE2MzQ2MWUtMDEsCisgIC05Ljc3MTkxMzA4ODI5NzEyM2UtMDEsICAgMi4xMjM2MDg4NjEwNTg3ODRlLTAxLAorICAtOS43NzE1MDU3MTE3NTc3MzJlLTAxLCAgIDIuMTI1NDgyNTYyODc1MDgxZS0wMSwKKyAgLTkuNzcxMDk3OTc1OTQ4MDA5ZS0wMSwgICAyLjEyNzM1NjE4NjU0MzQ1OWUtMDEsCisgIC05Ljc3MDY4OTg4MDg4Mjk0NWUtMDEsICAgMi4xMjkyMjk3MzE5OTUwMzJlLTAxLAorICAtOS43NzAyODE0MjY1Nzc1NDRlLTAxLCAgIDIuMTMxMTAzMTk5MTYwOTE0ZS0wMSwKKyAgLTkuNzY5ODcyNjEzMDQ2ODI0ZS0wMSwgICAyLjEzMjk3NjU4Nzk3MjIyM2UtMDEsCisgIC05Ljc2OTQ2MzQ0MDMwNTgxN2UtMDEsICAgMi4xMzQ4NDk4OTgzNjAwODFlLTAxLAorICAtOS43NjkwNTM5MDgzNjk1NjVlLTAxLCAgIDIuMTM2NzIzMTMwMjU1NjEwZS0wMSwKKyAgLTkuNzY4NjQ0MDE3MjUzMTI2ZS0wMSwgICAyLjEzODU5NjI4MzU4OTkzN2UtMDEsCisgIC05Ljc2ODIzMzc2Njk3MTU3MmUtMDEsICAgMi4xNDA0NjkzNTgyOTQxOTRlLTAxLAorICAtOS43Njc4MjMxNTc1Mzk5ODdlLTAxLCAgIDIuMTQyMzQyMzU0Mjk5NTEwZS0wMSwKKyAgLTkuNzY3NDEyMTg4OTczNDY2ZS0wMSwgICAyLjE0NDIxNTI3MTUzNzAyMmUtMDEsCisgIC05Ljc2NzAwMDg2MTI4NzExOGUtMDEsICAgMi4xNDYwODgxMDk5Mzc4NjhlLTAxLAorICAtOS43NjY1ODkxNzQ0OTYwNzBlLTAxLCAgIDIuMTQ3OTYwODY5NDMzMTg5ZS0wMSwKKyAgLTkuNzY2MTc3MTI4NjE1NDU2ZS0wMSwgICAyLjE0OTgzMzU0OTk1NDEyOGUtMDEsCisgIC05Ljc2NTc2NDcyMzY2MDQyNmUtMDEsICAgMi4xNTE3MDYxNTE0MzE4MzRlLTAxLAorICAtOS43NjUzNTE5NTk2NDYxNDVlLTAxLCAgIDIuMTUzNTc4NjczNzk3NDU1ZS0wMSwKKyAgLTkuNzY0OTM4ODM2NTg3Nzg2ZS0wMSwgICAyLjE1NTQ1MTExNjk4MjE0NWUtMDEsCisgIC05Ljc2NDUyNTM1NDUwMDU0MWUtMDEsICAgMi4xNTczMjM0ODA5MTcwNTllLTAxLAorICAtOS43NjQxMTE1MTMzOTk2MTBlLTAxLCAgIDIuMTU5MTk1NzY1NTMzMzU1ZS0wMSwKKyAgLTkuNzYzNjk3MzEzMzAwMjExZS0wMSwgICAyLjE2MTA2Nzk3MDc2MjE5NWUtMDEsCisgIC05Ljc2MzI4Mjc1NDIxNzU3M2UtMDEsICAgMi4xNjI5NDAwOTY1MzQ3NDNlLTAxLAorICAtOS43NjI4Njc4MzYxNjY5MzZlLTAxLCAgIDIuMTY0ODEyMTQyNzgyMTY3ZS0wMSwKKyAgLTkuNzYyNDUyNTU5MTYzNTU4ZS0wMSwgICAyLjE2NjY4NDEwOTQzNTYzN2UtMDEsCisgIC05Ljc2MjAzNjkyMzIyMjcwNmUtMDEsICAgMi4xNjg1NTU5OTY0MjYzMjZlLTAxLAorICAtOS43NjE2MjA5MjgzNTk2NjFlLTAxLCAgIDIuMTcwNDI3ODAzNjg1NDEwZS0wMSwKKyAgLTkuNzYxMjA0NTc0NTg5NzE5ZS0wMSwgICAyLjE3MjI5OTUzMTE0NDA2OGUtMDEsCisgIC05Ljc2MDc4Nzg2MTkyODE4OGUtMDEsICAgMi4xNzQxNzExNzg3MzM0ODJlLTAxLAorICAtOS43NjAzNzA3OTAzOTAzOTBlLTAxLCAgIDIuMTc2MDQyNzQ2Mzg0ODM2ZS0wMSwKKyAgLTkuNzU5OTUzMzU5OTkxNjYwZS0wMSwgICAyLjE3NzkxNDIzNDAyOTMxOWUtMDEsCisgIC05Ljc1OTUzNTU3MDc0NzM0M2UtMDEsICAgMi4xNzk3ODU2NDE1OTgxMjJlLTAxLAorICAtOS43NTkxMTc0MjI2NzI4MDJlLTAxLCAgIDIuMTgxNjU2OTY5MDIyNDM4ZS0wMSwKKyAgLTkuNzU4Njk4OTE1NzgzNDEwZS0wMSwgICAyLjE4MzUyODIxNjIzMzQ2M2UtMDEsCisgIC05Ljc1ODI4MDA1MDA5NDU1N2UtMDEsICAgMi4xODUzOTkzODMxNjIzOThlLTAxLAorICAtOS43NTc4NjA4MjU2MjE2MzllLTAxLCAgIDIuMTg3MjcwNDY5NzQwNDQ0ZS0wMSwKKyAgLTkuNzU3NDQxMjQyMzgwMDczZS0wMSwgICAyLjE4OTE0MTQ3NTg5ODgwOGUtMDEsCisgIC05Ljc1NzAyMTMwMDM4NTI4NmUtMDEsICAgMi4xOTEwMTI0MDE1Njg2OThlLTAxLAorICAtOS43NTY2MDA5OTk2NTI3MTZlLTAxLCAgIDIuMTkyODgzMjQ2NjgxMzI1ZS0wMSwKKyAgLTkuNzU2MTgwMzQwMTk3ODE4ZS0wMSwgICAyLjE5NDc1NDAxMTE2NzkwM2UtMDEsCisgIC05Ljc1NTc1OTMyMjAzNjA1N2UtMDEsICAgMi4xOTY2MjQ2OTQ5NTk2NTBlLTAxLAorICAtOS43NTUzMzc5NDUxODI5MTRlLTAxLCAgIDIuMTk4NDk1Mjk3OTg3Nzg3ZS0wMSwKKyAgLTkuNzU0OTE2MjA5NjUzODgxZS0wMSwgICAyLjIwMDM2NTgyMDE4MzUzNmUtMDEsCisgIC05Ljc1NDQ5NDExNTQ2NDQ2NGUtMDEsICAgMi4yMDIyMzYyNjE0NzgxMjRlLTAxLAorICAtOS43NTQwNzE2NjI2MzAxODNlLTAxLCAgIDIuMjA0MTA2NjIxODAyNzc5ZS0wMSwKKyAgLTkuNzUzNjQ4ODUxMTY2NTcwZS0wMSwgICAyLjIwNTk3NjkwMTA4ODczNWUtMDEsCisgIC05Ljc1MzIyNTY4MTA4OTE2OWUtMDEsICAgMi4yMDc4NDcwOTkyNjcyMjZlLTAxLAorICAtOS43NTI4MDIxNTI0MTM1NDJlLTAxLCAgIDIuMjA5NzE3MjE2MjY5NDkxZS0wMSwKKyAgLTkuNzUyMzc4MjY1MTU1MjU4ZS0wMSwgICAyLjIxMTU4NzI1MjAyNjc3MGUtMDEsCisgIC05Ljc1MTk1NDAxOTMyOTkwNGUtMDEsICAgMi4yMTM0NTcyMDY0NzAzMDhlLTAxLAorICAtOS43NTE1Mjk0MTQ5NTMwNzZlLTAxLCAgIDIuMjE1MzI3MDc5NTMxMzUyZS0wMSwKKyAgLTkuNzUxMTA0NDUyMDQwMzg5ZS0wMSwgICAyLjIxNzE5Njg3MTE0MTE1MmUtMDEsCisgIC05Ljc1MDY3OTEzMDYwNzQ2NWUtMDEsICAgMi4yMTkwNjY1ODEyMzA5NjFlLTAxLAorICAtOS43NTAyNTM0NTA2Njk5NDFlLTAxLCAgIDIuMjIwOTM2MjA5NzMyMDM1ZS0wMSwKKyAgLTkuNzQ5ODI3NDEyMjQzNDcxZS0wMSwgICAyLjIyMjgwNTc1NjU3NTYzNGUtMDEsCisgIC05Ljc0OTQwMTAxNTM0MzcxOGUtMDEsICAgMi4yMjQ2NzUyMjE2OTMwMTllLTAxLAorICAtOS43NDg5NzQyNTk5ODYzNThlLTAxLCAgIDIuMjI2NTQ0NjA1MDE1NDU1ZS0wMSwKKyAgLTkuNzQ4NTQ3MTQ2MTg3MDg0ZS0wMSwgICAyLjIyODQxMzkwNjQ3NDIxMWUtMDEsCisgIC05Ljc0ODExOTY3Mzk2MTU5OGUtMDEsICAgMi4yMzAyODMxMjYwMDA1NThlLTAxLAorICAtOS43NDc2OTE4NDMzMjU2MThlLTAxLCAgIDIuMjMyMTUyMjYzNTI1NzcwZS0wMSwKKyAgLTkuNzQ3MjYzNjU0Mjk0ODczZS0wMSwgICAyLjIzNDAyMTMxODk4MTEyNGUtMDEsCisgIC05Ljc0NjgzNTEwNjg4NTEwN2UtMDEsICAgMi4yMzU4OTAyOTIyOTc5MDBlLTAxLAorICAtOS43NDY0MDYyMDExMTIwNzZlLTAxLCAgIDIuMjM3NzU5MTgzNDA3MzgyZS0wMSwKKyAgLTkuNzQ1OTc2OTM2OTkxNTUwZS0wMSwgICAyLjIzOTYyNzk5MjI0MDg1NWUtMDEsCisgIC05Ljc0NTU0NzMxNDUzOTMxMmUtMDEsICAgMi4yNDE0OTY3MTg3Mjk2MDllLTAxLAorICAtOS43NDUxMTczMzM3NzExNTdlLTAxLCAgIDIuMjQzMzY1MzYyODA0OTM2ZS0wMSwKKyAgLTkuNzQ0Njg2OTk0NzAyODk2ZS0wMSwgICAyLjI0NTIzMzkyNDM5ODEzMmUtMDEsCisgIC05Ljc0NDI1NjI5NzM1MDM1MGUtMDEsICAgMi4yNDcxMDI0MDM0NDA0OTRlLTAxLAorICAtOS43NDM4MjUyNDE3MjkzNTVlLTAxLCAgIDIuMjQ4OTcwNzk5ODYzMzI1ZS0wMSwKKyAgLTkuNzQzMzkzODI3ODU1NzU5ZS0wMSwgICAyLjI1MDgzOTExMzU5NzkyOGUtMDEsCisgIC05Ljc0Mjk2MjA1NTc0NTQyNGUtMDEsICAgMi4yNTI3MDczNDQ1NzU2MTJlLTAxLAorICAtOS43NDI1Mjk5MjU0MTQyMjVlLTAxLCAgIDIuMjU0NTc1NDkyNzI3Njg1ZS0wMSwKKyAgLTkuNzQyMDk3NDM2ODc4MDUyZS0wMSwgICAyLjI1NjQ0MzU1Nzk4NTQ2M2UtMDEsCisgIC05Ljc0MTY2NDU5MDE1MjgwM2UtMDEsICAgMi4yNTgzMTE1NDAyODAyNjJlLTAxLAorICAtOS43NDEyMzEzODUyNTQzOTZlLTAxLCAgIDIuMjYwMTc5NDM5NTQzNDAwZS0wMSwKKyAgLTkuNzQwNzk3ODIyMTk4NzU3ZS0wMSwgICAyLjI2MjA0NzI1NTcwNjIwMmUtMDEsCisgIC05Ljc0MDM2MzkwMTAwMTgyNmUtMDEsICAgMi4yNjM5MTQ5ODg2OTk5OTJlLTAxLAorICAtOS43Mzk5Mjk2MjE2Nzk1NThlLTAxLCAgIDIuMjY1NzgyNjM4NDU2MTAwZS0wMSwKKyAgLTkuNzM5NDk0OTg0MjQ3OTIyZS0wMSwgICAyLjI2NzY1MDIwNDkwNTg1N2UtMDEsCisgIC05LjczOTA1OTk4ODcyMjg5NmUtMDEsICAgMi4yNjk1MTc2ODc5ODA1OThlLTAxLAorICAtOS43Mzg2MjQ2MzUxMjA0NzNlLTAxLCAgIDIuMjcxMzg1MDg3NjExNjYyZS0wMSwKKyAgLTkuNzM4MTg4OTIzNDU2NjYxZS0wMSwgICAyLjI3MzI1MjQwMzczMDM4OWUtMDEsCisgIC05LjczNzc1Mjg1Mzc0NzQ4MWUtMDEsICAgMi4yNzUxMTk2MzYyNjgxMjNlLTAxLAorICAtOS43MzczMTY0MjYwMDg5NjRlLTAxLCAgIDIuMjc2OTg2Nzg1MTU2MjEyZS0wMSwKKyAgLTkuNzM2ODc5NjQwMjU3MTU3ZS0wMSwgICAyLjI3ODg1Mzg1MDMyNjAwNWUtMDEsCisgIC05LjczNjQ0MjQ5NjUwODEyMGUtMDEsICAgMi4yODA3MjA4MzE3MDg4NTdlLTAxLAorICAtOS43MzYwMDQ5OTQ3Nzc5MjRlLTAxLCAgIDIuMjgyNTg3NzI5MjM2MTI0ZS0wMSwKKyAgLTkuNzM1NTY3MTM1MDgyNjU2ZS0wMSwgICAyLjI4NDQ1NDU0MjgzOTE2NWUtMDEsCisgIC05LjczNTEyODkxNzQzODQxNGUtMDEsICAgMi4yODYzMjEyNzI0NDkzNDJlLTAxLAorICAtOS43MzQ2OTAzNDE4NjEzMTFlLTAxLCAgIDIuMjg4MTg3OTE3OTk4MDIyZS0wMSwKKyAgLTkuNzM0MjUxNDA4MzY3NDcwZS0wMSwgICAyLjI5MDA1NDQ3OTQxNjU3M2UtMDEsCisgIC05LjczMzgxMjExNjk3MzAzM2UtMDEsICAgMi4yOTE5MjA5NTY2MzYzNjhlLTAxLAorICAtOS43MzMzNzI0Njc2OTQxNDllLTAxLCAgIDIuMjkzNzg3MzQ5NTg4NzgwZS0wMSwKKyAgLTkuNzMyOTMyNDYwNTQ2OTgyZS0wMSwgICAyLjI5NTY1MzY1ODIwNTE4OWUtMDEsCisgIC05LjczMjQ5MjA5NTU0NzcxMmUtMDEsICAgMi4yOTc1MTk4ODI0MTY5NzVlLTAxLAorICAtOS43MzIwNTEzNzI3MTI1MjhlLTAxLCAgIDIuMjk5Mzg2MDIyMTU1NTIyZS0wMSwKKyAgLTkuNzMxNjEwMjkyMDU3NjM1ZS0wMSwgICAyLjMwMTI1MjA3NzM1MjIxOWUtMDEsCisgIC05LjczMTE2ODg1MzU5OTI1MWUtMDEsICAgMi4zMDMxMTgwNDc5Mzg0NTRlLTAxLAorICAtOS43MzA3MjcwNTczNTM2MDVlLTAxLCAgIDIuMzA0OTgzOTMzODQ1NjI0ZS0wMSwKKyAgLTkuNzMwMjg0OTAzMzM2OTQyZS0wMSwgICAyLjMwNjg0OTczNTAwNTEyMmUtMDEsCisgIC05LjcyOTg0MjM5MTU2NTUxN2UtMDEsICAgMi4zMDg3MTU0NTEzNDgzNTBlLTAxLAorICAtOS43MjkzOTk1MjIwNTU2MDJlLTAxLCAgIDIuMzEwNTgxMDgyODA2NzExZS0wMSwKKyAgLTkuNzI4OTU2Mjk0ODIzNDc4ZS0wMSwgICAyLjMxMjQ0NjYyOTMxMTYxMWUtMDEsCisgIC05LjcyODUxMjcwOTg4NTQ0MmUtMDEsICAgMi4zMTQzMTIwOTA3OTQ0NThlLTAxLAorICAtOS43MjgwNjg3NjcyNTc4MDRlLTAxLCAgIDIuMzE2MTc3NDY3MTg2NjY1ZS0wMSwKKyAgLTkuNzI3NjI0NDY2OTU2ODg2ZS0wMSwgICAyLjMxODA0Mjc1ODQxOTY0OGUtMDEsCisgIC05LjcyNzE3OTgwODk5OTAyMmUtMDEsICAgMi4zMTk5MDc5NjQ0MjQ4MjRlLTAxLAorICAtOS43MjY3MzQ3OTM0MDA1NjRlLTAxLCAgIDIuMzIxNzczMDg1MTMzNjE3ZS0wMSwKKyAgLTkuNzI2Mjg5NDIwMTc3ODczZS0wMSwgICAyLjMyMzYzODEyMDQ3NzQ1MGUtMDEsCisgIC05LjcyNTg0MzY4OTM0NzMyMmUtMDEsICAgMi4zMjU1MDMwNzAzODc3NTJlLTAxLAorICAtOS43MjUzOTc2MDA5MjUzMDJlLTAxLCAgIDIuMzI3MzY3OTM0Nzk1OTU0ZS0wMSwKKyAgLTkuNzI0OTUxMTU0OTI4MjEyZS0wMSwgICAyLjMyOTIzMjcxMzYzMzQ5MGUtMDEsCisgIC05LjcyNDUwNDM1MTM3MjQ2OGUtMDEsICAgMi4zMzEwOTc0MDY4MzE3OTdlLTAxLAorICAtOS43MjQwNTcxOTAyNzQ0OThlLTAxLCAgIDIuMzMyOTYyMDE0MzIyMzE2ZS0wMSwKKyAgLTkuNzIzNjA5NjcxNjUwNzQxZS0wMSwgICAyLjMzNDgyNjUzNjAzNjQ5MWUtMDEsCisgIC05LjcyMzE2MTc5NTUxNzY1M2UtMDEsICAgMi4zMzY2OTA5NzE5MDU3NjhlLTAxLAorICAtOS43MjI3MTM1NjE4OTE3MDBlLTAxLCAgIDIuMzM4NTU1MzIxODYxNTk4ZS0wMSwKKyAgLTkuNzIyMjY0OTcwNzg5MzYzZS0wMSwgICAyLjM0MDQxOTU4NTgzNTQzNGUtMDEsCisgIC05LjcyMTgxNjAyMjIyNzEzNGUtMDEsICAgMi4zNDIyODM3NjM3NTg3MzJlLTAxLAorICAtOS43MjEzNjY3MTYyMjE1MjJlLTAxLCAgIDIuMzQ0MTQ3ODU1NTYyOTUyZS0wMSwKKyAgLTkuNzIwOTE3MDUyNzg5MDQ0ZS0wMSwgICAyLjM0NjAxMTg2MTE3OTU1NmUtMDEsCisgIC05LjcyMDQ2NzAzMTk0NjIzNWUtMDEsICAgMi4zNDc4NzU3ODA1NDAwMTBlLTAxLAorICAtOS43MjAwMTY2NTM3MDk2MzllLTAxLCAgIDIuMzQ5NzM5NjEzNTc1NzgzZS0wMSwKKyAgLTkuNzE5NTY1OTE4MDk1ODE3ZS0wMSwgICAyLjM1MTYwMzM2MDIxODM0N2UtMDEsCisgIC05LjcxOTExNDgyNTEyMTM0MGUtMDEsICAgMi4zNTM0NjcwMjAzOTkxNzhlLTAxLAorICAtOS43MTg2NjMzNzQ4MDI3OTRlLTAxLCAgIDIuMzU1MzMwNTk0MDQ5NzU1ZS0wMSwKKyAgLTkuNzE4MjExNTY3MTU2Nzc3ZS0wMSwgICAyLjM1NzE5NDA4MTEwMTU1OGUtMDEsCisgIC05LjcxNzc1OTQwMjE5OTkwMWUtMDEsICAgMi4zNTkwNTc0ODE0ODYwNzRlLTAxLAorICAtOS43MTczMDY4Nzk5NDg3OTJlLTAxLCAgIDIuMzYwOTIwNzk1MTM0Nzg5ZS0wMSwKKyAgLTkuNzE2ODU0MDAwNDIwMDg1ZS0wMSwgICAyLjM2Mjc4NDAyMTk3OTE5NmUtMDEsCisgIC05LjcxNjQwMDc2MzYzMDQzNGUtMDEsICAgMi4zNjQ2NDcxNjE5NTA3ODhlLTAxLAorICAtOS43MTU5NDcxNjk1OTY1MDJlLTAxLCAgIDIuMzY2NTEwMjE0OTgxMDY0ZS0wMSwKKyAgLTkuNzE1NDkzMjE4MzM0OTY2ZS0wMSwgICAyLjM2ODM3MzE4MTAwMTUyNGUtMDEsCisgIC05LjcxNTAzODkwOTg2MjUxOGUtMDEsICAgMi4zNzAyMzYwNTk5NDM2NzJlLTAxLAorICAtOS43MTQ1ODQyNDQxOTU4NjBlLTAxLCAgIDIuMzcyMDk4ODUxNzM5MDE2ZS0wMSwKKyAgLTkuNzE0MTI5MjIxMzUxNzA5ZS0wMSwgICAyLjM3Mzk2MTU1NjMxOTA2NmUtMDEsCisgIC05LjcxMzY3Mzg0MTM0Njc5NWUtMDEsICAgMi4zNzU4MjQxNzM2MTUzMzZlLTAxLAorICAtOS43MTMyMTgxMDQxOTc4NjJlLTAxLCAgIDIuMzc3Njg2NzAzNTU5MzQyZS0wMSwKKyAgLTkuNzEyNzYyMDA5OTIxNjY1ZS0wMSwgICAyLjM3OTU0OTE0NjA4MjYwNWUtMDEsCisgIC05LjcxMjMwNTU1ODUzNDk3NGUtMDEsICAgMi4zODE0MTE1MDExMTY2NDhlLTAxLAorICAtOS43MTE4NDg3NTAwNTQ1NzBlLTAxLCAgIDIuMzgzMjczNzY4NTkyOTk4ZS0wMSwKKyAgLTkuNzExMzkxNTg0NDk3MjUxZS0wMSwgICAyLjM4NTEzNTk0ODQ0MzE4NGUtMDEsCisgIC05LjcxMDkzNDA2MTg3OTgyNWUtMDEsICAgMi4zODY5OTgwNDA1OTg3NDBlLTAxLAorICAtOS43MTA0NzYxODIyMTkxMTFlLTAxLCAgIDIuMzg4ODYwMDQ0OTkxMjAwZS0wMSwKKyAgLTkuNzEwMDE3OTQ1NTMxOTQ3ZS0wMSwgICAyLjM5MDcyMTk2MTU1MjEwNmUtMDEsCisgIC05LjcwOTU1OTM1MTgzNTE4MGUtMDEsICAgMi4zOTI1ODM3OTAyMTMwMDBlLTAxLAorICAtOS43MDkxMDA0MDExNDU2NzBlLTAxLCAgIDIuMzk0NDQ1NTMwOTA1NDI2ZS0wMSwKKyAgLTkuNzA4NjQxMDkzNDgwMjk1ZS0wMSwgICAyLjM5NjMwNzE4MzU2MDkzNmUtMDEsCisgIC05LjcwODE4MTQyODg1NTkzOWUtMDEsICAgMi4zOTgxNjg3NDgxMTEwODBlLTAxLAorICAtOS43MDc3MjE0MDcyODk1MDRlLTAxLCAgIDIuNDAwMDMwMjI0NDg3NDE1ZS0wMSwKKyAgLTkuNzA3MjYxMDI4Nzk3OTAxZS0wMSwgICAyLjQwMTg5MTYxMjYyMTQ5OWUtMDEsCisgIC05LjcwNjgwMDI5MzM5ODA2MWUtMDEsICAgMi40MDM3NTI5MTI0NDQ4OTRlLTAxLAorICAtOS43MDYzMzkyMDExMDY5MjJlLTAxLCAgIDIuNDA1NjE0MTIzODg5MTY3ZS0wMSwKKyAgLTkuNzA1ODc3NzUxOTQxNDM2ZS0wMSwgICAyLjQwNzQ3NTI0Njg4NTg4NGUtMDEsCisgIC05LjcwNTQxNTk0NTkxODU3MWUtMDEsICAgMi40MDkzMzYyODEzNjY2MTllLTAxLAorICAtOS43MDQ5NTM3ODMwNTUzMDZlLTAxLCAgIDIuNDExMTk3MjI3MjYyOTQ2ZS0wMSwKKyAgLTkuNzA0NDkxMjYzMzY4NjMxZS0wMSwgICAyLjQxMzA1ODA4NDUwNjQ0NGUtMDEsCisgIC05LjcwNDAyODM4Njg3NTU1NWUtMDEsICAgMi40MTQ5MTg4NTMwMjg2OTNlLTAxLAorICAtOS43MDM1NjUxNTM1OTMwOTRlLTAxLCAgIDIuNDE2Nzc5NTMyNzYxMjgwZS0wMSwKKyAgLTkuNzAzMTAxNTYzNTM4MjgxZS0wMSwgICAyLjQxODY0MDEyMzYzNTc5MmUtMDEsCisgIC05LjcwMjYzNzYxNjcyODE2MWUtMDEsICAgMi40MjA1MDA2MjU1ODM4MjFlLTAxLAorICAtOS43MDIxNzMzMTMxNzk3OTJlLTAxLCAgIDIuNDIyMzYxMDM4NTM2OTYwZS0wMSwKKyAgLTkuNzAxNzA4NjUyOTEwMjQ1ZS0wMSwgICAyLjQyNDIyMTM2MjQyNjgwOWUtMDEsCisgIC05LjcwMTI0MzYzNTkzNjYwM2UtMDEsICAgMi40MjYwODE1OTcxODQ5NjhlLTAxLAorICAtOS43MDA3NzgyNjIyNzU5NjRlLTAxLCAgIDIuNDI3OTQxNzQyNzQzMDQyZS0wMSwKKyAgLTkuNzAwMzEyNTMxOTQ1NDQwZS0wMSwgICAyLjQyOTgwMTc5OTAzMjYzOWUtMDEsCisgIC05LjY5OTg0NjQ0NDk2MjE1MmUtMDEsICAgMi40MzE2NjE3NjU5ODUzNjllLTAxLAorICAtOS42OTkzODAwMDEzNDMyNDBlLTAxLCAgIDIuNDMzNTIxNjQzNTMyODQ3ZS0wMSwKKyAgLTkuNjk4OTEzMjAxMTA1ODUxZS0wMSwgICAyLjQzNTM4MTQzMTYwNjY5MWUtMDEsCisgIC05LjY5ODQ0NjA0NDI2NzE0OGUtMDEsICAgMi40MzcyNDExMzAxMzg1MjJlLTAxLAorICAtOS42OTc5Nzg1MzA4NDQzMDllLTAxLCAgIDIuNDM5MTAwNzM5MDU5OTYzZS0wMSwKKyAgLTkuNjk3NTEwNjYwODU0NTIxZS0wMSwgICAyLjQ0MDk2MDI1ODMwMjY0MmUtMDEsCisgIC05LjY5NzA0MjQzNDMxNDk4OWUtMDEsICAgMi40NDI4MTk2ODc3OTgxOTBlLTAxLAorICAtOS42OTY1NzM4NTEyNDI5MjRlLTAxLCAgIDIuNDQ0Njc5MDI3NDc4MjQyZS0wMSwKKyAgLTkuNjk2MTA0OTExNjU1NTU5ZS0wMSwgICAyLjQ0NjUzODI3NzI3NDQzM2UtMDEsCisgIC05LjY5NTYzNTYxNTU3MDEzMmUtMDEsICAgMi40NDgzOTc0MzcxMTg0MDdlLTAxLAorICAtOS42OTUxNjU5NjMwMDM5MDBlLTAxLCAgIDIuNDUwMjU2NTA2OTQxODA1ZS0wMSwKKyAgLTkuNjk0Njk1OTUzOTc0MTMxZS0wMSwgICAyLjQ1MjExNTQ4NjY3NjI3NWUtMDEsCisgIC05LjY5NDIyNTU4ODQ5ODEwM2UtMDEsICAgMi40NTM5NzQzNzYyNTM0NzBlLTAxLAorICAtOS42OTM3NTQ4NjY1OTMxMTNlLTAxLCAgIDIuNDU1ODMzMTc1NjA1MDQxZS0wMSwKKyAgLTkuNjkzMjgzNzg4Mjc2NDY3ZS0wMSwgICAyLjQ1NzY5MTg4NDY2MjY0NmUtMDEsCisgIC05LjY5MjgxMjM1MzU2NTQ4NWUtMDEsICAgMi40NTk1NTA1MDMzNTc5NDZlLTAxLAorICAtOS42OTIzNDA1NjI0Nzc1MDBlLTAxLCAgIDIuNDYxNDA5MDMxNjIyNjA1ZS0wMSwKKyAgLTkuNjkxODY4NDE1MDI5ODYwZS0wMSwgICAyLjQ2MzI2NzQ2OTM4ODI5MGUtMDEsCisgIC05LjY5MTM5NTkxMTIzOTkyM2UtMDEsICAgMi40NjUxMjU4MTY1ODY2NzJlLTAxLAorICAtOS42OTA5MjMwNTExMjUwNjJlLTAxLCAgIDIuNDY2OTg0MDczMTQ5NDI0ZS0wMSwKKyAgLTkuNjkwNDQ5ODM0NzAyNjYyZS0wMSwgICAyLjQ2ODg0MjIzOTAwODIyNGUtMDEsCisgIC05LjY4OTk3NjI2MTk5MDEyNGUtMDEsICAgMi40NzA3MDAzMTQwOTQ3NTNlLTAxLAorICAtOS42ODk1MDIzMzMwMDQ4NThlLTAxLCAgIDIuNDcyNTU4Mjk4MzQwNjkzZS0wMSwKKyAgLTkuNjg5MDI4MDQ3NzY0Mjg5ZS0wMSwgICAyLjQ3NDQxNjE5MTY3NzczM2UtMDEsCisgIC05LjY4ODU1MzQwNjI4NTg1NmUtMDEsICAgMi40NzYyNzM5OTQwMzc1NjNlLTAxLAorICAtOS42ODgwNzg0MDg1ODcwMTBlLTAxLCAgIDIuNDc4MTMxNzA1MzUxODc3ZS0wMSwKKyAgLTkuNjg3NjAzMDU0Njg1MjE0ZS0wMSwgICAyLjQ3OTk4OTMyNTU1MjM3MWUtMDEsCisgIC05LjY4NzEyNzM0NDU5Nzk0OGUtMDEsICAgMi40ODE4NDY4NTQ1NzA3NDhlLTAxLAorICAtOS42ODY2NTEyNzgzNDI3MDFlLTAxLCAgIDIuNDgzNzA0MjkyMzM4NzEwZS0wMSwKKyAgLTkuNjg2MTc0ODU1OTM2OTc1ZS0wMSwgICAyLjQ4NTU2MTYzODc4Nzk2NmUtMDEsCisgIC05LjY4NTY5ODA3NzM5ODI4OWUtMDEsICAgMi40ODc0MTg4OTM4NTAyMjVlLTAxLAorICAtOS42ODUyMjA5NDI3NDQxNzRlLTAxLCAgIDIuNDg5Mjc2MDU3NDU3MjAxZS0wMSwKKyAgLTkuNjg0NzQzNDUxOTkyMTY4ZS0wMSwgICAyLjQ5MTEzMzEyOTU0MDYxNGUtMDEsCisgIC05LjY4NDI2NTYwNTE1OTgzMmUtMDEsICAgMi40OTI5OTAxMTAwMzIxODJlLTAxLAorICAtOS42ODM3ODc0MDIyNjQ3MzNlLTAxLCAgIDIuNDk0ODQ2OTk4ODYzNjMwZS0wMSwKKyAgLTkuNjgzMzA4ODQzMzI0NDUyZS0wMSwgICAyLjQ5NjcwMzc5NTk2NjY4NmUtMDEsCisgIC05LjY4MjgyOTkyODM1NjU4N2UtMDEsICAgMi40OTg1NjA1MDEyNzMwODBlLTAxLAorICAtOS42ODIzNTA2NTczNzg3NDNlLTAxLCAgIDIuNTAwNDE3MTE0NzE0NTQ3ZS0wMSwKKyAgLTkuNjgxODcxMDMwNDA4NTQ0ZS0wMSwgICAyLjUwMjI3MzYzNjIyMjgyNGUtMDEsCisgIC05LjY4MTM5MTA0NzQ2MzYyNGUtMDEsICAgMi41MDQxMzAwNjU3Mjk2NTJlLTAxLAorICAtOS42ODA5MTA3MDg1NjE2MzBlLTAxLCAgIDIuNTA1OTg2NDAzMTY2Nzc3ZS0wMSwKKyAgLTkuNjgwNDMwMDEzNzIwMjIzZS0wMSwgICAyLjUwNzg0MjY0ODQ2NTk0NWUtMDEsCisgIC05LjY3OTk0ODk2Mjk1NzA3N2UtMDEsICAgMi41MDk2OTg4MDE1NTg5MDdlLTAxLAorICAtOS42Nzk0Njc1NTYyODk4NzhlLTAxLCAgIDIuNTExNTU0ODYyMzc3NDE5ZS0wMSwKKyAgLTkuNjc4OTg1NzkzNzM2MzI3ZS0wMSwgICAyLjUxMzQxMDgzMDg1MzIzOWUtMDEsCisgIC05LjY3ODUwMzY3NTMxNDEzNmUtMDEsICAgMi41MTUyNjY3MDY5MTgxMjZlLTAxLAorICAtOS42NzgwMjEyMDEwNDEwMzNlLTAxLCAgIDIuNTE3MTIyNDkwNTAzODQ3ZS0wMSwKKyAgLTkuNjc3NTM4MzcwOTM0NzU1ZS0wMSwgICAyLjUxODk3ODE4MTU0MjE3MGUtMDEsCisgIC05LjY3NzA1NTE4NTAxMzA1NWUtMDEsICAgMi41MjA4MzM3Nzk5NjQ4NjRlLTAxLAorICAtOS42NzY1NzE2NDMyOTM2OTllLTAxLCAgIDIuNTIyNjg5Mjg1NzAzNzA4ZS0wMSwKKyAgLTkuNjc2MDg3NzQ1Nzk0NDY1ZS0wMSwgICAyLjUyNDU0NDY5ODY5MDQ3N2UtMDEsCisgIC05LjY3NTYwMzQ5MjUzMzE0NGUtMDEsICAgMi41MjY0MDAwMTg4NTY5NTVlLTAxLAorICAtOS42NzUxMTg4ODM1Mjc1NDFlLTAxLCAgIDIuNTI4MjU1MjQ2MTM0OTI2ZS0wMSwKKyAgLTkuNjc0NjMzOTE4Nzk1NDc2ZS0wMSwgICAyLjUzMDExMDM4MDQ1NjE3OWUtMDEsCisgIC05LjY3NDE0ODU5ODM1NDc3NWUtMDEsICAgMi41MzE5NjU0MjE3NTI1MDZlLTAxLAorICAtOS42NzM2NjI5MjIyMjMyODVlLTAxLCAgIDIuNTMzODIwMzY5OTU1NzAyZS0wMSwKKyAgLTkuNjczMTc2ODkwNDE4ODYzZS0wMSwgICAyLjUzNTY3NTIyNDk5NzU2NmUtMDEsCisgIC05LjY3MjY5MDUwMjk1OTM3OGUtMDEsICAgMi41Mzc1Mjk5ODY4MDk5MDBlLTAxLAorICAtOS42NzIyMDM3NTk4NjI3MTRlLTAxLCAgIDIuNTM5Mzg0NjU1MzI0NTExZS0wMSwKKyAgLTkuNjcxNzE2NjYxMTQ2NzY2ZS0wMSwgICAyLjU0MTIzOTIzMDQ3MzIwNmUtMDEsCisgIC05LjY3MTIyOTIwNjgyOTQ0NGUtMDEsICAgMi41NDMwOTM3MTIxODc4MDBlLTAxLAorICAtOS42NzA3NDEzOTY5Mjg2NzBlLTAxLCAgIDIuNTQ0OTQ4MTAwNDAwMTA3ZS0wMSwKKyAgLTkuNjcwMjUzMjMxNDYyMzgwZS0wMSwgICAyLjU0NjgwMjM5NTA0MTk0OGUtMDEsCisgIC05LjY2OTc2NDcxMDQ0ODUyMWUtMDEsICAgMi41NDg2NTY1OTYwNDUxNDZlLTAxLAorICAtOS42NjkyNzU4MzM5MDUwNTdlLTAxLCAgIDIuNTUwNTEwNzAzMzQxNTI1ZS0wMSwKKyAgLTkuNjY4Nzg2NjAxODQ5OTU5ZS0wMSwgICAyLjU1MjM2NDcxNjg2MjkxN2UtMDEsCisgIC05LjY2ODI5NzAxNDMwMTIxOGUtMDEsICAgMi41NTQyMTg2MzY1NDExNTVlLTAxLAorICAtOS42Njc4MDcwNzEyNzY4MzNlLTAxLCAgIDIuNTU2MDcyNDYyMzA4MDc0ZS0wMSwKKyAgLTkuNjY3MzE2NzcyNzk0ODE4ZS0wMSwgICAyLjU1NzkyNjE5NDA5NTUxNmUtMDEsCisgIC05LjY2NjgyNjExODg3MzIwMWUtMDEsICAgMi41NTk3Nzk4MzE4MzUzMjRlLTAxLAorICAtOS42NjYzMzUxMDk1MzAwMjFlLTAxLCAgIDIuNTYxNjMzMzc1NDU5MzQ1ZS0wMSwKKyAgLTkuNjY1ODQzNzQ0NzgzMzMxZS0wMSwgICAyLjU2MzQ4NjgyNDg5OTQyOWUtMDEsCisgIC05LjY2NTM1MjAyNDY1MTE5N2UtMDEsICAgMi41NjUzNDAxODAwODc0MzBlLTAxLAorICAtOS42NjQ4NTk5NDkxNTE2OThlLTAxLCAgIDIuNTY3MTkzNDQwOTU1MjA3ZS0wMSwKKyAgLTkuNjY0MzY3NTE4MzAyOTI3ZS0wMSwgICAyLjU2OTA0NjYwNzQzNDYxOWUtMDEsCisgIC05LjY2Mzg3NDczMjEyMjk4OWUtMDEsICAgMi41NzA4OTk2Nzk0NTc1MzFlLTAxLAorICAtOS42NjMzODE1OTA2MzAwMDFlLTAxLCAgIDIuNTcyNzUyNjU2OTU1ODExZS0wMSwKKyAgLTkuNjYyODg4MDkzODQyMDk3ZS0wMSwgICAyLjU3NDYwNTUzOTg2MTMzMWUtMDEsCisgIC05LjY2MjM5NDI0MTc3NzQxOWUtMDEsICAgMi41NzY0NTgzMjgxMDU5NjRlLTAxLAorICAtOS42NjE5MDAwMzQ0NTQxMjVlLTAxLCAgIDIuNTc4MzExMDIxNjIxNTkwZS0wMSwKKyAgLTkuNjYxNDA1NDcxODkwMzg3ZS0wMSwgICAyLjU4MDE2MzYyMDM0MDA5MGUtMDEsCisgIC05LjY2MDkxMDU1NDEwNDM4OGUtMDEsICAgMi41ODIwMTYxMjQxOTMzNDllLTAxLAorICAtOS42NjA0MTUyODExMTQzMjRlLTAxLCAgIDIuNTgzODY4NTMzMTEzMjU2ZS0wMSwKKyAgLTkuNjU5OTE5NjUyOTM4NDA2ZS0wMSwgICAyLjU4NTcyMDg0NzAzMTcwM2UtMDEsCisgIC05LjY1OTQyMzY2OTU5NDg1NWUtMDEsICAgMi41ODc1NzMwNjU4ODA1ODdlLTAxLAorICAtOS42NTg5MjczMzExMDE5MDllLTAxLCAgIDIuNTg5NDI1MTg5NTkxODA1ZS0wMSwKKyAgLTkuNjU4NDMwNjM3NDc3ODE1ZS0wMSwgICAyLjU5MTI3NzIxODA5NzI2MmUtMDEsCisgIC05LjY1NzkzMzU4ODc0MDgzN2UtMDEsICAgMi41OTMxMjkxNTEzMjg4NjJlLTAxLAorICAtOS42NTc0MzYxODQ5MDkyNDhlLTAxLCAgIDIuNTk0OTgwOTg5MjE4NTE3ZS0wMSwKKyAgLTkuNjU2OTM4NDI2MDAxMzM3ZS0wMSwgICAyLjU5NjgzMjczMTY5ODEzOGUtMDEsCisgIC05LjY1NjQ0MDMxMjAzNTQwNmUtMDEsICAgMi41OTg2ODQzNzg2OTk2NDNlLTAxLAorICAtOS42NTU5NDE4NDMwMjk3NjhlLTAxLCAgIDIuNjAwNTM1OTMwMTU0OTUyZS0wMSwKKyAgLTkuNjU1NDQzMDE5MDAyNzUyZS0wMSwgICAyLjYwMjM4NzM4NTk5NTk4OGUtMDEsCisgIC05LjY1NDk0MzgzOTk3MjY5NWUtMDEsICAgMi42MDQyMzg3NDYxNTQ2ODBlLTAxLAorICAtOS42NTQ0NDQzMDU5NTc5NTRlLTAxLCAgIDIuNjA2MDkwMDEwNTYyOTU4ZS0wMSwKKyAgLTkuNjUzOTQ0NDE2OTc2ODk0ZS0wMSwgICAyLjYwNzk0MTE3OTE1Mjc1NWUtMDEsCisgIC05LjY1MzQ0NDE3MzA0Nzg5NGUtMDEsICAgMi42MDk3OTIyNTE4NTYwMTFlLTAxLAorICAtOS42NTI5NDM1NzQxODkzNDdlLTAxLCAgIDIuNjExNjQzMjI4NjA0NjY1ZS0wMSwKKyAgLTkuNjUyNDQyNjIwNDE5NjU4ZS0wMSwgICAyLjYxMzQ5NDEwOTMzMDY2NGUtMDEsCisgIC05LjY1MTk0MTMxMTc1NzI0N2UtMDEsICAgMi42MTUzNDQ4OTM5NjU5NTVlLTAxLAorICAtOS42NTE0Mzk2NDgyMjA1NDRlLTAxLCAgIDIuNjE3MTk1NTgyNDQyNDkwZS0wMSwKKyAgLTkuNjUwOTM3NjI5ODI3OTk2ZS0wMSwgICAyLjYxOTA0NjE3NDY5MjIyNmUtMDEsCisgIC05LjY1MDQzNTI1NjU5ODA1OWUtMDEsICAgMi42MjA4OTY2NzA2NDcxMjBlLTAxLAorICAtOS42NDk5MzI1Mjg1NDkyMDNlLTAxLCAgIDIuNjIyNzQ3MDcwMjM5MTM2ZS0wMSwKKyAgLTkuNjQ5NDI5NDQ1Njk5OTE0ZS0wMSwgICAyLjYyNDU5NzM3MzQwMDI0MGUtMDEsCisgIC05LjY0ODkyNjAwODA2ODY4OWUtMDEsICAgMi42MjY0NDc1ODAwNjI0MDBlLTAxLAorICAtOS42NDg0MjIyMTU2NzQwMzZlLTAxLCAgIDIuNjI4Mjk3NjkwMTU3NTkyZS0wMSwKKyAgLTkuNjQ3OTE4MDY4NTM0NDc5ZS0wMSwgICAyLjYzMDE0NzcwMzYxNzc5MGUtMDEsCisgIC05LjY0NzQxMzU2NjY2ODU1M2UtMDEsICAgMi42MzE5OTc2MjAzNzQ5NzZlLTAxLAorICAtOS42NDY5MDg3MTAwOTQ4MTBlLTAxLCAgIDIuNjMzODQ3NDQwMzYxMTMzZS0wMSwKKyAgLTkuNjQ2NDAzNDk4ODMxODA5ZS0wMSwgICAyLjYzNTY5NzE2MzUwODI0OWUtMDEsCisgIC05LjY0NTg5NzkzMjg5ODEyOGUtMDEsICAgMi42Mzc1NDY3ODk3NDgzMTNlLTAxLAorICAtOS42NDUzOTIwMTIzMTIzNTJlLTAxLCAgIDIuNjM5Mzk2MzE5MDEzMzIzZS0wMSwKKyAgLTkuNjQ0ODg1NzM3MDkzMDg0ZS0wMSwgICAyLjY0MTI0NTc1MTIzNTI3NWUtMDEsCisgIC05LjY0NDM3OTEwNzI1ODkzOWUtMDEsICAgMi42NDMwOTUwODYzNDYxNzFlLTAxLAorICAtOS42NDM4NzIxMjI4Mjg1NDNlLTAxLCAgIDIuNjQ0OTQ0MzI0Mjc4MDE2ZS0wMSwKKyAgLTkuNjQzMzY0NzgzODIwNTM3ZS0wMSwgICAyLjY0Njc5MzQ2NDk2MjgxOWUtMDEsCisgIC05LjY0Mjg1NzA5MDI1MzU3NWUtMDEsICAgMi42NDg2NDI1MDgzMzI1OTNlLTAxLAorICAtOS42NDIzNDkwNDIxNDYzMjJlLTAxLCAgIDIuNjUwNDkxNDU0MzE5MzUzZS0wMSwKKyAgLTkuNjQxODQwNjM5NTE3NDU4ZS0wMSwgICAyLjY1MjM0MDMwMjg1NTExOGUtMDEsCisgIC05LjY0MTMzMTg4MjM4NTY3NmUtMDEsICAgMi42NTQxODkwNTM4NzE5MTNlLTAxLAorICAtOS42NDA4MjI3NzA3Njk2ODFlLTAxLCAgIDIuNjU2MDM3NzA3MzAxNzYzZS0wMSwKKyAgLTkuNjQwMzEzMzA0Njg4MTkzZS0wMSwgICAyLjY1Nzg4NjI2MzA3NjY5OWUtMDEsCisgIC05LjYzOTgwMzQ4NDE1OTk0MWUtMDEsICAgMi42NTk3MzQ3MjExMjg3NTZlLTAxLAorICAtOS42MzkyOTMzMDkyMDM2NzFlLTAxLCAgIDIuNjYxNTgzMDgxMzg5OTcwZS0wMSwKKyAgLTkuNjM4NzgyNzc5ODM4MTQyZS0wMSwgICAyLjY2MzQzMTM0Mzc5MjM4MmUtMDEsCisgIC05LjYzODI3MTg5NjA4MjEyM2UtMDEsICAgMi42NjUyNzk1MDgyNjgwMzdlLTAxLAorICAtOS42Mzc3NjA2NTc5NTQzOThlLTAxLCAgIDIuNjY3MTI3NTc0NzQ4OTg0ZS0wMSwKKyAgLTkuNjM3MjQ5MDY1NDczNzY1ZS0wMSwgICAyLjY2ODk3NTU0MzE2NzI3M2UtMDEsCisgIC05LjYzNjczNzExODY1OTAzMmUtMDEsICAgMi42NzA4MjM0MTM0NTQ5NjJlLTAxLAorICAtOS42MzYyMjQ4MTc1MjkwMjJlLTAxLCAgIDIuNjcyNjcxMTg1NTQ0MTA5ZS0wMSwKKyAgLTkuNjM1NzEyMTYyMTAyNTczZS0wMSwgICAyLjY3NDUxODg1OTM2Njc3NmUtMDEsCisgIC05LjYzNTE5OTE1MjM5ODUzMWUtMDEsICAgMi42NzYzNjY0MzQ4NTUwMzFlLTAxLAorICAtOS42MzQ2ODU3ODg0MzU3NjBlLTAxLCAgIDIuNjc4MjEzOTExOTQwOTQxZS0wMSwKKyAgLTkuNjM0MTcyMDcwMjMzMTMzZS0wMSwgICAyLjY4MDA2MTI5MDU1NjU4M2UtMDEsCisgIC05LjYzMzY1Nzk5NzgwOTU0MGUtMDEsICAgMi42ODE5MDg1NzA2MzQwMzJlLTAxLAorICAtOS42MzMxNDM1NzExODM4ODJlLTAxLCAgIDIuNjgzNzU1NzUyMTA1MzY5ZS0wMSwKKyAgLTkuNjMyNjI4NzkwMzc1MDcxZS0wMSwgICAyLjY4NTYwMjgzNDkwMjY3OWUtMDEsCisgIC05LjYzMjExMzY1NTQwMjAzNWUtMDEsICAgMi42ODc0NDk4MTg5NTgwNTBlLTAxLAorICAtOS42MzE1OTgxNjYyODM3MTRlLTAxLCAgIDIuNjg5Mjk2NzA0MjAzNTczZS0wMSwKKyAgLTkuNjMxMDgyMzIzMDM5MDYyZS0wMSwgICAyLjY5MTE0MzQ5MDU3MTM0NGUtMDEsCisgIC05LjYzMDU2NjEyNTY4NzA0M2UtMDEsICAgMi42OTI5OTAxNzc5OTM0NjFlLTAxLAorICAtOS42MzAwNDk1NzQyNDY2MzllLTAxLCAgIDIuNjk0ODM2NzY2NDAyMDI4ZS0wMSwKKyAgLTkuNjI5NTMyNjY4NzM2ODM5ZS0wMSwgICAyLjY5NjY4MzI1NTcyOTE1MWUtMDEsCisgIC05LjYyOTAxNTQwOTE3NjY1MGUtMDEsICAgMi42OTg1Mjk2NDU5MDY5MzllLTAxLAorICAtOS42Mjg0OTc3OTU1ODUwOTBlLTAxLCAgIDIuNzAwMzc1OTM2ODY3NTA2ZS0wMSwKKyAgLTkuNjI3OTc5ODI3OTgxMTkwZS0wMSwgICAyLjcwMjIyMjEyODU0Mjk2OWUtMDEsCisgIC05LjYyNzQ2MTUwNjM4Mzk5NGUtMDEsICAgMi43MDQwNjgyMjA4NjU0NDhlLTAxLAorICAtOS42MjY5NDI4MzA4MTI1NTllLTAxLCAgIDIuNzA1OTE0MjEzNzY3MDY5ZS0wMSwKKyAgLTkuNjI2NDIzODAxMjg1OTU3ZS0wMSwgICAyLjcwNzc2MDEwNzE3OTk2MGUtMDEsCisgIC05LjYyNTkwNDQxNzgyMzI2OWUtMDEsICAgMi43MDk2MDU5MDEwMzYyNTJlLTAxLAorICAtOS42MjUzODQ2ODA0NDM1OTJlLTAxLCAgIDIuNzExNDUxNTk1MjY4MDgwZS0wMSwKKyAgLTkuNjI0ODY0NTg5MTY2MDM0ZS0wMSwgICAyLjcxMzI5NzE4OTgwNzU4NGUtMDEsCisgIC05LjYyNDM0NDE0NDAwOTcyMWUtMDEsICAgMi43MTUxNDI2ODQ1ODY5MDdlLTAxLAorICAtOS42MjM4MjMzNDQ5OTM3ODRlLTAxLCAgIDIuNzE2OTg4MDc5NTM4MTk1ZS0wMSwKKyAgLTkuNjIzMzAyMTkyMTM3Mzc0ZS0wMSwgICAyLjcxODgzMzM3NDU5MzU5N2UtMDEsCisgIC05LjYyMjc4MDY4NTQ1OTY1MWUtMDEsICAgMi43MjA2Nzg1Njk2ODUyNjllLTAxLAorICAtOS42MjIyNTg4MjQ5Nzk3OTBlLTAxLCAgIDIuNzIyNTIzNjY0NzQ1MzY3ZS0wMSwKKyAgLTkuNjIxNzM2NjEwNzE2OTc5ZS0wMSwgICAyLjcyNDM2ODY1OTcwNjA1MmUtMDEsCisgIC05LjYyMTIxNDA0MjY5MDQxNmUtMDEsICAgMi43MjYyMTM1NTQ0OTk0OTBlLTAxLAorICAtOS42MjA2OTExMjA5MTkzMTZlLTAxLCAgIDIuNzI4MDU4MzQ5MDU3ODQ4ZS0wMSwKKyAgLTkuNjIwMTY3ODQ1NDIyOTA2ZS0wMSwgICAyLjcyOTkwMzA0MzMxMzI5OWUtMDEsCisgIC05LjYxOTY0NDIxNjIyMDQyM2UtMDEsICAgMi43MzE3NDc2MzcxOTgwMTllLTAxLAorICAtOS42MTkxMjAyMzMzMzExMjJlLTAxLCAgIDIuNzMzNTkyMTMwNjQ0MTg3ZS0wMSwKKyAgLTkuNjE4NTk1ODk2Nzc0MjY2ZS0wMSwgICAyLjczNTQzNjUyMzU4Mzk4N2UtMDEsCisgIC05LjYxODA3MTIwNjU2OTEzNWUtMDEsICAgMi43MzcyODA4MTU5NDk2MDVlLTAxLAorICAtOS42MTc1NDYxNjI3MzUwMjBlLTAxLCAgIDIuNzM5MTI1MDA3NjczMjMzZS0wMSwKKyAgLTkuNjE3MDIwNzY1MjkxMjI1ZS0wMSwgICAyLjc0MDk2OTA5ODY4NzA2NGUtMDEsCisgIC05LjYxNjQ5NTAxNDI1NzA2OGUtMDEsICAgMi43NDI4MTMwODg5MjMyOTdlLTAxLAorICAtOS42MTU5Njg5MDk2NTE4NzllLTAxLCAgIDIuNzQ0NjU2OTc4MzE0MTMyZS0wMSwKKyAgLTkuNjE1NDQyNDUxNDk1MDAwZS0wMSwgICAyLjc0NjUwMDc2Njc5MTc3N2UtMDEsCisgIC05LjYxNDkxNTYzOTgwNTc5MGUtMDEsICAgMi43NDgzNDQ0NTQyODg0MzllLTAxLAorICAtOS42MTQzODg0NzQ2MDM2MTdlLTAxLCAgIDIuNzUwMTg4MDQwNzM2MzMyZS0wMSwKKyAgLTkuNjEzODYwOTU1OTA3ODYyZS0wMSwgICAyLjc1MjAzMTUyNjA2NzY3M2UtMDEsCisgIC05LjYxMzMzMzA4MzczNzkyM2UtMDEsICAgMi43NTM4NzQ5MTAyMTQ2ODFlLTAxLAorICAtOS42MTI4MDQ4NTgxMTMyMDZlLTAxLCAgIDIuNzU1NzE4MTkzMTA5NTgxZS0wMSwKKyAgLTkuNjEyMjc2Mjc5MDUzMTM1ZS0wMSwgICAyLjc1NzU2MTM3NDY4NDYwMWUtMDEsCisgIC05LjYxMTc0NzM0NjU3NzE0MWUtMDEsICAgMi43NTk0MDQ0NTQ4NzE5NzJlLTAxLAorICAtOS42MTEyMTgwNjA3MDQ2NzRlLTAxLCAgIDIuNzYxMjQ3NDMzNjAzOTI4ZS0wMSwKKyAgLTkuNjEwNjg4NDIxNDU1MTk0ZS0wMSwgICAyLjc2MzA5MDMxMDgxMjcxMWUtMDEsCisgIC05LjYxMDE1ODQyODg0ODE3MmUtMDEsICAgMi43NjQ5MzMwODY0MzA1NjBlLTAxLAorICAtOS42MDk2MjgwODI5MDMwOThlLTAxLCAgIDIuNzY2Nzc1NzYwMzg5NzI0ZS0wMSwKKyAgLTkuNjA5MDk3MzgzNjM5NDY4ZS0wMSwgICAyLjc2ODYxODMzMjYyMjQ1M2UtMDEsCisgIC05LjYwODU2NjMzMTA3Njc5N2UtMDEsICAgMi43NzA0NjA4MDMwNjA5OTllLTAxLAorICAtOS42MDgwMzQ5MjUyMzQ2MDhlLTAxLCAgIDIuNzcyMzAzMTcxNjM3NjIyZS0wMSwKKyAgLTkuNjA3NTAzMTY2MTMyNDQwZS0wMSwgICAyLjc3NDE0NTQzODI4NDU4MWUtMDEsCisgIC05LjYwNjk3MTA1Mzc4OTg0NWUtMDEsICAgMi43NzU5ODc2MDI5MzQxNDNlLTAxLAorICAtOS42MDY0Mzg1ODgyMjYzODZlLTAxLCAgIDIuNzc3ODI5NjY1NTE4NTc3ZS0wMSwKKyAgLTkuNjA1OTA1NzY5NDYxNjQxZS0wMSwgICAyLjc3OTY3MTYyNTk3MDE1NGUtMDEsCisgIC05LjYwNTM3MjU5NzUxNTIwMGUtMDEsICAgMi43ODE1MTM0ODQyMjExNTFlLTAxLAorICAtOS42MDQ4MzkwNzI0MDY2NjhlLTAxLCAgIDIuNzgzMzU1MjQwMjAzODQ5ZS0wMSwKKyAgLTkuNjA0MzA1MTk0MTU1NjU4ZS0wMSwgICAyLjc4NTE5Njg5Mzg1MDUzMWUtMDEsCisgIC05LjYwMzc3MDk2Mjc4MTgwMWUtMDEsICAgMi43ODcwMzg0NDUwOTM0ODVlLTAxLAorICAtOS42MDMyMzYzNzgzMDQ3MzllLTAxLCAgIDIuNzg4ODc5ODkzODY1MDAzZS0wMSwKKyAgLTkuNjAyNzAxNDQwNzQ0MTI4ZS0wMSwgICAyLjc5MDcyMTI0MDA5NzM3OGUtMDEsCisgIC05LjYwMjE2NjE1MDExOTYzNGUtMDEsICAgMi43OTI1NjI0ODM3MjI5MTJlLTAxLAorICAtOS42MDE2MzA1MDY0NTA5NDBlLTAxLCAgIDIuNzk0NDAzNjI0NjczOTA1ZS0wMSwKKyAgLTkuNjAxMDk0NTA5NzU3NzM5ZS0wMSwgICAyLjc5NjI0NDY2Mjg4MjY2NmUtMDEsCisgIC05LjYwMDU1ODE2MDA1OTczOWUtMDEsICAgMi43OTgwODU1OTgyODE1MDRlLTAxLAorICAtOS42MDAwMjE0NTczNzY2NjBlLTAxLCAgIDIuNzk5OTI2NDMwODAyNzMyZS0wMSwKKyAgLTkuNTk5NDg0NDAxNzI4MjMyZS0wMSwgICAyLjgwMTc2NzE2MDM3ODY3MGUtMDEsCisgIC05LjU5ODk0Njk5MzEzNDIwNWUtMDEsICAgMi44MDM2MDc3ODY5NDE2MzhlLTAxLAorICAtOS41OTg0MDkyMzE2MTQzMzhlLTAxLCAgIDIuODA1NDQ4MzEwNDIzOTYyZS0wMSwKKyAgLTkuNTk3ODcxMTE3MTg4Mzk5ZS0wMSwgICAyLjgwNzI4ODczMDc1Nzk3MmUtMDEsCisgIC05LjU5NzMzMjY0OTg3NjE3N2UtMDEsICAgMi44MDkxMjkwNDc4NzYwMDBlLTAxLAorICAtOS41OTY3OTM4Mjk2OTc0NjhlLTAxLCAgIDIuODEwOTY5MjYxNzEwMzgzZS0wMSwKKyAgLTkuNTk2MjU0NjU2NjcyMDgyZS0wMSwgICAyLjgxMjgwOTM3MjE5MzQ2MWUtMDEsCisgIC05LjU5NTcxNTEzMDgxOTg0NWUtMDEsICAgMi44MTQ2NDkzNzkyNTc1NzllLTAxLAorICAtOS41OTUxNzUyNTIxNjA1OTNlLTAxLCAgIDIuODE2NDg5MjgyODM1MDg2ZS0wMSwKKyAgLTkuNTk0NjM1MDIwNzE0MTc1ZS0wMSwgICAyLjgxODMyOTA4Mjg1ODMzNGUtMDEsCisgIC05LjU5NDA5NDQzNjUwMDQ1NWUtMDEsICAgMi44MjAxNjg3NzkyNTk2NzZlLTAxLAorICAtOS41OTM1NTM0OTk1MzkzMDhlLTAxLCAgIDIuODIyMDA4MzcxOTcxNDc2ZS0wMSwKKyAgLTkuNTkzMDEyMjA5ODUwNjIyZS0wMSwgICAyLjgyMzg0Nzg2MDkyNjA5NGUtMDEsCisgIC05LjU5MjQ3MDU2NzQ1NDMwMWUtMDEsICAgMi44MjU2ODcyNDYwNTU4OTdlLTAxLAorICAtOS41OTE5Mjg1NzIzNzAyNTdlLTAxLCAgIDIuODI3NTI2NTI3MjkzMjU5ZS0wMSwKKyAgLTkuNTkxMzg2MjI0NjE4NDE5ZS0wMSwgICAyLjgyOTM2NTcwNDU3MDU1NGUtMDEsCisgIC05LjU5MDg0MzUyNDIxODcyN2UtMDEsICAgMi44MzEyMDQ3Nzc4MjAxNThlLTAxLAorICAtOS41OTAzMDA0NzExOTExMzdlLTAxLCAgIDIuODMzMDQzNzQ2OTc0NDU3ZS0wMSwKKyAgLTkuNTg5NzU3MDY1NTU1NjExZS0wMSwgICAyLjgzNDg4MjYxMTk2NTgzNWUtMDEsCisgIC05LjU4OTIxMzMwNzMzMjEzMmUtMDEsICAgMi44MzY3MjEzNzI3MjY2ODRlLTAxLAorICAtOS41ODg2NjkxOTY1NDA2OTBlLTAxLCAgIDIuODM4NTYwMDI5MTg5Mzk4ZS0wMSwKKyAgLTkuNTg4MTI0NzMzMjAxMjkzZS0wMSwgICAyLjg0MDM5ODU4MTI4NjM3MmUtMDEsCisgIC05LjU4NzU3OTkxNzMzMzk1N2UtMDEsICAgMi44NDIyMzcwMjg5NTAwMTBlLTAxLAorICAtOS41ODcwMzQ3NDg5NTg3MTZlLTAxLCAgIDIuODQ0MDc1MzcyMTEyNzE5ZS0wMSwKKyAgLTkuNTg2NDg5MjI4MDk1NjEyZS0wMSwgICAyLjg0NTkxMzYxMDcwNjkwNGUtMDEsCisgIC05LjU4NTk0MzM1NDc2NDcwMmUtMDEsICAgMi44NDc3NTE3NDQ2NjQ5ODNlLTAxLAorICAtOS41ODUzOTcxMjg5ODYwNTdlLTAxLCAgIDIuODQ5NTg5NzczOTE5MzcwZS0wMSwKKyAgLTkuNTg0ODUwNTUwNzc5NzYxZS0wMSwgICAyLjg1MTQyNzY5ODQwMjQ4N2UtMDEsCisgIC05LjU4NDMwMzYyMDE2NTkwOWUtMDEsICAgMi44NTMyNjU1MTgwNDY3NTllLTAxLAorICAtOS41ODM3NTYzMzcxNjQ2MTJlLTAxLCAgIDIuODU1MTAzMjMyNzg0NjEzZS0wMSwKKyAgLTkuNTgzMjA4NzAxNzk1OTg5ZS0wMSwgICAyLjg1Njk0MDg0MjU0ODQ4M2UtMDEsCisgIC05LjU4MjY2MDcxNDA4MDE3N2UtMDEsICAgMi44NTg3NzgzNDcyNzA4MDZlLTAxLAorICAtOS41ODIxMTIzNzQwMzczMjNlLTAxLCAgIDIuODYwNjE1NzQ2ODg0MDIwZS0wMSwKKyAgLTkuNTgxNTYzNjgxNjg3NTg4ZS0wMSwgICAyLjg2MjQ1MzA0MTMyMDU3MWUtMDEsCisgIC05LjU4MTAxNDYzNzA1MTE0N2UtMDEsICAgMi44NjQyOTAyMzA1MTI5MDdlLTAxLAorICAtOS41ODA0NjUyNDAxNDgxODZlLTAxLCAgIDIuODY2MTI3MzE0MzkzNDc4ZS0wMSwKKyAgLTkuNTc5OTE1NDkwOTk4OTA0ZS0wMSwgICAyLjg2Nzk2NDI5Mjg5NDc0MWUtMDEsCisgIC05LjU3OTM2NTM4OTYyMzUxNGUtMDEsICAgMi44Njk4MDExNjU5NDkxNTZlLTAxLAorICAtOS41Nzg4MTQ5MzYwNDIyNDRlLTAxLCAgIDIuODcxNjM3OTMzNDg5MTg0ZS0wMSwKKyAgLTkuNTc4MjY0MTMwMjc1MzI5ZS0wMSwgICAyLjg3MzQ3NDU5NTQ0NzI5NWUtMDEsCisgIC05LjU3NzcxMjk3MjM0MzAyM2UtMDEsICAgMi44NzUzMTExNTE3NTU5NTllLTAxLAorICAtOS41NzcxNjE0NjIyNjU1ODllLTAxLCAgIDIuODc3MTQ3NjAyMzQ3NjUyZS0wMSwKKyAgLTkuNTc2NjA5NjAwMDYzMzA2ZS0wMSwgICAyLjg3ODk4Mzk0NzE1NDg1MmUtMDEsCisgIC05LjU3NjA1NzM4NTc1NjQ2M2UtMDEsICAgMi44ODA4MjAxODYxMTAwNDFlLTAxLAorICAtOS41NzU1MDQ4MTkzNjUzNjVlLTAxLCAgIDIuODgyNjU2MzE5MTQ1NzA4ZS0wMSwKKyAgLTkuNTc0OTUxOTAwOTEwMzI2ZS0wMSwgICAyLjg4NDQ5MjM0NjE5NDM0MmUtMDEsCisgIC05LjU3NDM5ODYzMDQxMTY3N2UtMDEsICAgMi44ODYzMjgyNjcxODg0MzhlLTAxLAorICAtOS41NzM4NDUwMDc4ODk3NTllLTAxLCAgIDIuODg4MTY0MDgyMDYwNDk1ZS0wMSwKKyAgLTkuNTczMjkxMDMzMzY0OTI4ZS0wMSwgICAyLjg4OTk5OTc5MDc0MzAxNGUtMDEsCisgIC05LjU3MjczNjcwNjg1NzU1MmUtMDEsICAgMi44OTE4MzUzOTMxNjg1MDJlLTAxLAorICAtOS41NzIxODIwMjgzODgwMTJlLTAxLCAgIDIuODkzNjcwODg5MjY5NDcwZS0wMSwKKyAgLTkuNTcxNjI2OTk3OTc2NzAyZS0wMSwgICAyLjg5NTUwNjI3ODk3ODQzMGUtMDEsCisgIC05LjU3MTA3MTYxNTY0NDAyOGUtMDEsICAgMi44OTczNDE1NjIyMjc5MDNlLTAxLAorICAtOS41NzA1MTU4ODE0MTA0MTBlLTAxLCAgIDIuODk5MTc2NzM4OTUwNDA4ZS0wMSwKKyAgLTkuNTY5OTU5Nzk1Mjk2MjgyZS0wMSwgICAyLjkwMTAxMTgwOTA3ODQ3MWUtMDEsCisgIC05LjU2OTQwMzM1NzMyMjA4OGUtMDEsICAgMi45MDI4NDY3NzI1NDQ2MjNlLTAxLAorICAtOS41Njg4NDY1Njc1MDgyODllLTAxLCAgIDIuOTA0NjgxNjI5MjgxMzk4ZS0wMSwKKyAgLTkuNTY4Mjg5NDI1ODc1MzU0ZS0wMSwgICAyLjkwNjUxNjM3OTIyMTMzMmUtMDEsCisgIC05LjU2NzczMTkzMjQ0Mzc2OWUtMDEsICAgMi45MDgzNTEwMjIyOTY5NjhlLTAxLAorICAtOS41NjcxNzQwODcyMzQwMzBlLTAxLCAgIDIuOTEwMTg1NTU4NDQwODUxZS0wMSwKKyAgLTkuNTY2NjE1ODkwMjY2NjUxZS0wMSwgICAyLjkxMjAxOTk4NzU4NTUyOWUtMDEsCisgIC05LjU2NjA1NzM0MTU2MjE1MWUtMDEsICAgMi45MTM4NTQzMDk2NjM1NTdlLTAxLAorICAtOS41NjU0OTg0NDExNDEwNjhlLTAxLCAgIDIuOTE1Njg4NTI0NjA3NDkwZS0wMSwKKyAgLTkuNTY0OTM5MTg5MDIzOTUxZS0wMSwgICAyLjkxNzUyMjYzMjM0OTg5M2UtMDEsCisgIC05LjU2NDM3OTU4NTIzMTM2MmUtMDEsICAgMi45MTkzNTY2MzI4MjMzMjhlLTAxLAorICAtOS41NjM4MTk2Mjk3ODM4NzdlLTAxLCAgIDIuOTIxMTkwNTI1OTYwMzY0ZS0wMSwKKyAgLTkuNTYzMjU5MzIyNzAyMDgyZS0wMSwgICAyLjkyMzAyNDMxMTY5MzU3NmUtMDEsCisgIC05LjU2MjY5ODY2NDAwNjU4MGUtMDEsICAgMi45MjQ4NTc5ODk5NTU1MzllLTAxLAorICAtOS41NjIxMzc2NTM3MTc5ODVlLTAxLCAgIDIuOTI2NjkxNTYwNjc4ODM1ZS0wMSwKKyAgLTkuNTYxNTc2MjkxODU2OTIxZS0wMSwgICAyLjkyODUyNTAyMzc5NjA0OGUtMDEsCisgIC05LjU2MTAxNDU3ODQ0NDAzMGUtMDEsICAgMi45MzAzNTgzNzkyMzk3NjhlLTAxLAorICAtOS41NjA0NTI1MTM0OTk5NjRlLTAxLCAgIDIuOTMyMTkxNjI2OTQyNTg2ZS0wMSwKKyAgLTkuNTU5ODkwMDk3MDQ1Mzg5ZS0wMSwgICAyLjkzNDAyNDc2NjgzNzEwMWUtMDEsCisgIC05LjU1OTMyNzMyOTEwMDk4M2UtMDEsICAgMi45MzU4NTc3OTg4NTU5MTJlLTAxLAorICAtOS41NTg3NjQyMDk2ODc0MzZlLTAxLCAgIDIuOTM3NjkwNzIyOTMxNjI0ZS0wMSwKKyAgLTkuNTU4MjAwNzM4ODI1NDU0ZS0wMSwgICAyLjkzOTUyMzUzODk5Njg0N2UtMDEsCisgIC05LjU1NzYzNjkxNjUzNTc1NGUtMDEsICAgMi45NDEzNTYyNDY5ODQxOTBlLTAxLAorICAtOS41NTcwNzI3NDI4MzkwNjZlLTAxLCAgIDIuOTQzMTg4ODQ2ODI2Mjc0ZS0wMSwKKyAgLTkuNTU2NTA4MjE3NzU2MTMzZS0wMSwgICAyLjk0NTAyMTMzODQ1NTcxN2UtMDEsCisgIC05LjU1NTk0MzM0MTMwNzcxMWUtMDEsICAgMi45NDY4NTM3MjE4MDUxNDNlLTAxLAorICAtOS41NTUzNzgxMTM1MTQ1NjllLTAxLCAgIDIuOTQ4Njg1OTk2ODA3MTgzZS0wMSwKKyAgLTkuNTU0ODEyNTM0Mzk3NDg4ZS0wMSwgICAyLjk1MDUxODE2MzM5NDQ2N2UtMDEsCisgIC05LjU1NDI0NjYwMzk3NzI2M2UtMDEsICAgMi45NTIzNTAyMjE0OTk2MzJlLTAxLAorICAtOS41NTM2ODAzMjIyNzQ3MDRlLTAxLCAgIDIuOTU0MTgyMTcxMDU1MzIwZS0wMSwKKyAgLTkuNTUzMTEzNjg5MzEwNjI3ZS0wMSwgICAyLjk1NjAxNDAxMTk5NDE3NGUtMDEsCisgIC05LjU1MjU0NjcwNTEwNTg3MGUtMDEsICAgMi45NTc4NDU3NDQyNDg4NDNlLTAxLAorICAtOS41NTE5NzkzNjk2ODEyNzdlLTAxLCAgIDIuOTU5Njc3MzY3NzUxOTc5ZS0wMSwKKyAgLTkuNTUxNDExNjgzMDU3NzA4ZS0wMSwgICAyLjk2MTUwODg4MjQzNjIzOGUtMDEsCisgIC05LjU1MDg0MzY0NTI1NjAzNGUtMDEsICAgMi45NjMzNDAyODgyMzQyODJlLTAxLAorICAtOS41NTAyNzUyNTYyOTcxNDJlLTAxLCAgIDIuOTY1MTcxNTg1MDc4Nzc1ZS0wMSwKKyAgLTkuNTQ5NzA2NTE2MjAxOTI4ZS0wMSwgICAyLjk2NzAwMjc3MjkwMjM4M2UtMDEsCisgIC05LjU0OTEzNzQyNDk5MTMwNWUtMDEsICAgMi45Njg4MzM4NTE2Mzc3ODNlLTAxLAorICAtOS41NDg1Njc5ODI2ODYxOTZlLTAxLCAgIDIuOTcwNjY0ODIxMjE3NjQ3ZS0wMSwKKyAgLTkuNTQ3OTk4MTg5MzA3NTM3ZS0wMSwgICAyLjk3MjQ5NTY4MTU3NDY1OGUtMDEsCisgIC05LjU0NzQyODA0NDg3NjI3OWUtMDEsICAgMi45NzQzMjY0MzI2NDE1MDBlLTAxLAorICAtOS41NDY4NTc1NDk0MTMzODNlLTAxLCAgIDIuOTc2MTU3MDc0MzUwODYyZS0wMSwKKyAgLTkuNTQ2Mjg2NzAyOTM5ODI3ZS0wMSwgICAyLjk3Nzk4NzYwNjYzNTQzNWUtMDEsCisgIC05LjU0NTcxNTUwNTQ3NjU5NmUtMDEsICAgMi45Nzk4MTgwMjk0Mjc5MThlLTAxLAorICAtOS41NDUxNDM5NTcwNDQ2OTVlLTAxLCAgIDIuOTgxNjQ4MzQyNjYxMDA5ZS0wMSwKKyAgLTkuNTQ0NTcyMDU3NjY1MTM1ZS0wMSwgICAyLjk4MzQ3ODU0NjI2NzQxNGUtMDEsCisgIC05LjU0Mzk5OTgwNzM1ODk0NWUtMDEsICAgMi45ODUzMDg2NDAxNzk4NDFlLTAxLAorICAtOS41NDM0MjcyMDYxNDcxNjVlLTAxLCAgIDIuOTg3MTM4NjI0MzMxMDAzZS0wMSwKKyAgLTkuNTQyODU0MjU0MDUwODQ3ZS0wMSwgICAyLjk4ODk2ODQ5ODY1MzYxOGUtMDEsCisgIC05LjU0MjI4MDk1MTA5MTA1N2UtMDEsICAgMi45OTA3OTgyNjMwODA0MDVlLTAxLAorICAtOS41NDE3MDcyOTcyODg4NzNlLTAxLCAgIDIuOTkyNjI3OTE3NTQ0MDg4ZS0wMSwKKyAgLTkuNTQxMTMzMjkyNjY1Mzg4ZS0wMSwgICAyLjk5NDQ1NzQ2MTk3NzM5OWUtMDEsCisgIC05LjU0MDU1ODkzNzI0MTcwN2UtMDEsICAgMi45OTYyODY4OTYzMTMwNjhlLTAxLAorICAtOS41Mzk5ODQyMzEwMzg5NDVlLTAxLCAgIDIuOTk4MTE2MjIwNDgzODM0ZS0wMSwKKyAgLTkuNTM5NDA5MTc0MDc4MjM1ZS0wMSwgICAyLjk5OTk0NTQzNDQyMjQzNmUtMDEsCisgIC05LjUzODgzMzc2NjM4MDcxOGUtMDEsICAgMy4wMDE3NzQ1MzgwNjE2MjBlLTAxLAorICAtOS41MzgyNTgwMDc5Njc1NTBlLTAxLCAgIDMuMDAzNjAzNTMxMzM0MTM1ZS0wMSwKKyAgLTkuNTM3NjgxODk4ODU5OTAzZS0wMSwgICAzLjAwNTQzMjQxNDE3MjczNWUtMDEsCisgIC05LjUzNzEwNTQzOTA3ODk1N2UtMDEsICAgMy4wMDcyNjExODY1MTAxNzVlLTAxLAorICAtOS41MzY1Mjg2Mjg2NDU5MDVlLTAxLCAgIDMuMDA5MDg5ODQ4Mjc5MjE5ZS0wMSwKKyAgLTkuNTM1OTUxNDY3NTgxOTU3ZS0wMSwgICAzLjAxMDkxODM5OTQxMjYzMWUtMDEsCisgIC05LjUzNTM3Mzk1NTkwODMzM2UtMDEsICAgMy4wMTI3NDY4Mzk4NDMxNzllLTAxLAorICAtOS41MzQ3OTYwOTM2NDYyNjZlLTAxLCAgIDMuMDE0NTc1MTY5NTAzNjM5ZS0wMSwKKyAgLTkuNTM0MjE3ODgwODE3MDAzZS0wMSwgICAzLjAxNjQwMzM4ODMyNjc4OGUtMDEsCisgIC05LjUzMzYzOTMxNzQ0MTgwM2UtMDEsICAgMy4wMTgyMzE0OTYyNDU0MDdlLTAxLAorICAtOS41MzMwNjA0MDM1NDE5MzllLTAxLCAgIDMuMDIwMDU5NDkzMTkyMjgxZS0wMSwKKyAgLTkuNTMyNDgxMTM5MTM4NjkzZS0wMSwgICAzLjAyMTg4NzM3OTEwMDIwMGUtMDEsCisgIC05LjUzMTkwMTUyNDI1MzM2N2UtMDEsICAgMy4wMjM3MTUxNTM5MDE5NjBlLTAxLAorICAtOS41MzEzMjE1NTg5MDcyNjhlLTAxLCAgIDMuMDI1NTQyODE3NTMwMzU2ZS0wMSwKKyAgLTkuNTMwNzQxMjQzMTIxNzIyZS0wMSwgICAzLjAyNzM3MDM2OTkxODE5MWUtMDEsCisgIC05LjUzMDE2MDU3NjkxODA2NWUtMDEsICAgMy4wMjkxOTc4MTA5OTgyNzNlLTAxLAorICAtOS41Mjk1Nzk1NjAzMTc2NDdlLTAxLCAgIDMuMDMxMDI1MTQwNzAzNDExZS0wMSwKKyAgLTkuNTI4OTk4MTkzMzQxODI5ZS0wMSwgICAzLjAzMjg1MjM1ODk2NjQxN2UtMDEsCisgIC05LjUyODQxNjQ3NjAxMTk4N2UtMDEsICAgMy4wMzQ2Nzk0NjU3MjAxMTNlLTAxLAorICAtOS41Mjc4MzQ0MDgzNDk1MDllLTAxLCAgIDMuMDM2NTA2NDYwODk3MzE5ZS0wMSwKKyAgLTkuNTI3MjUxOTkwMzc1Nzk2ZS0wMSwgICAzLjAzODMzMzM0NDQzMDg2NGUtMDEsCisgIC05LjUyNjY2OTIyMjExMjI2MmUtMDEsICAgMy4wNDAxNjAxMTYyNTM1NzZlLTAxLAorICAtOS41MjYwODYxMDM1ODAzMzNlLTAxLCAgIDMuMDQxOTg2Nzc2Mjk4MjkxZS0wMSwKKyAgLTkuNTI1NTAyNjM0ODAxNDQ5ZS0wMSwgICAzLjA0MzgxMzMyNDQ5Nzg0OWUtMDEsCisgIC05LjUyNDkxODgxNTc5NzA2M2UtMDEsICAgMy4wNDU2Mzk3NjA3ODUwOTFlLTAxLAorICAtOS41MjQzMzQ2NDY1ODg2NDBlLTAxLCAgIDMuMDQ3NDY2MDg1MDkyODY1ZS0wMSwKKyAgLTkuNTIzNzUwMTI3MTk3NjU5ZS0wMSwgICAzLjA0OTI5MjI5NzM1NDAyNGUtMDEsCisgIC05LjUyMzE2NTI1NzY0NTYwOWUtMDEsICAgMy4wNTExMTgzOTc1MDE0MjFlLTAxLAorICAtOS41MjI1ODAwMzc5NTM5OTZlLTAxLCAgIDMuMDUyOTQ0Mzg1NDY3OTE3ZS0wMSwKKyAgLTkuNTIxOTk0NDY4MTQ0MzM2ZS0wMSwgICAzLjA1NDc3MDI2MTE4NjM3NGUtMDEsCisgIC05LjUyMTQwODU0ODIzODE1OGUtMDEsICAgMy4wNTY1OTYwMjQ1ODk2NjFlLTAxLAorICAtOS41MjA4MjIyNzgyNTcwMDZlLTAxLCAgIDMuMDU4NDIxNjc1NjEwNjUxZS0wMSwKKyAgLTkuNTIwMjM1NjU4MjIyNDM2ZS0wMSwgICAzLjA2MDI0NzIxNDE4MjIxOGUtMDEsCisgIC05LjUxOTY0ODY4ODE1NjAxNGUtMDEsICAgMy4wNjIwNzI2NDAyMzcyNDJlLTAxLAorICAtOS41MTkwNjEzNjgwNzkzMjNlLTAxLCAgIDMuMDYzODk3OTUzNzA4NjA5ZS0wMSwKKyAgLTkuNTE4NDczNjk4MDEzOTU2ZS0wMSwgICAzLjA2NTcyMzE1NDUyOTIwN2UtMDEsCisgIC05LjUxNzg4NTY3Nzk4MTUyMWUtMDEsICAgMy4wNjc1NDgyNDI2MzE5MjhlLTAxLAorICAtOS41MTcyOTczMDgwMDM2MzhlLTAxLCAgIDMuMDY5MzczMjE3OTQ5NjY5ZS0wMSwKKyAgLTkuNTE2NzA4NTg4MTAxOTM5ZS0wMSwgICAzLjA3MTE5ODA4MDQxNTMzMWUtMDEsCisgIC05LjUxNjExOTUxODI5ODA2OGUtMDEsICAgMy4wNzMwMjI4Mjk5NjE4MThlLTAxLAorICAtOS41MTU1MzAwOTg2MTM2ODZlLTAxLCAgIDMuMDc0ODQ3NDY2NTIyMDQxZS0wMSwKKyAgLTkuNTE0OTQwMzI5MDcwNDY0ZS0wMSwgICAzLjA3NjY3MTk5MDAyODkxMmUtMDEsCisgIC05LjUxNDM1MDIwOTY5MDA4M2UtMDEsICAgMy4wNzg0OTY0MDA0MTUzNDllLTAxLAorICAtOS41MTM3NTk3NDA0OTQyNDRlLTAxLCAgIDMuMDgwMzIwNjk3NjE0MjczZS0wMSwKKyAgLTkuNTEzMTY4OTIxNTA0NjU2ZS0wMSwgICAzLjA4MjE0NDg4MTU1ODYxMWUtMDEsCisgIC05LjUxMjU3Nzc1Mjc0MzA0MGUtMDEsICAgMy4wODM5Njg5NTIxODEyOTJlLTAxLAorICAtOS41MTE5ODYyMzQyMzExMzJlLTAxLCAgIDMuMDg1NzkyOTA5NDE1MjUxZS0wMSwKKyAgLTkuNTExMzk0MzY1OTkwNjgyZS0wMSwgICAzLjA4NzYxNjc1MzE5MzQyNWUtMDEsCisgIC05LjUxMDgwMjE0ODA0MzQ1MGUtMDEsICAgMy4wODk0NDA0ODM0NDg3NTdlLTAxLAorICAtOS41MTAyMDk1ODA0MTEyMTFlLTAxLCAgIDMuMDkxMjY0MTAwMTE0MTk0ZS0wMSwKKyAgLTkuNTA5NjE2NjYzMTE1NzUxZS0wMSwgICAzLjA5MzA4NzYwMzEyMjY4N2UtMDEsCisgIC05LjUwOTAyMzM5NjE3ODg3MWUtMDEsICAgMy4wOTQ5MTA5OTI0MDcxOTFlLTAxLAorICAtOS41MDg0Mjk3Nzk2MjIzODJlLTAxLCAgIDMuMDk2NzM0MjY3OTAwNjY0ZS0wMSwKKyAgLTkuNTA3ODM1ODEzNDY4MTExZS0wMSwgICAzLjA5ODU1NzQyOTUzNjA3MWUtMDEsCisgIC05LjUwNzI0MTQ5NzczNzg5NmUtMDEsICAgMy4xMDAzODA0NzcyNDYzNzllLTAxLAorICAtOS41MDY2NDY4MzI0NTM1ODllLTAxLCAgIDMuMTAyMjAzNDEwOTY0NTU5ZS0wMSwKKyAgLTkuNTA2MDUxODE3NjM3MDUzZS0wMSwgICAzLjEwNDAyNjIzMDYyMzU4N2UtMDEsCisgIC05LjUwNTQ1NjQ1MzMxMDE2NmUtMDEsICAgMy4xMDU4NDg5MzYxNTY0NDVlLTAxLAorICAtOS41MDQ4NjA3Mzk0OTQ4MTdlLTAxLCAgIDMuMTA3NjcxNTI3NDk2MTE1ZS0wMSwKKyAgLTkuNTA0MjY0Njc2MjEyOTA5ZS0wMSwgICAzLjEwOTQ5NDAwNDU3NTU4NmUtMDEsCisgIC05LjUwMzY2ODI2MzQ4NjM1OGUtMDEsICAgMy4xMTEzMTYzNjczMjc4NTNlLTAxLAorICAtOS41MDMwNzE1MDEzMzcwOTNlLTAxLCAgIDMuMTEzMTM4NjE1Njg1OTA5ZS0wMSwKKyAgLTkuNTAyNDc0Mzg5Nzg3MDUyZS0wMSwgICAzLjExNDk2MDc0OTU4Mjc1OWUtMDEsCisgIC05LjUwMTg3NjkyODg1ODE5M2UtMDEsICAgMy4xMTY3ODI3Njg5NTE0MDVlLTAxLAorICAtOS41MDEyNzkxMTg1NzI0ODFlLTAxLCAgIDMuMTE4NjA0NjczNzI0ODYwZS0wMSwKKyAgLTkuNTAwNjgwOTU4OTUxODk2ZS0wMSwgICAzLjEyMDQyNjQ2MzgzNjEzNWUtMDEsCisgIC05LjUwMDA4MjQ1MDAxODQzMGUtMDEsICAgMy4xMjIyNDgxMzkyMTgyNDllLTAxLAorICAtOS40OTk0ODM1OTE3OTQwOTBlLTAxLCAgIDMuMTI0MDY5Njk5ODA0MjI0ZS0wMSwKKyAgLTkuNDk4ODg0Mzg0MzAwODkzZS0wMSwgICAzLjEyNTg5MTE0NTUyNzA4N2UtMDEsCisgIC05LjQ5ODI4NDgyNzU2MDg3MWUtMDEsICAgMy4xMjc3MTI0NzYzMTk4NjhlLTAxLAorICAtOS40OTc2ODQ5MjE1OTYwNjdlLTAxLCAgIDMuMTI5NTMzNjkyMTE1NjAyZS0wMSwKKyAgLTkuNDk3MDg0NjY2NDI4NTM4ZS0wMSwgICAzLjEzMTM1NDc5Mjg0NzMyOGUtMDEsCisgIC05LjQ5NjQ4NDA2MjA4MDM1NWUtMDEsICAgMy4xMzMxNzU3Nzg0NDgwOTBlLTAxLAorICAtOS40OTU4ODMxMDg1NzM2MDBlLTAxLCAgIDMuMTM0OTk2NjQ4ODUwOTM1ZS0wMSwKKyAgLTkuNDk1MjgxODA1OTMwMzY3ZS0wMSwgICAzLjEzNjgxNzQwMzk4ODkxNWUtMDEsCisgIC05LjQ5NDY4MDE1NDE3Mjc2NWUtMDEsICAgMy4xMzg2MzgwNDM3OTUwODVlLTAxLAorICAtOS40OTQwNzgxNTMzMjI5MTZlLTAxLCAgIDMuMTQwNDU4NTY4MjAyNTA3ZS0wMSwKKyAgLTkuNDkzNDc1ODAzNDAyOTUyZS0wMSwgICAzLjE0MjI3ODk3NzE0NDI0NGUtMDEsCisgIC05LjQ5Mjg3MzEwNDQzNTAyMWUtMDEsICAgMy4xNDQwOTkyNzA1NTMzNjdlLTAxLAorICAtOS40OTIyNzAwNTY0NDEyODJlLTAxLCAgIDMuMTQ1OTE5NDQ4MzYyOTQ3ZS0wMSwKKyAgLTkuNDkxNjY2NjU5NDQzOTA3ZS0wMSwgICAzLjE0NzczOTUxMDUwNjA2MWUtMDEsCisgIC05LjQ5MTA2MjkxMzQ2NTA4M2UtMDEsICAgMy4xNDk1NTk0NTY5MTU3OTFlLTAxLAorICAtOS40OTA0NTg4MTg1MjcwMDZlLTAxLCAgIDMuMTUxMzc5Mjg3NTI1MjI0ZS0wMSwKKyAgLTkuNDg5ODU0Mzc0NjUxODg3ZS0wMSwgICAzLjE1MzE5OTAwMjI2NzQ0OWUtMDEsCisgIC05LjQ4OTI0OTU4MTg2MTk1MmUtMDEsICAgMy4xNTUwMTg2MDEwNzU1NjBlLTAxLAorICAtOS40ODg2NDQ0NDAxNzk0MzNlLTAxLCAgIDMuMTU2ODM4MDgzODgyNjU3ZS0wMSwKKyAgLTkuNDg4MDM4OTQ5NjI2NTg1ZS0wMSwgICAzLjE1ODY1NzQ1MDYyMTg0MGUtMDEsCisgIC05LjQ4NzQzMzExMDIyNTY2NWUtMDEsICAgMy4xNjA0NzY3MDEyMjYyMTllLTAxLAorICAtOS40ODY4MjY5MjE5OTg5NTFlLTAxLCAgIDMuMTYyMjk1ODM1NjI4OTAzZS0wMSwKKyAgLTkuNDg2MjIwMzg0OTY4NzMwZS0wMSwgICAzLjE2NDExNDg1Mzc2MzAxMGUtMDEsCisgIC05LjQ4NTYxMzQ5OTE1NzMwM2UtMDEsICAgMy4xNjU5MzM3NTU1NjE2NThlLTAxLAorICAtOS40ODUwMDYyNjQ1ODY5ODNlLTAxLCAgIDMuMTY3NzUyNTQwOTU3OTczZS0wMSwKKyAgLTkuNDg0Mzk4NjgxMjgwMDk2ZS0wMSwgICAzLjE2OTU3MTIwOTg4NTA4MWUtMDEsCisgIC05LjQ4Mzc5MDc0OTI1ODk4MWUtMDEsICAgMy4xNzEzODk3NjIyNzYxMThlLTAxLAorICAtOS40ODMxODI0Njg1NDU5OTFlLTAxLCAgIDMuMTczMjA4MTk4MDY0MjE3ZS0wMSwKKyAgLTkuNDgyNTczODM5MTYzNDkxZS0wMSwgICAzLjE3NTAyNjUxNzE4MjUyM2UtMDEsCisgIC05LjQ4MTk2NDg2MTEzMzg1NmUtMDEsICAgMy4xNzY4NDQ3MTk1NjQxODBlLTAxLAorICAtOS40ODEzNTU1MzQ0Nzk0ODBlLTAxLCAgIDMuMTc4NjYyODA1MTQyMzM3ZS0wMSwKKyAgLTkuNDgwNzQ1ODU5MjIyNzYyZS0wMSwgICAzLjE4MDQ4MDc3Mzg1MDE0OWUtMDEsCisgIC05LjQ4MDEzNTgzNTM4NjEyMmUtMDEsICAgMy4xODIyOTg2MjU2MjA3NzVlLTAxLAorICAtOS40Nzk1MjU0NjI5OTE5ODdlLTAxLCAgIDMuMTg0MTE2MzYwMzg3Mzc4ZS0wMSwKKyAgLTkuNDc4OTE0NzQyMDYyNzk4ZS0wMSwgICAzLjE4NTkzMzk3ODA4MzEyNGUtMDEsCisgIC05LjQ3ODMwMzY3MjYyMTAxMGUtMDEsICAgMy4xODc3NTE0Nzg2NDExODVlLTAxLAorICAtOS40Nzc2OTIyNTQ2ODkwOTJlLTAxLCAgIDMuMTg5NTY4ODYxOTk0NzM3ZS0wMSwKKyAgLTkuNDc3MDgwNDg4Mjg5NTIxZS0wMSwgICAzLjE5MTM4NjEyODA3Njk1OWUtMDEsCisgIC05LjQ3NjQ2ODM3MzQ0NDc5M2UtMDEsICAgMy4xOTMyMDMyNzY4MjEwMzZlLTAxLAorICAtOS40NzU4NTU5MTAxNzc0MTFlLTAxLCAgIDMuMTk1MDIwMzA4MTYwMTU3ZS0wMSwKKyAgLTkuNDc1MjQzMDk4NTA5ODk2ZS0wMSwgICAzLjE5NjgzNzIyMjAyNzUxNGUtMDEsCisgIC05LjQ3NDYyOTkzODQ2NDc3N2UtMDEsICAgMy4xOTg2NTQwMTgzNTYzMDVlLTAxLAorICAtOS40NzQwMTY0MzAwNjQ1OTllLTAxLCAgIDMuMjAwNDcwNjk3MDc5NzMxZS0wMSwKKyAgLTkuNDczNDAyNTczMzMxOTIwZS0wMSwgICAzLjIwMjI4NzI1ODEzMDk5OWUtMDEsCisgIC05LjQ3Mjc4ODM2ODI4OTMwOWUtMDEsICAgMy4yMDQxMDM3MDE0NDMzMThlLTAxLAorICAtOS40NzIxNzM4MTQ5NTkzNDhlLTAxLCAgIDMuMjA1OTIwMDI2OTQ5OTAzZS0wMSwKKyAgLTkuNDcxNTU4OTEzMzY0NjMzZS0wMSwgICAzLjIwNzczNjIzNDU4Mzk3M2UtMDEsCisgIC05LjQ3MDk0MzY2MzUyNzc3MmUtMDEsICAgMy4yMDk1NTIzMjQyNzg3NTJlLTAxLAorICAtOS40NzAzMjgwNjU0NzEzODZlLTAxLCAgIDMuMjExMzY4Mjk1OTY3NDY3ZS0wMSwKKyAgLTkuNDY5NzEyMTE5MjE4MTA5ZS0wMSwgICAzLjIxMzE4NDE0OTU4MzM0OWUtMDEsCisgIC05LjQ2OTA5NTgyNDc5MDU4OGUtMDEsICAgMy4yMTQ5OTk4ODUwNTk2MzVlLTAxLAorICAtOS40Njg0NzkxODIyMTE0ODBlLTAxLCAgIDMuMjE2ODE1NTAyMzI5NTY2ZS0wMSwKKyAgLTkuNDY3ODYyMTkxNTAzNDYwZS0wMSwgICAzLjIxODYzMTAwMTMyNjM4NmUtMDEsCisgIC05LjQ2NzI0NDg1MjY4OTIxMmUtMDEsICAgMy4yMjA0NDYzODE5ODMzNDVlLTAxLAorICAtOS40NjY2MjcxNjU3OTE0MzRlLTAxLCAgIDMuMjIyMjYxNjQ0MjMzNjk2ZS0wMSwKKyAgLTkuNDY2MDA5MTMwODMyODM1ZS0wMSwgICAzLjIyNDA3Njc4ODAxMDY5OWUtMDEsCisgIC05LjQ2NTM5MDc0NzgzNjE0MWUtMDEsICAgMy4yMjU4OTE4MTMyNDc2MTNlLTAxLAorICAtOS40NjQ3NzIwMTY4MjQwODdlLTAxLCAgIDMuMjI3NzA2NzE5ODc3NzA3ZS0wMSwKKyAgLTkuNDY0MTUyOTM3ODE5NDIxZS0wMSwgICAzLjIyOTUyMTUwNzgzNDI1M2UtMDEsCisgIC05LjQ2MzUzMzUxMDg0NDkwNmUtMDEsICAgMy4yMzEzMzYxNzcwNTA1MjNlLTAxLAorICAtOS40NjI5MTM3MzU5MjMzMTZlLTAxLCAgIDMuMjMzMTUwNzI3NDU5ODAwZS0wMSwKKyAgLTkuNDYyMjkzNjEzMDc3NDM4ZS0wMSwgICAzLjIzNDk2NTE1ODk5NTM2N2UtMDEsCisgIC05LjQ2MTY3MzE0MjMzMDA3NGUtMDEsICAgMy4yMzY3Nzk0NzE1OTA1MTJlLTAxLAorICAtOS40NjEwNTIzMjM3MDQwMzRlLTAxLCAgIDMuMjM4NTkzNjY1MTc4NTI5ZS0wMSwKKyAgLTkuNDYwNDMxMTU3MjIyMTQ2ZS0wMSwgICAzLjI0MDQwNzczOTY5MjcxNGUtMDEsCisgIC05LjQ1OTgwOTY0MjkwNzI0OGUtMDEsICAgMy4yNDIyMjE2OTUwNjYzNzBlLTAxLAorICAtOS40NTkxODc3ODA3ODIxOTFlLTAxLCAgIDMuMjQ0MDM1NTMxMjMyODAyZS0wMSwKKyAgLTkuNDU4NTY1NTcwODY5ODM5ZS0wMSwgICAzLjI0NTg0OTI0ODEyNTMyMWUtMDEsCisgIC05LjQ1Nzk0MzAxMzE5MzA3MGUtMDEsICAgMy4yNDc2NjI4NDU2NzcyNDJlLTAxLAorICAtOS40NTczMjAxMDc3NzQ3NzJlLTAxLCAgIDMuMjQ5NDc2MzIzODIxODg0ZS0wMSwKKyAgLTkuNDU2Njk2ODU0NjM3ODQ3ZS0wMSwgICAzLjI1MTI4OTY4MjQ5MjU3MWUtMDEsCisgIC05LjQ1NjA3MzI1MzgwNTIxM2UtMDEsICAgMy4yNTMxMDI5MjE2MjI2MjllLTAxLAorICAtOS40NTU0NDkzMDUyOTk3OTdlLTAxLCAgIDMuMjU0OTE2MDQxMTQ1MzkzZS0wMSwKKyAgLTkuNDU0ODI1MDA5MTQ0NTM3ZS0wMSwgICAzLjI1NjcyOTA0MDk5NDE5OGUtMDEsCisgIC05LjQ1NDIwMDM2NTM2MjM5MWUtMDEsICAgMy4yNTg1NDE5MjExMDIzODZlLTAxLAorICAtOS40NTM1NzUzNzM5NzYzMjNlLTAxLCAgIDMuMjYwMzU0NjgxNDAzMzAyZS0wMSwKKyAgLTkuNDUyOTUwMDM1MDA5MzEyZS0wMSwgICAzLjI2MjE2NzMyMTgzMDI5N2UtMDEsCisgIC05LjQ1MjMyNDM0ODQ4NDM1MGUtMDEsICAgMy4yNjM5Nzk4NDIzMTY3MjVlLTAxLAorICAtOS40NTE2OTgzMTQ0MjQ0NDJlLTAxLCAgIDMuMjY1NzkyMjQyNzk1OTQ0ZS0wMSwKKyAgLTkuNDUxMDcxOTMyODUyNjA2ZS0wMSwgICAzLjI2NzYwNDUyMzIwMTMxN2UtMDEsCisgIC05LjQ1MDQ0NTIwMzc5MTg3MWUtMDEsICAgMy4yNjk0MTY2ODM0NjYyMTRlLTAxLAorICAtOS40NDk4MTgxMjcyNjUyODFlLTAxLCAgIDMuMjcxMjI4NzIzNTI0MDA1ZS0wMSwKKyAgLTkuNDQ5MTkwNzAzMjk1ODkyZS0wMSwgICAzLjI3MzA0MDY0MzMwODA2N2UtMDEsCisgIC05LjQ0ODU2MjkzMTkwNjc3MmUtMDEsICAgMy4yNzQ4NTI0NDI3NTE3ODBlLTAxLAorICAtOS40NDc5MzQ4MTMxMjEwMDNlLTAxLCAgIDMuMjc2NjY0MTIxNzg4NTMxZS0wMSwKKyAgLTkuNDQ3MzA2MzQ2OTYxNjc4ZS0wMSwgICAzLjI3ODQ3NTY4MDM1MTcwOGUtMDEsCisgIC05LjQ0NjY3NzUzMzQ1MTkwNWUtMDEsICAgMy4yODAyODcxMTgzNzQ3MDdlLTAxLAorICAtOS40NDYwNDgzNzI2MTQ4MDNlLTAxLCAgIDMuMjgyMDk4NDM1NzkwOTI1ZS0wMSwKKyAgLTkuNDQ1NDE4ODY0NDczNTA1ZS0wMSwgICAzLjI4MzkwOTYzMjUzMzc2NmUtMDEsCisgIC05LjQ0NDc4OTAwOTA1MTE1NWUtMDEsICAgMy4yODU3MjA3MDg1MzY2MzdlLTAxLAorICAtOS40NDQxNTg4MDYzNzA5MTNlLTAxLCAgIDMuMjg3NTMxNjYzNzMyOTUwZS0wMSwKKyAgLTkuNDQzNTI4MjU2NDU1OTQ4ZS0wMSwgICAzLjI4OTM0MjQ5ODA1NjEyMmUtMDEsCisgIC05LjQ0Mjg5NzM1OTMyOTQ0NGUtMDEsICAgMy4yOTExNTMyMTE0Mzk1NzNlLTAxLAorICAtOS40NDIyNjYxMTUwMTQ1OThlLTAxLCAgIDMuMjkyOTYzODAzODE2NzI3ZS0wMSwKKyAgLTkuNDQxNjM0NTIzNTM0NjE4ZS0wMSwgICAzLjI5NDc3NDI3NTEyMTAxN2UtMDEsCisgIC05LjQ0MTAwMjU4NDkxMjcyN2UtMDEsICAgMy4yOTY1ODQ2MjUyODU4NzVlLTAxLAorICAtOS40NDAzNzAyOTkxNzIxNThlLTAxLCAgIDMuMjk4Mzk0ODU0MjQ0NzM5ZS0wMSwKKyAgLTkuNDM5NzM3NjY2MzM2MTYwZS0wMSwgICAzLjMwMDIwNDk2MTkzMTA1NGUtMDEsCisgIC05LjQzOTEwNDY4NjQyNzk5MWUtMDEsICAgMy4zMDIwMTQ5NDgyNzgyNjZlLTAxLAorICAtOS40Mzg0NzEzNTk0NzA5MjdlLTAxLCAgIDMuMzAzODI0ODEzMjE5ODI4ZS0wMSwKKyAgLTkuNDM3ODM3Njg1NDg4MjUxZS0wMSwgICAzLjMwNTYzNDU1NjY4OTE5NWUtMDEsCisgIC05LjQzNzIwMzY2NDUwMzI2MmUtMDEsICAgMy4zMDc0NDQxNzg2MTk4MjllLTAxLAorICAtOS40MzY1NjkyOTY1MzkyNzJlLTAxLCAgIDMuMzA5MjUzNjc4OTQ1MTk1ZS0wMSwKKyAgLTkuNDM1OTM0NTgxNjE5NjA0ZS0wMSwgICAzLjMxMTA2MzA1NzU5ODc2NGUtMDEsCisgIC05LjQzNTI5OTUxOTc2NzU5NWUtMDEsICAgMy4zMTI4NzIzMTQ1MTQwMDhlLTAxLAorICAtOS40MzQ2NjQxMTEwMDY1OTNlLTAxLCAgIDMuMzE0NjgxNDQ5NjI0NDA5ZS0wMSwKKyAgLTkuNDM0MDI4MzU1MzU5OTYyZS0wMSwgICAzLjMxNjQ5MDQ2Mjg2MzQ0N2UtMDEsCisgIC05LjQzMzM5MjI1Mjg1MTA3N2UtMDEsICAgMy4zMTgyOTkzNTQxNjQ2MTFlLTAxLAorICAtOS40MzI3NTU4MDM1MDMzMjVlLTAxLCAgIDMuMzIwMTA4MTIzNDYxMzk0ZS0wMSwKKyAgLTkuNDMyMTE5MDA3MzQwMTA2ZS0wMSwgICAzLjMyMTkxNjc3MDY4NzI5MmUtMDEsCisgIC05LjQzMTQ4MTg2NDM4NDgzNGUtMDEsICAgMy4zMjM3MjUyOTU3NzU4MDZlLTAxLAorICAtOS40MzA4NDQzNzQ2NjA5MzVlLTAxLCAgIDMuMzI1NTMzNjk4NjYwNDQyZS0wMSwKKyAgLTkuNDMwMjA2NTM4MTkxODQ3ZS0wMSwgICAzLjMyNzM0MTk3OTI3NDcxMWUtMDEsCisgIC05LjQyOTU2ODM1NTAwMTAyMWUtMDEsICAgMy4zMjkxNTAxMzc1NTIxMjdlLTAxLAorICAtOS40Mjg5Mjk4MjUxMTE5MjJlLTAxLCAgIDMuMzMwOTU4MTczNDI2MjA4ZS0wMSwKKyAgLTkuNDI4MjkwOTQ4NTQ4MDI3ZS0wMSwgICAzLjMzMjc2NjA4NjgzMDQ3OWUtMDEsCisgIC05LjQyNzY1MTcyNTMzMjgyNWUtMDEsICAgMy4zMzQ1NzM4Nzc2OTg0NjhlLTAxLAorICAtOS40MjcwMTIxNTU0ODk4MTllLTAxLCAgIDMuMzM2MzgxNTQ1OTYzNzA5ZS0wMSwKKyAgLTkuNDI2MzcyMjM5MDQyNTI1ZS0wMSwgICAzLjMzODE4OTA5MTU1OTczNmUtMDEsCisgIC05LjQyNTczMTk3NjAxNDQ2OWUtMDEsICAgMy4zMzk5OTY1MTQ0MjAwOTRlLTAxLAorICAtOS40MjUwOTEzNjY0MjkxOTJlLTAxLCAgIDMuMzQxODAzODE0NDc4MzI3ZS0wMSwKKyAgLTkuNDI0NDUwNDEwMzEwMjQ5ZS0wMSwgICAzLjM0MzYxMDk5MTY2Nzk4N2UtMDEsCisgIC05LjQyMzgwOTEwNzY4MTIwNWUtMDEsICAgMy4zNDU0MTgwNDU5MjI2MjllLTAxLAorICAtOS40MjMxNjc0NTg1NjU2MzhlLTAxLCAgIDMuMzQ3MjI0OTc3MTc1ODEyZS0wMSwKKyAgLTkuNDIyNTI1NDYyOTg3MTQwZS0wMSwgICAzLjM0OTAzMTc4NTM2MTEwMmUtMDEsCisgIC05LjQyMTg4MzEyMDk2OTMxOGUtMDEsICAgMy4zNTA4Mzg0NzA0MTIwNjZlLTAxLAorICAtOS40MjEyNDA0MzI1MzU3ODZlLTAxLCAgIDMuMzUyNjQ1MDMyMjYyMjc4ZS0wMSwKKyAgLTkuNDIwNTk3Mzk3NzEwMTczZS0wMSwgICAzLjM1NDQ1MTQ3MDg0NTMxNmUtMDEsCisgIC05LjQxOTk1NDAxNjUxNjEyNmUtMDEsICAgMy4zNTYyNTc3ODYwOTQ3NjNlLTAxLAorICAtOS40MTkzMTAyODg5NzcyOTZlLTAxLCAgIDMuMzU4MDYzOTc3OTQ0MjA1ZS0wMSwKKyAgLTkuNDE4NjY2MjE1MTE3MzUzZS0wMSwgICAzLjM1OTg3MDA0NjMyNzIzNGUtMDEsCisgIC05LjQxODAyMTc5NDk1OTk3NmUtMDEsICAgMy4zNjE2NzU5OTExNzc0NDVlLTAxLAorICAtOS40MTczNzcwMjg1Mjg4NjJlLTAxLCAgIDMuMzYzNDgxODEyNDI4NDQwZS0wMSwKKyAgLTkuNDE2NzMxOTE1ODQ3NzE0ZS0wMSwgICAzLjM2NTI4NzUxMDAxMzgyNGUtMDEsCisgIC05LjQxNjA4NjQ1Njk0MDI1MmUtMDEsICAgMy4zNjcwOTMwODM4NjcyMDZlLTAxLAorICAtOS40MTU0NDA2NTE4MzAyMDhlLTAxLCAgIDMuMzY4ODk4NTMzOTIyMjAxZS0wMSwKKyAgLTkuNDE0Nzk0NTAwNTQxMzI2ZS0wMSwgICAzLjM3MDcwMzg2MDExMjQyNmUtMDEsCisgIC05LjQxNDE0ODAwMzA5NzM2M2UtMDEsICAgMy4zNzI1MDkwNjIzNzE1MDZlLTAxLAorICAtOS40MTM1MDExNTk1MjIwOTBlLTAxLCAgIDMuMzc0MzE0MTQwNjMzMDY4ZS0wMSwKKyAgLTkuNDEyODUzOTY5ODM5Mjg3ZS0wMSwgICAzLjM3NjExOTA5NDgzMDc0NmUtMDEsCisgIC05LjQxMjIwNjQzNDA3Mjc1MmUtMDEsICAgMy4zNzc5MjM5MjQ4OTgxNzVlLTAxLAorICAtOS40MTE1NTg1NTIyNDYyOTJlLTAxLCAgIDMuMzc5NzI4NjMwNzY4OTk3ZS0wMSwKKyAgLTkuNDEwOTEwMzI0MzgzNzI4ZS0wMSwgICAzLjM4MTUzMzIxMjM3Njg1OWUtMDEsCisgIC05LjQxMDI2MTc1MDUwODg5M2UtMDEsICAgMy4zODMzMzc2Njk2NTU0MTFlLTAxLAorICAtOS40MDk2MTI4MzA2NDU2MzNlLTAxLCAgIDMuMzg1MTQyMDAyNTM4MzA5ZS0wMSwKKyAgLTkuNDA4OTYzNTY0ODE3ODA4ZS0wMSwgICAzLjM4Njk0NjIxMDk1OTIxMmUtMDEsCisgIC05LjQwODMxMzk1MzA0OTI4OWUtMDEsICAgMy4zODg3NTAyOTQ4NTE3ODRlLTAxLAorICAtOS40MDc2NjM5OTUzNjM5NjFlLTAxLCAgIDMuMzkwNTU0MjU0MTQ5Njk2ZS0wMSwKKyAgLTkuNDA3MDEzNjkxNzg1NzE5ZS0wMSwgICAzLjM5MjM1ODA4ODc4NjYxOWUtMDEsCisgIC05LjQwNjM2MzA0MjMzODQ3NmUtMDEsICAgMy4zOTQxNjE3OTg2OTYyMzRlLTAxLAorICAtOS40MDU3MTIwNDcwNDYxNTJlLTAxLCAgIDMuMzk1OTY1MzgzODEyMjIxZS0wMSwKKyAgLTkuNDA1MDYwNzA1OTMyNjgzZS0wMSwgICAzLjM5Nzc2ODg0NDA2ODI2OWUtMDEsCisgIC05LjQwNDQwOTAxOTAyMjAxOGUtMDEsICAgMy4zOTk1NzIxNzkzOTgwNjllLTAxLAorICAtOS40MDM3NTY5ODYzMzgxMTVlLTAxLCAgIDMuNDAxMzc1Mzg5NzM1MzE3ZS0wMSwKKyAgLTkuNDAzMTA0NjA3OTA0OTUxZS0wMSwgICAzLjQwMzE3ODQ3NTAxMzcxN2UtMDEsCisgIC05LjQwMjQ1MTg4Mzc0NjUwOWUtMDEsICAgMy40MDQ5ODE0MzUxNjY5NzJlLTAxLAorICAtOS40MDE3OTg4MTM4ODY3ODllLTAxLCAgIDMuNDA2Nzg0MjcwMTI4NzkyZS0wMSwKKyAgLTkuNDAxMTQ1Mzk4MzQ5ODAzZS0wMSwgICAzLjQwODU4Njk3OTgzMjg5NGUtMDEsCisgIC05LjQwMDQ5MTYzNzE1OTU3NGUtMDEsICAgMy40MTAzODk1NjQyMTI5OTdlLTAxLAorICAtOS4zOTk4Mzc1MzAzNDAxNDBlLTAxLCAgIDMuNDEyMTkyMDIzMjAyODI0ZS0wMSwKKyAgLTkuMzk5MTgzMDc3OTE1NTUwZS0wMSwgICAzLjQxMzk5NDM1NjczNjEwNGUtMDEsCisgIC05LjM5ODUyODI3OTkwOTg2N2UtMDEsICAgMy40MTU3OTY1NjQ3NDY1NzJlLTAxLAorICAtOS4zOTc4NzMxMzYzNDcxNjZlLTAxLCAgIDMuNDE3NTk4NjQ3MTY3OTYzZS0wMSwKKyAgLTkuMzk3MjE3NjQ3MjUxNTMzZS0wMSwgICAzLjQxOTQwMDYwMzkzNDAyMmUtMDEsCisgIC05LjM5NjU2MTgxMjY0NzA3MmUtMDEsICAgMy40MjEyMDI0MzQ5Nzg0OTVlLTAxLAorICAtOS4zOTU5MDU2MzI1NTc4OTNlLTAxLCAgIDMuNDIzMDA0MTQwMjM1MTM1ZS0wMSwKKyAgLTkuMzk1MjQ5MTA3MDA4MTIyZS0wMSwgICAzLjQyNDgwNTcxOTYzNzY5OGUtMDEsCisgIC05LjM5NDU5MjIzNjAyMTg5OWUtMDEsICAgMy40MjY2MDcxNzMxMTk5NDRlLTAxLAorICAtOS4zOTM5MzUwMTk2MjMzNzVlLTAxLCAgIDMuNDI4NDA4NTAwNjE1NjQwZS0wMSwKKyAgLTkuMzkzMjc3NDU3ODM2NzE0ZS0wMSwgICAzLjQzMDIwOTcwMjA1ODU1NWUtMDEsCisgIC05LjM5MjYxOTU1MDY4NjA5MmUtMDEsICAgMy40MzIwMTA3NzczODI0NjVlLTAxLAorICAtOS4zOTE5NjEyOTgxOTU2OTllLTAxLCAgIDMuNDMzODExNzI2NTIxMTUwZS0wMSwKKyAgLTkuMzkxMzAyNzAwMzg5NzM2ZS0wMSwgICAzLjQzNTYxMjU0OTQwODM5NGUtMDEsCisgIC05LjM5MDY0Mzc1NzI5MjQyMGUtMDEsICAgMy40Mzc0MTMyNDU5Nzc5ODVlLTAxLAorICAtOS4zODk5ODQ0Njg5Mjc5NzVlLTAxLCAgIDMuNDM5MjEzODE2MTYzNzE3ZS0wMSwKKyAgLTkuMzg5MzI0ODM1MzIwNjQ2ZS0wMSwgICAzLjQ0MTAxNDI1OTg5OTM4OGUtMDEsCisgIC05LjM4ODY2NDg1NjQ5NDY4MWUtMDEsICAgMy40NDI4MTQ1NzcxMTg4MDJlLTAxLAorICAtOS4zODgwMDQ1MzI0NzQzNDhlLTAxLCAgIDMuNDQ0NjE0NzY3NzU1NzY1ZS0wMSwKKyAgLTkuMzg3MzQzODYzMjgzOTI1ZS0wMSwgICAzLjQ0NjQxNDgzMTc0NDA5MGUtMDEsCisgIC05LjM4NjY4Mjg0ODk0NzcwMmUtMDEsICAgMy40NDgyMTQ3NjkwMTc1OTNlLTAxLAorICAtOS4zODYwMjE0ODk0ODk5ODRlLTAxLCAgIDMuNDUwMDE0NTc5NTEwMDk3ZS0wMSwKKyAgLTkuMzg1MzU5Nzg0OTM1MDg2ZS0wMSwgICAzLjQ1MTgxNDI2MzE1NTQyNWUtMDEsCisgIC05LjM4NDY5NzczNTMwNzMzOGUtMDEsICAgMy40NTM2MTM4MTk4ODc0MTJlLTAxLAorICAtOS4zODQwMzUzNDA2MzEwODFlLTAxLCAgIDMuNDU1NDEzMjQ5NjM5ODkxZS0wMSwKKyAgLTkuMzgzMzcyNjAwOTMwNjcwZS0wMSwgICAzLjQ1NzIxMjU1MjM0NjcwMWUtMDEsCisgIC05LjM4MjcwOTUxNjIzMDQ3MmUtMDEsICAgMy40NTkwMTE3Mjc5NDE2OTBlLTAxLAorICAtOS4zODIwNDYwODY1NTQ4NjVlLTAxLCAgIDMuNDYwODEwNzc2MzU4NzA0ZS0wMSwKKyAgLTkuMzgxMzgyMzExOTI4MjQ0ZS0wMSwgICAzLjQ2MjYwOTY5NzUzMTYwMGUtMDEsCisgIC05LjM4MDcxODE5MjM3NTAxM2UtMDEsICAgMy40NjQ0MDg0OTEzOTQyMzVlLTAxLAorICAtOS4zODAwNTM3Mjc5MTk1ODhlLTAxLCAgIDMuNDY2MjA3MTU3ODgwNDczZS0wMSwKKyAgLTkuMzc5Mzg4OTE4NTg2NDAzZS0wMSwgICAzLjQ2ODAwNTY5NjkyNDE4M2UtMDEsCisgIC05LjM3ODcyMzc2NDM5OTg5OWUtMDEsICAgMy40Njk4MDQxMDg0NTkyMzdlLTAxLAorICAtOS4zNzgwNTgyNjUzODQ1MzFlLTAxLCAgIDMuNDcxNjAyMzkyNDE5NTEyZS0wMSwKKyAgLTkuMzc3MzkyNDIxNTY0NzcwZS0wMSwgICAzLjQ3MzQwMDU0ODczODg5MWUtMDEsCisgIC05LjM3NjcyNjIzMjk2NTA5NWUtMDEsICAgMy40NzUxOTg1NzczNTEyNjFlLTAxLAorICAtOS4zNzYwNTk2OTk2MTAwMDBlLTAxLCAgIDMuNDc2OTk2NDc4MTkwNTE0ZS0wMSwKKyAgLTkuMzc1MzkyODIxNTIzOTkyZS0wMSwgICAzLjQ3ODc5NDI1MTE5MDU0NWUtMDEsCisgIC05LjM3NDcyNTU5ODczMTU5M2UtMDEsICAgMy40ODA1OTE4OTYyODUyNTZlLTAxLAorICAtOS4zNzQwNTgwMzEyNTczMzBlLTAxLCAgIDMuNDgyMzg5NDEzNDA4NTUzZS0wMSwKKyAgLTkuMzczMzkwMTE5MTI1NzUwZS0wMSwgICAzLjQ4NDE4NjgwMjQ5NDM0NmUtMDEsCisgIC05LjM3MjcyMTg2MjM2MTQxMGUtMDEsICAgMy40ODU5ODQwNjM0NzY1NDllLTAxLAorICAtOS4zNzIwNTMyNjA5ODg4ODBlLTAxLCAgIDMuNDg3NzgxMTk2Mjg5MDg0ZS0wMSwKKyAgLTkuMzcxMzg0MzE1MDMyNzQxZS0wMSwgICAzLjQ4OTU3ODIwMDg2NTg3NWUtMDEsCisgIC05LjM3MDcxNTAyNDUxNzU5MmUtMDEsICAgMy40OTEzNzUwNzcxNDA4NTBlLTAxLAorICAtOS4zNzAwNDUzODk0NjgwMzdlLTAxLCAgIDMuNDkzMTcxODI1MDQ3OTQ0ZS0wMSwKKyAgLTkuMzY5Mzc1NDA5OTA4Njk5ZS0wMSwgICAzLjQ5NDk2ODQ0NDUyMTA5NWUtMDEsCisgIC05LjM2ODcwNTA4NTg2NDIxMGUtMDEsICAgMy40OTY3NjQ5MzU0OTQyNDhlLTAxLAorICAtOS4zNjgwMzQ0MTczNTkyMTZlLTAxLCAgIDMuNDk4NTYxMjk3OTAxMzQ5ZS0wMSwKKyAgLTkuMzY3MzYzNDA0NDE4Mzc2ZS0wMSwgICAzLjUwMDM1NzUzMTY3NjM1MmUtMDEsCisgIC05LjM2NjY5MjA0NzA2NjM2MmUtMDEsICAgMy41MDIxNTM2MzY3NTMyMTZlLTAxLAorICAtOS4zNjYwMjAzNDUzMjc4NTZlLTAxLCAgIDMuNTAzOTQ5NjEzMDY1OTAxZS0wMSwKKyAgLTkuMzY1MzQ4Mjk5MjI3NTU1ZS0wMSwgICAzLjUwNTc0NTQ2MDU0ODM3NWUtMDEsCisgIC05LjM2NDY3NTkwODc5MDE3MGUtMDEsICAgMy41MDc1NDExNzkxMzQ2MTFlLTAxLAorICAtOS4zNjQwMDMxNzQwNDA0MjFlLTAxLCAgIDMuNTA5MzM2NzY4NzU4NTg0ZS0wMSwKKyAgLTkuMzYzMzMwMDk1MDAzMDQyZS0wMSwgICAzLjUxMTEzMjIyOTM1NDI3NWUtMDEsCisgIC05LjM2MjY1NjY3MTcwMjc4M2UtMDEsICAgMy41MTI5Mjc1NjA4NTU2NzFlLTAxLAorICAtOS4zNjE5ODI5MDQxNjQ0MDFlLTAxLCAgIDMuNTE0NzIyNzYzMTk2NzYzZS0wMSwKKyAgLTkuMzYxMzA4NzkyNDEyNjcwZS0wMSwgICAzLjUxNjUxNzgzNjMxMTU0NmUtMDEsCisgIC05LjM2MDYzNDMzNjQ3MjM3NWUtMDEsICAgMy41MTgzMTI3ODAxMzQwMjBlLTAxLAorICAtOS4zNTk5NTk1MzYzNjgzMTRlLTAxLCAgIDMuNTIwMTA3NTk0NTk4MTkxZS0wMSwKKyAgLTkuMzU5Mjg0MzkyMTI1Mjk3ZS0wMSwgICAzLjUyMTkwMjI3OTYzODA2OGUtMDEsCisgIC05LjM1ODYwODkwMzc2ODE0NmUtMDEsICAgMy41MjM2OTY4MzUxODc2NjZlLTAxLAorICAtOS4zNTc5MzMwNzEzMjE2OTllLTAxLCAgIDMuNTI1NDkxMjYxMTgxMDA1ZS0wMSwKKyAgLTkuMzU3MjU2ODk0ODEwODA0ZS0wMSwgICAzLjUyNzI4NTU1NzU1MjEwN2UtMDEsCisgIC05LjM1NjU4MDM3NDI2MDMyMGUtMDEsICAgMy41MjkwNzk3MjQyMzUwMDJlLTAxLAorICAtOS4zNTU5MDM1MDk2OTUxMjRlLTAxLCAgIDMuNTMwODczNzYxMTYzNzI1ZS0wMSwKKyAgLTkuMzU1MjI2MzAxMTQwMDk5ZS0wMSwgICAzLjUzMjY2NzY2ODI3MjMxMmUtMDEsCisgIC05LjM1NDU0ODc0ODYyMDE0NmUtMDEsICAgMy41MzQ0NjE0NDU0OTQ4MDhlLTAxLAorICAtOS4zNTM4NzA4NTIxNjAxNzhlLTAxLCAgIDMuNTM2MjU1MDkyNzY1MjYwZS0wMSwKKyAgLTkuMzUzMTkyNjExNzg1MTE2ZS0wMSwgICAzLjUzODA0ODYxMDAxNzcyMWUtMDEsCisgIC05LjM1MjUxNDAyNzUxOTg5OWUtMDEsICAgMy41Mzk4NDE5OTcxODYyNDhlLTAxLAorICAtOS4zNTE4MzUwOTkzODk0NzZlLTAxLCAgIDMuNTQxNjM1MjU0MjA0OTAzZS0wMSwKKyAgLTkuMzUxMTU1ODI3NDE4ODA5ZS0wMSwgICAzLjU0MzQyODM4MTAwNzc1NWUtMDEsCisgIC05LjM1MDQ3NjIxMTYzMjg3NGUtMDEsICAgMy41NDUyMjEzNzc1Mjg4NzRlLTAxLAorICAtOS4zNDk3OTYyNTIwNTY2NThlLTAxLCAgIDMuNTQ3MDE0MjQzNzAyMzM4ZS0wMSwKKyAgLTkuMzQ5MTE1OTQ4NzE1MTYxZS0wMSwgICAzLjU0ODgwNjk3OTQ2MjIyOGUtMDEsCisgIC05LjM0ODQzNTMwMTYzMzM5NWUtMDEsICAgMy41NTA1OTk1ODQ3NDI2MjllLTAxLAorICAtOS4zNDc3NTQzMTA4MzYzODdlLTAxLCAgIDMuNTUyMzkyMDU5NDc3NjMzZS0wMSwKKyAgLTkuMzQ3MDcyOTc2MzQ5MTc0ZS0wMSwgICAzLjU1NDE4NDQwMzYwMTMzNmUtMDEsCisgIC05LjM0NjM5MTI5ODE5NjgwOGUtMDEsICAgMy41NTU5NzY2MTcwNDc4MzllLTAxLAorICAtOS4zNDU3MDkyNzY0MDQzNTBlLTAxLCAgIDMuNTU3NzY4Njk5NzUxMjQ2ZS0wMSwKKyAgLTkuMzQ1MDI2OTEwOTk2ODc5ZS0wMSwgICAzLjU1OTU2MDY1MTY0NTY2OGUtMDEsCisgIC05LjM0NDM0NDIwMTk5OTQ4MGUtMDEsICAgMy41NjEzNTI0NzI2NjUyMjFlLTAxLAorICAtOS4zNDM2NjExNDk0MzcyNThlLTAxLCAgIDMuNTYzMTQ0MTYyNzQ0MDI0ZS0wMSwKKyAgLTkuMzQyOTc3NzUzMzM1MzI1ZS0wMSwgICAzLjU2NDkzNTcyMTgxNjIwMWUtMDEsCisgIC05LjM0MjI5NDAxMzcxODgwOGUtMDEsICAgMy41NjY3MjcxNDk4MTU4ODNlLTAxLAorICAtOS4zNDE2MDk5MzA2MTI4NDVlLTAxLCAgIDMuNTY4NTE4NDQ2Njc3MjAzZS0wMSwKKyAgLTkuMzQwOTI1NTA0MDQyNTkwZS0wMSwgICAzLjU3MDMwOTYxMjMzNDMwMGUtMDEsCisgIC05LjM0MDI0MDczNDAzMzIwNGUtMDEsICAgMy41NzIxMDA2NDY3MjEzMjBlLTAxLAorICAtOS4zMzk1NTU2MjA2MDk4NjdlLTAxLCAgIDMuNTczODkxNTQ5NzcyNDA5ZS0wMSwKKyAgLTkuMzM4ODcwMTYzNzk3NzY5ZS0wMSwgICAzLjU3NTY4MjMyMTQyMTcyM2UtMDEsCisgIC05LjMzODE4NDM2MzYyMjExMGUtMDEsICAgMy41Nzc0NzI5NjE2MDM0MTllLTAxLAorICAtOS4zMzc0OTgyMjAxMDgxMDZlLTAxLCAgIDMuNTc5MjYzNDcwMjUxNjYwZS0wMSwKKyAgLTkuMzM2ODExNzMzMjgwOTg0ZS0wMSwgICAzLjU4MTA1Mzg0NzMwMDYxNmUtMDEsCisgIC05LjMzNjEyNDkwMzE2NTk4NWUtMDEsICAgMy41ODI4NDQwOTI2ODQ0NThlLTAxLAorICAtOS4zMzU0Mzc3Mjk3ODgzNjJlLTAxLCAgIDMuNTg0NjM0MjA2MzM3MzY1ZS0wMSwKKyAgLTkuMzM0NzUwMjEzMTczMzgwZS0wMSwgICAzLjU4NjQyNDE4ODE5MzUyMGUtMDEsCisgIC05LjMzNDA2MjM1MzM0NjMxNWUtMDEsICAgMy41ODgyMTQwMzgxODcxMDllLTAxLAorICAtOS4zMzMzNzQxNTAzMzI0NjJlLTAxLCAgIDMuNTkwMDAzNzU2MjUyMzI1ZS0wMSwKKyAgLTkuMzMyNjg1NjA0MTU3MTIwZS0wMSwgICAzLjU5MTc5MzM0MjMyMzM2NWUtMDEsCisgIC05LjMzMTk5NjcxNDg0NTYwN2UtMDEsICAgMy41OTM1ODI3OTYzMzQ0MzFlLTAxLAorICAtOS4zMzEzMDc0ODI0MjMyNTJlLTAxLCAgIDMuNTk1MzcyMTE4MjE5NzMxZS0wMSwKKyAgLTkuMzMwNjE3OTA2OTE1Mzk0ZS0wMSwgICAzLjU5NzE2MTMwNzkxMzQ3NmUtMDEsCisgIC05LjMyOTkyNzk4ODM0NzM5MGUtMDEsICAgMy41OTg5NTAzNjUzNDk4ODFlLTAxLAorICAtOS4zMjkyMzc3MjY3NDQ2MDFlLTAxLCAgIDMuNjAwNzM5MjkwNDYzMTcwZS0wMSwKKyAgLTkuMzI4NTQ3MTIyMTMyNDExZS0wMSwgICAzLjYwMjUyODA4MzE4NzU2OWUtMDEsCisgIC05LjMyNzg1NjE3NDUzNjIxMWUtMDEsICAgMy42MDQzMTY3NDM0NTczMDdlLTAxLAorICAtOS4zMjcxNjQ4ODM5ODE0MDNlLTAxLCAgIDMuNjA2MTA1MjcxMjA2NjIzZS0wMSwKKyAgLTkuMzI2NDczMjUwNDkzNDA0ZS0wMSwgICAzLjYwNzg5MzY2NjM2OTc1NmUtMDEsCisgIC05LjMyNTc4MTI3NDA5NzY0NGUtMDEsICAgMy42MDk2ODE5Mjg4ODA5NTJlLTAxLAorICAtOS4zMjUwODg5NTQ4MTk1NjZlLTAxLCAgIDMuNjExNDcwMDU4Njc0NDYyZS0wMSwKKyAgLTkuMzI0Mzk2MjkyNjg0NjI0ZS0wMSwgICAzLjYxMzI1ODA1NTY4NDU0M2UtMDEsCisgIC05LjMyMzcwMzI4NzcxODI4NWUtMDEsICAgMy42MTUwNDU5MTk4NDU0NTNlLTAxLAorICAtOS4zMjMwMDk5Mzk5NDYwMjhlLTAxLCAgIDMuNjE2ODMzNjUxMDkxNDU4ZS0wMSwKKyAgLTkuMzIyMzE2MjQ5MzkzMzQ1ZS0wMSwgICAzLjYxODYyMTI0OTM1NjgzMGUtMDEsCisgIC05LjMyMTYyMjIxNjA4NTc0NGUtMDEsICAgMy42MjA0MDg3MTQ1NzU4NDJlLTAxLAorICAtOS4zMjA5Mjc4NDAwNDg3NDBlLTAxLCAgIDMuNjIyMTk2MDQ2NjgyNzc1ZS0wMSwKKyAgLTkuMzIwMjMzMTIxMzA3ODY1ZS0wMSwgICAzLjYyMzk4MzI0NTYxMTkxM2UtMDEsCisgIC05LjMxOTUzODA1OTg4ODY2MGUtMDEsICAgMy42MjU3NzAzMTEyOTc1NDhlLTAxLAorICAtOS4zMTg4NDI2NTU4MTY2ODFlLTAxLCAgIDMuNjI3NTU3MjQzNjczOTcyZS0wMSwKKyAgLTkuMzE4MTQ2OTA5MTE3NDk3ZS0wMSwgICAzLjYyOTM0NDA0MjY3NTQ4NmUtMDEsCisgIC05LjMxNzQ1MDgxOTgxNjY4N2UtMDEsICAgMy42MzExMzA3MDgyMzYzOTVlLTAxLAorICAtOS4zMTY3NTQzODc5Mzk4NDZlLTAxLCAgIDMuNjMyOTE3MjQwMjkxMDA4ZS0wMSwKKyAgLTkuMzE2MDU3NjEzNTEyNTc4ZS0wMSwgICAzLjYzNDcwMzYzODc3MzYzOGUtMDEsCisgIC05LjMxNTM2MDQ5NjU2MDUwM2UtMDEsICAgMy42MzY0ODk5MDM2MTg2MDVlLTAxLAorICAtOS4zMTQ2NjMwMzcxMDkyNTFlLTAxLCAgIDMuNjM4Mjc2MDM0NzYwMjM1ZS0wMSwKKyAgLTkuMzEzOTY1MjM1MTg0NDY2ZS0wMSwgICAzLjY0MDA2MjAzMjEzMjg1NWUtMDEsCisgIC05LjMxMzI2NzA5MDgxMTgwNGUtMDEsICAgMy42NDE4NDc4OTU2NzA3OTllLTAxLAorICAtOS4zMTI1Njg2MDQwMTY5MzRlLTAxLCAgIDMuNjQzNjMzNjI1MzA4NDA2ZS0wMSwKKyAgLTkuMzExODY5Nzc0ODI1NTM3ZS0wMSwgICAzLjY0NTQxOTIyMDk4MDAyMWUtMDEsCisgIC05LjMxMTE3MDYwMzI2MzMwOGUtMDEsICAgMy42NDcyMDQ2ODI2MTk5OTNlLTAxLAorICAtOS4zMTA0NzEwODkzNTU5NTNlLTAxLCAgIDMuNjQ4OTkwMDEwMTYyNjczZS0wMSwKKyAgLTkuMzA5NzcxMjMzMTI5MTg5ZS0wMSwgICAzLjY1MDc3NTIwMzU0MjQyMmUtMDEsCisgIC05LjMwOTA3MTAzNDYwODc1MWUtMDEsICAgMy42NTI1NjAyNjI2OTM2MDNlLTAxLAorICAtOS4zMDgzNzA0OTM4MjAzODJlLTAxLCAgIDMuNjU0MzQ1MTg3NTUwNTg0ZS0wMSwKKyAgLTkuMzA3NjY5NjEwNzg5ODM3ZS0wMSwgICAzLjY1NjEyOTk3ODA0NzczOWUtMDEsCisgIC05LjMwNjk2ODM4NTU0Mjg4OWUtMDEsICAgMy42NTc5MTQ2MzQxMTk0NDZlLTAxLAorICAtOS4zMDYyNjY4MTgxMDUzMThlLTAxLCAgIDMuNjU5Njk5MTU1NzAwMDg3ZS0wMSwKKyAgLTkuMzA1NTY0OTA4NTAyOTE4ZS0wMSwgICAzLjY2MTQ4MzU0MjcyNDA1M2UtMDEsCisgIC05LjMwNDg2MjY1Njc2MTQ5OGUtMDEsICAgMy42NjMyNjc3OTUxMjU3MzZlLTAxLAorICAtOS4zMDQxNjAwNjI5MDY4NzVlLTAxLCAgIDMuNjY1MDUxOTEyODM5NTM0ZS0wMSwKKyAgLTkuMzAzNDU3MTI2OTY0ODg1ZS0wMSwgICAzLjY2NjgzNTg5NTc5OTg0OWUtMDEsCisgIC05LjMwMjc1Mzg0ODk2MTM3MWUtMDEsICAgMy42Njg2MTk3NDM5NDEwOTFlLTAxLAorICAtOS4zMDIwNTAyMjg5MjIxOTFlLTAxLCAgIDMuNjcwNDAzNDU3MTk3NjcyZS0wMSwKKyAgLTkuMzAxMzQ2MjY2ODczMjE0ZS0wMSwgICAzLjY3MjE4NzAzNTUwNDAxMGUtMDEsCisgIC05LjMwMDY0MTk2Mjg0MDMyNGUtMDEsICAgMy42NzM5NzA0Nzg3OTQ1MjdlLTAxLAorICAtOS4yOTk5MzczMTY4NDk0MTVlLTAxLCAgIDMuNjc1NzUzNzg3MDAzNjUzZS0wMSwKKyAgLTkuMjk5MjMyMzI4OTI2Mzk3ZS0wMSwgICAzLjY3NzUzNjk2MDA2NTgyMGUtMDEsCisgIC05LjI5ODUyNjk5OTA5NzE4N2UtMDEsICAgMy42NzkzMTk5OTc5MTU0NjRlLTAxLAorICAtOS4yOTc4MjEzMjczODc3MjJlLTAxLCAgIDMuNjgxMTAyOTAwNDg3MDMwZS0wMSwKKyAgLTkuMjk3MTE1MzEzODIzOTQ0ZS0wMSwgICAzLjY4Mjg4NTY2NzcxNDk2NmUtMDEsCisgIC05LjI5NjQwODk1ODQzMTgxM2UtMDEsICAgMy42ODQ2NjgyOTk1MzM3MjNlLTAxLAorICAtOS4yOTU3MDIyNjEyMzcyOTllLTAxLCAgIDMuNjg2NDUwNzk1ODc3NzYwZS0wMSwKKyAgLTkuMjk0OTk1MjIyMjY2Mzg2ZS0wMSwgICAzLjY4ODIzMzE1NjY4MTUzOWUtMDEsCisgIC05LjI5NDI4Nzg0MTU0NTA2OGUtMDEsICAgMy42OTAwMTUzODE4Nzk1MjhlLTAxLAorICAtOS4yOTM1ODAxMTkwOTkzNTVlLTAxLCAgIDMuNjkxNzk3NDcxNDA2MjAwZS0wMSwKKyAgLTkuMjkyODcyMDU0OTU1MjY4ZS0wMSwgICAzLjY5MzU3OTQyNTE5NjAzMWUtMDEsCisgIC05LjI5MjE2MzY0OTEzODg0MGUtMDEsICAgMy42OTUzNjEyNDMxODM1MDZlLTAxLAorICAtOS4yOTE0NTQ5MDE2NzYxMTdlLTAxLCAgIDMuNjk3MTQyOTI1MzAzMTEyZS0wMSwKKyAgLTkuMjkwNzQ1ODEyNTkzMTU5ZS0wMSwgICAzLjY5ODkyNDQ3MTQ4OTM0MWUtMDEsCisgIC05LjI5MDAzNjM4MTkxNjAzNGUtMDEsICAgMy43MDA3MDU4ODE2NzY2OTFlLTAxLAorICAtOS4yODkzMjY2MDk2NzA4MjhlLTAxLCAgIDMuNzAyNDg3MTU1Nzk5NjY0ZS0wMSwKKyAgLTkuMjg4NjE2NDk1ODgzNjM3ZS0wMSwgICAzLjcwNDI2ODI5Mzc5Mjc2OGUtMDEsCisgIC05LjI4NzkwNjA0MDU4MDU3MGUtMDEsICAgMy43MDYwNDkyOTU1OTA1MTdlLTAxLAorICAtOS4yODcxOTUyNDM3ODc3NDhlLTAxLCAgIDMuNzA3ODMwMTYxMTI3NDI2ZS0wMSwKKyAgLTkuMjg2NDg0MTA1NTMxMzA1ZS0wMSwgICAzLjcwOTYxMDg5MDMzODAyMGUtMDEsCisgIC05LjI4NTc3MjYyNTgzNzM4OGUtMDEsICAgMy43MTEzOTE0ODMxNTY4MjZlLTAxLAorICAtOS4yODUwNjA4MDQ3MzIxNTZlLTAxLCAgIDMuNzEzMTcxOTM5NTE4Mzc1ZS0wMSwKKyAgLTkuMjg0MzQ4NjQyMjQxNzgwZS0wMSwgICAzLjcxNDk1MjI1OTM1NzIwOGUtMDEsCisgIC05LjI4MzYzNjEzODM5MjQ0NGUtMDEsICAgMy43MTY3MzI0NDI2MDc4NjVlLTAxLAorICAtOS4yODI5MjMyOTMyMTAzNDdlLTAxLCAgIDMuNzE4NTEyNDg5MjA0ODk1ZS0wMSwKKyAgLTkuMjgyMjEwMTA2NzIxNjk0ZS0wMSwgICAzLjcyMDI5MjM5OTA4Mjg1MGUtMDEsCisgIC05LjI4MTQ5NjU3ODk1MjcxMmUtMDEsICAgMy43MjIwNzIxNzIxNzYyODhlLTAxLAorICAtOS4yODA3ODI3MDk5Mjk2MzFlLTAxLCAgIDMuNzIzODUxODA4NDE5Nzc0ZS0wMSwKKyAgLTkuMjgwMDY4NDk5Njc4NzAwZS0wMSwgICAzLjcyNTYzMTMwNzc0Nzg3M2UtMDEsCisgIC05LjI3OTM1Mzk0ODIyNjE3OWUtMDEsICAgMy43Mjc0MTA2NzAwOTUxNThlLTAxLAorICAtOS4yNzg2MzkwNTU1OTgzMzhlLTAxLCAgIDMuNzI5MTg5ODk1Mzk2MjA4ZS0wMSwKKyAgLTkuMjc3OTIzODIxODIxNDYzZS0wMSwgICAzLjczMDk2ODk4MzU4NTYwNmUtMDEsCisgIC05LjI3NzIwODI0NjkyMTg1MmUtMDEsICAgMy43MzI3NDc5MzQ1OTc5NDBlLTAxLAorICAtOS4yNzY0OTIzMzA5MjU4MTJlLTAxLCAgIDMuNzM0NTI2NzQ4MzY3ODAzZS0wMSwKKyAgLTkuMjc1Nzc2MDczODU5NjY3ZS0wMSwgICAzLjczNjMwNTQyNDgyOTc5M2UtMDEsCisgIC05LjI3NTA1OTQ3NTc0OTc1MmUtMDEsICAgMy43MzgwODM5NjM5MTg1MTJlLTAxLAorICAtOS4yNzQzNDI1MzY2MjI0MTNlLTAxLCAgIDMuNzM5ODYyMzY1NTY4NTcwZS0wMSwKKyAgLTkuMjczNjI1MjU2NTA0MDExZS0wMSwgICAzLjc0MTY0MDYyOTcxNDU3OWUtMDEsCisgIC05LjI3MjkwNzYzNTQyMDkxN2UtMDEsICAgMy43NDM0MTg3NTYyOTExNTllLTAxLAorICAtOS4yNzIxODk2NzMzOTk1MThlLTAxLCAgIDMuNzQ1MTk2NzQ1MjMyOTMyZS0wMSwKKyAgLTkuMjcxNDcxMzcwNDY2MjA5ZS0wMSwgICAzLjc0Njk3NDU5NjQ3NDUyNmUtMDEsCisgIC05LjI3MDc1MjcyNjY0NzQwMWUtMDEsICAgMy43NDg3NTIzMDk5NTA1NzVlLTAxLAorICAtOS4yNzAwMzM3NDE5Njk1MTdlLTAxLCAgIDMuNzUwNTI5ODg1NTk1NzE5ZS0wMSwKKyAgLTkuMjY5MzE0NDE2NDU4OTkxZS0wMSwgICAzLjc1MjMwNzMyMzM0NDU5OWUtMDEsCisgIC05LjI2ODU5NDc1MDE0MjI3MmUtMDEsICAgMy43NTQwODQ2MjMxMzE4NjZlLTAxLAorICAtOS4yNjc4NzQ3NDMwNDU4MTdlLTAxLCAgIDMuNzU1ODYxNzg0ODkyMTcyZS0wMSwKKyAgLTkuMjY3MTU0Mzk1MTk2MTAzZS0wMSwgICAzLjc1NzYzODgwODU2MDE3N2UtMDEsCisgIC05LjI2NjQzMzcwNjYxOTYxMmUtMDEsICAgMy43NTk0MTU2OTQwNzA1NDRlLTAxLAorICAtOS4yNjU3MTI2NzczNDI4NDNlLTAxLCAgIDMuNzYxMTkyNDQxMzU3OTQzZS0wMSwKKyAgLTkuMjY0OTkxMzA3MzkyMzA1ZS0wMSwgICAzLjc2Mjk2OTA1MDM1NzA0OGUtMDEsCisgIC05LjI2NDI2OTU5Njc5NDUyMmUtMDEsICAgMy43NjQ3NDU1MjEwMDI1MzhlLTAxLAorICAtOS4yNjM1NDc1NDU1NzYwMjllLTAxLCAgIDMuNzY2NTIxODUzMjI5MDk2ZS0wMSwKKyAgLTkuMjYyODI1MTUzNzYzMzcyZS0wMSwgICAzLjc2ODI5ODA0Njk3MTQxM2UtMDEsCisgIC05LjI2MjEwMjQyMTM4MzExNGUtMDEsICAgMy43NzAwNzQxMDIxNjQxODNlLTAxLAorICAtOS4yNjEzNzkzNDg0NjE4MjZlLTAxLCAgIDMuNzcxODUwMDE4NzQyMTA0ZS0wMSwKKyAgLTkuMjYwNjU1OTM1MDI2MDkzZS0wMSwgICAzLjc3MzYyNTc5NjYzOTg4M2UtMDEsCisgIC05LjI1OTkzMjE4MTEwMjUxNWUtMDEsICAgMy43NzU0MDE0MzU3OTIyMjllLTAxLAorICAtOS4yNTkyMDgwODY3MTc3MDFlLTAxLCAgIDMuNzc3MTc2OTM2MTMzODU2ZS0wMSwKKyAgLTkuMjU4NDgzNjUxODk4MjczZS0wMSwgICAzLjc3ODk1MjI5NzU5OTQ4NWUtMDEsCisgIC05LjI1Nzc1ODg3NjY3MDg2N2UtMDEsICAgMy43ODA3Mjc1MjAxMjM4NDBlLTAxLAorICAtOS4yNTcwMzM3NjEwNjIxMzJlLTAxLCAgIDMuNzgyNTAyNjAzNjQxNjUyZS0wMSwKKyAgLTkuMjU2MzA4MzA1MDk4NzI3ZS0wMSwgICAzLjc4NDI3NzU0ODA4NzY1NmUtMDEsCisgIC05LjI1NTU4MjUwODgwNzMyN2UtMDEsICAgMy43ODYwNTIzNTMzOTY1OTFlLTAxLAorICAtOS4yNTQ4NTYzNzIyMTQ2MTVlLTAxLCAgIDMuNzg3ODI3MDE5NTAzMjA1ZS0wMSwKKyAgLTkuMjU0MTI5ODk1MzQ3MjkxZS0wMSwgICAzLjc4OTYwMTU0NjM0MjI0N2UtMDEsCisgIC05LjI1MzQwMzA3ODIzMjA2M2UtMDEsICAgMy43OTEzNzU5MzM4NDg0NzNlLTAxLAorICAtOS4yNTI2NzU5MjA4OTU2NTdlLTAxLCAgIDMuNzkzMTUwMTgxOTU2NjQ0ZS0wMSwKKyAgLTkuMjUxOTQ4NDIzMzY0ODA1ZS0wMSwgICAzLjc5NDkyNDI5MDYwMTUyNmUtMDEsCisgIC05LjI1MTIyMDU4NTY2NjI1OWUtMDEsICAgMy43OTY2OTgyNTk3MTc4ODllLTAxLAorICAtOS4yNTA0OTI0MDc4MjY3NzZlLTAxLCAgIDMuNzk4NDcyMDg5MjQwNTEyZS0wMSwKKyAgLTkuMjQ5NzYzODg5ODczMTMyZS0wMSwgICAzLjgwMDI0NTc3OTEwNDE3M2UtMDEsCisgIC05LjI0OTAzNTAzMTgzMjEwOWUtMDEsICAgMy44MDIwMTkzMjkyNDM2NjBlLTAxLAorICAtOS4yNDgzMDU4MzM3MzA1MDhlLTAxLCAgIDMuODAzNzkyNzM5NTkzNzY2ZS0wMSwKKyAgLTkuMjQ3NTc2Mjk1NTk1MTM5ZS0wMSwgICAzLjgwNTU2NjAxMDA4OTI4NWUtMDEsCisgIC05LjI0Njg0NjQxNzQ1MjgyNGUtMDEsICAgMy44MDczMzkxNDA2NjUwMjFlLTAxLAorICAtOS4yNDYxMTYxOTkzMzA0MDBlLTAxLCAgIDMuODA5MTEyMTMxMjU1NzgxZS0wMSwKKyAgLTkuMjQ1Mzg1NjQxMjU0NzE0ZS0wMSwgICAzLjgxMDg4NDk4MTc5NjM3NWUtMDEsCisgIC05LjI0NDY1NDc0MzI1MjYyNmUtMDEsICAgMy44MTI2NTc2OTIyMjE2MjRlLTAxLAorICAtOS4yNDM5MjM1MDUzNTEwMTBlLTAxLCAgIDMuODE0NDMwMjYyNDY2MzQ3ZS0wMSwKKyAgLTkuMjQzMTkxOTI3NTc2NzUyZS0wMSwgICAzLjgxNjIwMjY5MjQ2NTM3NGUtMDEsCisgIC05LjI0MjQ2MDAwOTk1Njc0OWUtMDEsICAgMy44MTc5NzQ5ODIxNTM1MzZlLTAxLAorICAtOS4yNDE3Mjc3NTI1MTc5MTJlLTAxLCAgIDMuODE5NzQ3MTMxNDY1NjcyZS0wMSwKKyAgLTkuMjQwOTk1MTU1Mjg3MTYzZS0wMSwgICAzLjgyMTUxOTE0MDMzNjYyNmUtMDEsCisgIC05LjI0MDI2MjIxODI5MTQzOGUtMDEsICAgMy44MjMyOTEwMDg3MDEyNDVlLTAxLAorICAtOS4yMzk1Mjg5NDE1NTc2ODZlLTAxLCAgIDMuODI1MDYyNzM2NDk0MzgyZS0wMSwKKyAgLTkuMjM4Nzk1MzI1MTEyODY3ZS0wMSwgICAzLjgyNjgzNDMyMzY1MDg5OGUtMDEsCisgIC05LjIzODA2MTM2ODk4Mzk1NGUtMDEsICAgMy44Mjg2MDU3NzAxMDU2NTRlLTAxLAorICAtOS4yMzczMjcwNzMxOTc5MzNlLTAxLCAgIDMuODMwMzc3MDc1NzkzNTIwZS0wMSwKKyAgLTkuMjM2NTkyNDM3NzgxODAwZS0wMSwgICAzLjgzMjE0ODI0MDY0OTM3MmUtMDEsCisgIC05LjIzNTg1NzQ2Mjc2MjU2N2UtMDEsICAgMy44MzM5MTkyNjQ2MDgwODdlLTAxLAorICAtOS4yMzUxMjIxNDgxNjcyNTZlLTAxLCAgIDMuODM1NjkwMTQ3NjA0NTQ5ZS0wMSwKKyAgLTkuMjM0Mzg2NDk0MDIyOTA0ZS0wMSwgICAzLjgzNzQ2MDg4OTU3MzY1MGUtMDEsCisgIC05LjIzMzY1MDUwMDM1NjU1N2UtMDEsICAgMy44MzkyMzE0OTA0NTAyODRlLTAxLAorICAtOS4yMzI5MTQxNjcxOTUyNzZlLTAxLCAgIDMuODQxMDAxOTUwMTY5MzUwZS0wMSwKKyAgLTkuMjMyMTc3NDk0NTY2MTM1ZS0wMSwgICAzLjg0Mjc3MjI2ODY2NTc1NWUtMDEsCisgIC05LjIzMTQ0MDQ4MjQ5NjIxOWUtMDEsICAgMy44NDQ1NDI0NDU4NzQ0MDhlLTAxLAorICAtOS4yMzA3MDMxMzEwMTI2MjRlLTAxLCAgIDMuODQ2MzEyNDgxNzMwMjI2ZS0wMSwKKyAgLTkuMjI5OTY1NDQwMTQyNDYyZS0wMSwgICAzLjg0ODA4MjM3NjE2ODEyOWUtMDEsCisgIC05LjIyOTIyNzQwOTkxMjg1N2UtMDEsICAgMy44NDk4NTIxMjkxMjMwNDJlLTAxLAorICAtOS4yMjg0ODkwNDAzNTA5NDFlLTAxLCAgIDMuODUxNjIxNzQwNTI5ODk5ZS0wMSwKKyAgLTkuMjI3NzUwMzMxNDgzODY0ZS0wMSwgICAzLjg1MzM5MTIxMDMyMzYzM2UtMDEsCisgIC05LjIyNzAxMTI4MzMzODc4NmUtMDEsICAgMy44NTUxNjA1Mzg0MzkxODhlLTAxLAorICAtOS4yMjYyNzE4OTU5NDI4NzllLTAxLCAgIDMuODU2OTI5NzI0ODExNTExZS0wMSwKKyAgLTkuMjI1NTMyMTY5MzIzMzI4ZS0wMSwgICAzLjg1ODY5ODc2OTM3NTU1M2UtMDEsCisgIC05LjIyNDc5MjEwMzUwNzMzMmUtMDEsICAgMy44NjA0Njc2NzIwNjYyNzJlLTAxLAorICAtOS4yMjQwNTE2OTg1MjIwOTllLTAxLCAgIDMuODYyMjM2NDMyODE4NjMwZS0wMSwKKyAgLTkuMjIzMzEwOTU0Mzk0ODU0ZS0wMSwgICAzLjg2NDAwNTA1MTU2NzU5NGUtMDEsCisgIC05LjIyMjU2OTg3MTE1MjgzMGUtMDEsICAgMy44NjU3NzM1MjgyNDgxMzllLTAxLAorICAtOS4yMjE4Mjg0NDg4MjMyNzZlLTAxLCAgIDMuODY3NTQxODYyNzk1MjQyZS0wMSwKKyAgLTkuMjIxMDg2Njg3NDMzNDUyZS0wMSwgICAzLjg2OTMxMDA1NTE0Mzg4NmUtMDEsCisgIC05LjIyMDM0NDU4NzAxMDYyOGUtMDEsICAgMy44NzEwNzgxMDUyMjkwNjBlLTAxLAorICAtOS4yMTk2MDIxNDc1ODIwOTJlLTAxLCAgIDMuODcyODQ2MDEyOTg1NzU4ZS0wMSwKKyAgLTkuMjE4ODU5MzY5MTc1MTQwZS0wMSwgICAzLjg3NDYxMzc3ODM0ODk3OWUtMDEsCisgIC05LjIxODExNjI1MTgxNzA4MWUtMDEsICAgMy44NzYzODE0MDEyNTM3MjdlLTAxLAorICAtOS4yMTczNzI3OTU1MzUyMzllLTAxLCAgIDMuODc4MTQ4ODgxNjM1MDEyZS0wMSwKKyAgLTkuMjE2NjI5MDAwMzU2OTQ3ZS0wMSwgICAzLjg3OTkxNjIxOTQyNzg0OWUtMDEsCisgIC05LjIxNTg4NDg2NjMwOTU1NWUtMDEsICAgMy44ODE2ODM0MTQ1NjcyNTdlLTAxLAorICAtOS4yMTUxNDAzOTM0MjA0MjBlLTAxLCAgIDMuODgzNDUwNDY2OTg4MjYyZS0wMSwKKyAgLTkuMjE0Mzk1NTgxNzE2OTE0ZS0wMSwgICAzLjg4NTIxNzM3NjYyNTg5NmUtMDEsCisgIC05LjIxMzY1MDQzMTIyNjQyM2UtMDEsICAgMy44ODY5ODQxNDM0MTUxOTJlLTAxLAorICAtOS4yMTI5MDQ5NDE5NzYzNDVlLTAxLCAgIDMuODg4NzUwNzY3MjkxMTkzZS0wMSwKKyAgLTkuMjEyMTU5MTEzOTk0MDg3ZS0wMSwgICAzLjg5MDUxNzI0ODE4ODk0NGUtMDEsCisgIC05LjIxMTQxMjk0NzMwNzA3M2UtMDEsICAgMy44OTIyODM1ODYwNDM0OTdlLTAxLAorICAtOS4yMTA2NjY0NDE5NDI3MzZlLTAxLCAgIDMuODk0MDQ5NzgwNzg5OTA5ZS0wMSwKKyAgLTkuMjA5OTE5NTk3OTI4NTIzZS0wMSwgICAzLjg5NTgxNTgzMjM2MzI0M2UtMDEsCisgIC05LjIwOTE3MjQxNTI5MTg5NWUtMDEsICAgMy44OTc1ODE3NDA2OTg1NjRlLTAxLAorICAtOS4yMDg0MjQ4OTQwNjAzMjJlLTAxLCAgIDMuODk5MzQ3NTA1NzMwOTQ3ZS0wMSwKKyAgLTkuMjA3Njc3MDM0MjYxMjg4ZS0wMSwgICAzLjkwMTExMzEyNzM5NTQ2OWUtMDEsCisgIC05LjIwNjkyODgzNTkyMjI5MWUtMDEsICAgMy45MDI4Nzg2MDU2MjcyMTJlLTAxLAorICAtOS4yMDYxODAyOTkwNzA4NDBlLTAxLCAgIDMuOTA0NjQzOTQwMzYxMjY2ZS0wMSwKKyAgLTkuMjA1NDMxNDIzNzM0NDU1ZS0wMSwgICAzLjkwNjQwOTEzMTUzMjcyNGUtMDEsCisgIC05LjIwNDY4MjIwOTk0MDY3MWUtMDEsICAgMy45MDgxNzQxNzkwNzY2ODVlLTAxLAorICAtOS4yMDM5MzI2NTc3MTcwMzZlLTAxLCAgIDMuOTA5OTM5MDgyOTI4MjU0ZS0wMSwKKyAgLTkuMjAzMTgyNzY3MDkxMTA2ZS0wMSwgICAzLjkxMTcwMzg0MzAyMjUzOWUtMDEsCisgIC05LjIwMjQzMjUzODA5MDQ1NGUtMDEsICAgMy45MTM0Njg0NTkyOTQ2NTZlLTAxLAorICAtOS4yMDE2ODE5NzA3NDI2NjNlLTAxLCAgIDMuOTE1MjMyOTMxNjc5NzI0ZS0wMSwKKyAgLTkuMjAwOTMxMDY1MDc1MzMyZS0wMSwgICAzLjkxNjk5NzI2MDExMjg2OWUtMDEsCisgIC05LjIwMDE3OTgyMTExNjA2NmUtMDEsICAgMy45MTg3NjE0NDQ1MjkyMjNlLTAxLAorICAtOS4xOTk0MjgyMzg4OTI0ODZlLTAxLCAgIDMuOTIwNTI1NDg0ODYzOTIxZS0wMSwKKyAgLTkuMTk4Njc2MzE4NDMyMjMwZS0wMSwgICAzLjkyMjI4OTM4MTA1MjEwM2UtMDEsCisgIC05LjE5NzkyNDA1OTc2MjkzOWUtMDEsICAgMy45MjQwNTMxMzMwMjg5MTdlLTAxLAorICAtOS4xOTcxNzE0NjI5MTIyNzRlLTAxLCAgIDMuOTI1ODE2NzQwNzI5NTE1ZS0wMSwKKyAgLTkuMTk2NDE4NTI3OTA3OTA1ZS0wMSwgICAzLjkyNzU4MDIwNDA4OTA1M2UtMDEsCisgIC05LjE5NTY2NTI1NDc3NzUxNWUtMDEsICAgMy45MjkzNDM1MjMwNDI2OTVlLTAxLAorICAtOS4xOTQ5MTE2NDM1NDg4MDFlLTAxLCAgIDMuOTMxMTA2Njk3NTI1NjA4ZS0wMSwKKyAgLTkuMTk0MTU3Njk0MjQ5NDcxZS0wMSwgICAzLjkzMjg2OTcyNzQ3Mjk2NGUtMDEsCisgIC05LjE5MzQwMzQwNjkwNzI0M2UtMDEsICAgMy45MzQ2MzI2MTI4MTk5NDNlLTAxLAorICAtOS4xOTI2NDg3ODE1NDk4NTRlLTAxLCAgIDMuOTM2Mzk1MzUzNTAxNzI5ZS0wMSwKKyAgLTkuMTkxODkzODE4MjA1MDQ1ZS0wMSwgICAzLjkzODE1Nzk0OTQ1MzUxMGUtMDEsCisgIC05LjE5MTEzODUxNjkwMDU3OGUtMDEsICAgMy45Mzk5MjA0MDA2MTA0ODFlLTAxLAorICAtOS4xOTAzODI4Nzc2NjQyMjBlLTAxLCAgIDMuOTQxNjgyNzA2OTA3ODQxZS0wMSwKKyAgLTkuMTg5NjI2OTAwNTIzNzU2ZS0wMSwgICAzLjk0MzQ0NDg2ODI4MDc5NmUtMDEsCisgIC05LjE4ODg3MDU4NTUwNjk4MGUtMDEsICAgMy45NDUyMDY4ODQ2NjQ1NTZlLTAxLAorICAtOS4xODgxMTM5MzI2NDE3MDBlLTAxLCAgIDMuOTQ2OTY4NzU1OTk0MzM2ZS0wMSwKKyAgLTkuMTg3MzU2OTQxOTU1NzM1ZS0wMSwgICAzLjk0ODczMDQ4MjIwNTM1OGUtMDEsCisgIC05LjE4NjU5OTYxMzQ3NjkxOWUtMDEsICAgMy45NTA0OTIwNjMyMzI4NDhlLTAxLAorICAtOS4xODU4NDE5NDcyMzMwOTVlLTAxLCAgIDMuOTUyMjUzNDk5MDEyMDM3ZS0wMSwKKyAgLTkuMTg1MDgzOTQzMjUyMTIzZS0wMSwgICAzLjk1NDAxNDc4OTQ3ODE2NGUtMDEsCisgIC05LjE4NDMyNTYwMTU2MTg2OWUtMDEsICAgMy45NTU3NzU5MzQ1NjY0NjhlLTAxLAorICAtOS4xODM1NjY5MjIxOTAyMTdlLTAxLCAgIDMuOTU3NTM2OTM0MjEyMjAxZS0wMSwKKyAgLTkuMTgyODA3OTA1MTY1MDYxZS0wMSwgICAzLjk1OTI5Nzc4ODM1MDYxM2UtMDEsCisgIC05LjE4MjA0ODU1MDUxNDMwOWUtMDEsICAgMy45NjEwNTg0OTY5MTY5NjNlLTAxLAorICAtOS4xODEyODg4NTgyNjU4ODBlLTAxLCAgIDMuOTYyODE5MDU5ODQ2NTE1ZS0wMSwKKyAgLTkuMTgwNTI4ODI4NDQ3NzA0ZS0wMSwgICAzLjk2NDU3OTQ3NzA3NDUzOWUtMDEsCisgIC05LjE3OTc2ODQ2MTA4NzcyN2UtMDEsICAgMy45NjYzMzk3NDg1MzYzMDhlLTAxLAorICAtOS4xNzkwMDc3NTYyMTM5MDVlLTAxLCAgIDMuOTY4MDk5ODc0MTY3MTAzZS0wMSwKKyAgLTkuMTc4MjQ2NzEzODU0MjA2ZS0wMSwgICAzLjk2OTg1OTg1MzkwMjIwOWUtMDEsCisgIC05LjE3NzQ4NTMzNDAzNjYxMmUtMDEsICAgMy45NzE2MTk2ODc2NzY5MTZlLTAxLAorICAtOS4xNzY3MjM2MTY3ODkxMTllLTAxLCAgIDMuOTczMzc5Mzc1NDI2NTIxZS0wMSwKKyAgLTkuMTc1OTYxNTYyMTM5NzMwZS0wMSwgICAzLjk3NTEzODkxNzA4NjMyM2UtMDEsCisgIC05LjE3NTE5OTE3MDExNjQ2M2UtMDEsICAgMy45NzY4OTgzMTI1OTE2MzJlLTAxLAorICAtOS4xNzQ0MzY0NDA3NDczNTJlLTAxLCAgIDMuOTc4NjU3NTYxODc3NzU4ZS0wMSwKKyAgLTkuMTczNjczMzc0MDYwNDM5ZS0wMSwgICAzLjk4MDQxNjY2NDg4MDAxOGUtMDEsCisgIC05LjE3MjkwOTk3MDA4Mzc3OWUtMDEsICAgMy45ODIxNzU2MjE1MzM3MzZlLTAxLAorICAtOS4xNzIxNDYyMjg4NDU0NDNlLTAxLCAgIDMuOTgzOTM0NDMxNzc0MjQwZS0wMSwKKyAgLTkuMTcxMzgyMTUwMzczNTA3ZS0wMSwgICAzLjk4NTY5MzA5NTUzNjg2M2UtMDEsCisgIC05LjE3MDYxNzczNDY5NjA2OGUtMDEsICAgMy45ODc0NTE2MTI3NTY5NDRlLTAxLAorICAtOS4xNjk4NTI5ODE4NDEyMzBlLTAxLCAgIDMuOTg5MjA5OTgzMzY5ODI5ZS0wMSwKKyAgLTkuMTY5MDg3ODkxODM3MTEwZS0wMSwgICAzLjk5MDk2ODIwNzMxMDg2NWUtMDEsCisgIC05LjE2ODMyMjQ2NDcxMTgzOWUtMDEsICAgMy45OTI3MjYyODQ1MTU0MTBlLTAxLAorICAtOS4xNjc1NTY3MDA0OTM1NjBlLTAxLCAgIDMuOTk0NDg0MjE0OTE4ODIxZS0wMSwKKyAgLTkuMTY2NzkwNTk5MjEwNDI3ZS0wMSwgICAzLjk5NjI0MTk5ODQ1NjQ2OGUtMDEsCisgIC05LjE2NjAyNDE2MDg5MDYwOGUtMDEsICAgMy45OTc5OTk2MzUwNjM3MjBlLTAxLAorICAtOS4xNjUyNTczODU1NjIyODJlLTAxLCAgIDMuOTk5NzU3MTI0Njc1OTUzZS0wMSwKKyAgLTkuMTY0NDkwMjczMjUzNjQyZS0wMSwgICA0LjAwMTUxNDQ2NzIyODU1MWUtMDEsCisgIC05LjE2MzcyMjgyMzk5Mjg5MWUtMDEsICAgNC4wMDMyNzE2NjI2NTY5MDFlLTAxLAorICAtOS4xNjI5NTUwMzc4MDgyNDhlLTAxLCAgIDQuMDA1MDI4NzEwODk2Mzk1ZS0wMSwKKyAgLTkuMTYyMTg2OTE0NzI3OTQyZS0wMSwgICA0LjAwNjc4NTYxMTg4MjQzMmUtMDEsCisgIC05LjE2MTQxODQ1NDc4MDIxNGUtMDEsICAgNC4wMDg1NDIzNjU1NTA0MTdlLTAxLAorICAtOS4xNjA2NDk2NTc5OTMzMTdlLTAxLCAgIDQuMDEwMjk4OTcxODM1NzU2ZS0wMSwKKyAgLTkuMTU5ODgwNTI0Mzk1NTIwZS0wMSwgICA0LjAxMjA1NTQzMDY3Mzg2N2UtMDEsCisgIC05LjE1OTExMTA1NDAxNTA5OWUtMDEsICAgNC4wMTM4MTE3NDIwMDAxNjhlLTAxLAorICAtOS4xNTgzNDEyNDY4ODAzNDdlLTAxLCAgIDQuMDE1NTY3OTA1NzUwMDg1ZS0wMSwKKyAgLTkuMTU3NTcxMTAzMDE5NTY3ZS0wMSwgICA0LjAxNzMyMzkyMTg1OTA1MGUtMDEsCisgIC05LjE1NjgwMDYyMjQ2MTA3N2UtMDEsICAgNC4wMTkwNzk3OTAyNjI0OTdlLTAxLAorICAtOS4xNTYwMjk4MDUyMzMyMDJlLTAxLCAgIDQuMDIwODM1NTEwODk1ODcwZS0wMSwKKyAgLTkuMTU1MjU4NjUxMzY0Mjg1ZS0wMSwgICA0LjAyMjU5MTA4MzY5NDYxNWUtMDEsCisgIC05LjE1NDQ4NzE2MDg4MjY3OGUtMDEsICAgNC4wMjQzNDY1MDg1OTQxODRlLTAxLAorICAtOS4xNTM3MTUzMzM4MTY3NDhlLTAxLCAgIDQuMDI2MTAxNzg1NTMwMDM3ZS0wMSwKKyAgLTkuMTUyOTQzMTcwMTk0ODcwZS0wMSwgICA0LjAyNzg1NjkxNDQzNzYzNWUtMDEsCisgIC05LjE1MjE3MDY3MDA0NTQzOWUtMDEsICAgNC4wMjk2MTE4OTUyNTI0NDllLTAxLAorICAtOS4xNTEzOTc4MzMzOTY4NTNlLTAxLCAgIDQuMDMxMzY2NzI3OTA5OTUzZS0wMSwKKyAgLTkuMTUwNjI0NjYwMjc3NTI5ZS0wMSwgICA0LjAzMzEyMTQxMjM0NTYyNWUtMDEsCisgIC05LjE0OTg1MTE1MDcxNTg5M2UtMDEsICAgNC4wMzQ4NzU5NDg0OTQ5NTNlLTAxLAorICAtOS4xNDkwNzczMDQ3NDAzODdlLTAxLCAgIDQuMDM2NjMwMzM2MjkzNDI2ZS0wMSwKKyAgLTkuMTQ4MzAzMTIyMzc5NDYyZS0wMSwgICA0LjAzODM4NDU3NTY3NjU0MWUtMDEsCisgIC05LjE0NzUyODYwMzY2MTU4MmUtMDEsICAgNC4wNDAxMzg2NjY1Nzk3OTllLTAxLAorICAtOS4xNDY3NTM3NDg2MTUyMjRlLTAxLCAgIDQuMDQxODkyNjA4OTM4NzA3ZS0wMSwKKyAgLTkuMTQ1OTc4NTU3MjY4ODc4ZS0wMSwgICA0LjA0MzY0NjQwMjY4ODc3OGUtMDEsCisgIC05LjE0NTIwMzAyOTY1MTA0NGUtMDEsICAgNC4wNDU0MDAwNDc3NjU1MzBlLTAxLAorICAtOS4xNDQ0MjcxNjU3OTAyMzllLTAxLCAgIDQuMDQ3MTUzNTQ0MTA0NDg2ZS0wMSwKKyAgLTkuMTQzNjUwOTY1NzE0OTg2ZS0wMSwgICA0LjA0ODkwNjg5MTY0MTE3NmUtMDEsCisgIC05LjE0Mjg3NDQyOTQ1MzgyNGUtMDEsICAgNC4wNTA2NjAwOTAzMTExMzNlLTAxLAorICAtOS4xNDIwOTc1NTcwMzUzMDdlLTAxLCAgIDQuMDUyNDEzMTQwMDQ5ODk5ZS0wMSwKKyAgLTkuMTQxMzIwMzQ4NDg3OTk1ZS0wMSwgICA0LjA1NDE2NjA0MDc5MzAxNmUtMDEsCisgIC05LjE0MDU0MjgwMzg0MDQ2NmUtMDEsICAgNC4wNTU5MTg3OTI0NzYwMzllLTAxLAorICAtOS4xMzk3NjQ5MjMxMjEzMDZlLTAxLCAgIDQuMDU3NjcxMzk1MDM0NTIxZS0wMSwKKyAgLTkuMTM4OTg2NzA2MzU5MTE3ZS0wMSwgICA0LjA1OTQyMzg0ODQwNDAyNWUtMDEsCisgIC05LjEzODIwODE1MzU4MjUxMWUtMDEsICAgNC4wNjExNzYxNTI1MjAxMThlLTAxLAorICAtOS4xMzc0MjkyNjQ4MjAxMTRlLTAxLCAgIDQuMDYyOTI4MzA3MzE4Mzc0ZS0wMSwKKyAgLTkuMTM2NjUwMDQwMTAwNTYzZS0wMSwgICA0LjA2NDY4MDMxMjczNDM3MGUtMDEsCisgIC05LjEzNTg3MDQ3OTQ1MjUwOGUtMDEsICAgNC4wNjY0MzIxNjg3MDM2OTBlLTAxLAorICAtOS4xMzUwOTA1ODI5MDQ2MTFlLTAxLCAgIDQuMDY4MTgzODc1MTYxOTIzZS0wMSwKKyAgLTkuMTM0MzEwMzUwNDg1NTQ3ZS0wMSwgICA0LjA2OTkzNTQzMjA0NDY2NWUtMDEsCisgIC05LjEzMzUyOTc4MjIyNDAwMmUtMDEsICAgNC4wNzE2ODY4MzkyODc1MTZlLTAxLAorICAtOS4xMzI3NDg4NzgxNDg2NzhlLTAxLCAgIDQuMDczNDM4MDk2ODI2MDgwZS0wMSwKKyAgLTkuMTMxOTY3NjM4Mjg4MjgyZS0wMSwgICA0LjA3NTE4OTIwNDU5NTk2OWUtMDEsCisgIC05LjEzMTE4NjA2MjY3MTU0MmUtMDEsICAgNC4wNzY5NDAxNjI1MzI4MDFlLTAxLAorICAtOS4xMzA0MDQxNTEzMjcxOTJlLTAxLCAgIDQuMDc4NjkwOTcwNTcyMTk4ZS0wMSwKKyAgLTkuMTI5NjIxOTA0MjgzOTgyZS0wMSwgICA0LjA4MDQ0MTYyODY0OTc4N2UtMDEsCisgIC05LjEyODgzOTMyMTU3MDY3MmUtMDEsICAgNC4wODIxOTIxMzY3MDEyMDFlLTAxLAorICAtOS4xMjgwNTY0MDMyMTYwMzVlLTAxLCAgIDQuMDgzOTQyNDk0NjYyMDgwZS0wMSwKKyAgLTkuMTI3MjczMTQ5MjQ4ODU5ZS0wMSwgICA0LjA4NTY5MjcwMjQ2ODA2OGUtMDEsCisgIC05LjEyNjQ4OTU1OTY5NzkzOWUtMDEsICAgNC4wODc0NDI3NjAwNTQ4MTRlLTAxLAorICAtOS4xMjU3MDU2MzQ1OTIwODdlLTAxLCAgIDQuMDg5MTkyNjY3MzU3OTc0ZS0wMSwKKyAgLTkuMTI0OTIxMzczOTYwMTI2ZS0wMSwgICA0LjA5MDk0MjQyNDMxMzIxMGUtMDEsCisgIC05LjEyNDEzNjc3NzgzMDg5MGUtMDEsICAgNC4wOTI2OTIwMzA4NTYxODZlLTAxLAorICAtOS4xMjMzNTE4NDYyMzMyMjdlLTAxLCAgIDQuMDk0NDQxNDg2OTIyNTc2ZS0wMSwKKyAgLTkuMTIyNTY2NTc5MTk1OTk4ZS0wMSwgICA0LjA5NjE5MDc5MjQ0ODA1N2UtMDEsCisgIC05LjEyMTc4MDk3Njc0ODA3MmUtMDEsICAgNC4wOTc5Mzk5NDczNjgzMTFlLTAxLAorICAtOS4xMjA5OTUwMzg5MTgzMzVlLTAxLCAgIDQuMDk5Njg4OTUxNjE5MDI5ZS0wMSwKKyAgLTkuMTIwMjA4NzY1NzM1NjgzZS0wMSwgICA0LjEwMTQzNzgwNTEzNTkwMmUtMDEsCisgIC05LjExOTQyMjE1NzIyOTAyNmUtMDEsICAgNC4xMDMxODY1MDc4NTQ2MzNlLTAxLAorICAtOS4xMTg2MzUyMTM0MjcyODVlLTAxLCAgIDQuMTA0OTM1MDU5NzEwOTI0ZS0wMSwKKyAgLTkuMTE3ODQ3OTM0MzU5Mzk0ZS0wMSwgICA0LjEwNjY4MzQ2MDY0MDQ4N2UtMDEsCisgIC05LjExNzA2MDMyMDA1NDI5OWUtMDEsICAgNC4xMDg0MzE3MTA1NzkwMzllLTAxLAorICAtOS4xMTYyNzIzNzA1NDA5NTdlLTAxLCAgIDQuMTEwMTc5ODA5NDYyMzAyZS0wMSwKKyAgLTkuMTE1NDg0MDg1ODQ4MzQwZS0wMSwgICA0LjExMTkyNzc1NzIyNjAwMmUtMDEsCisgIC05LjExNDY5NTQ2NjAwNTQzMGUtMDEsICAgNC4xMTM2NzU1NTM4MDU4NzJlLTAxLAorICAtOS4xMTM5MDY1MTEwNDEyMjRlLTAxLCAgIDQuMTE1NDIzMTk5MTM3NjUyZS0wMSwKKyAgLTkuMTEzMTE3MjIwOTg0NzI4ZS0wMSwgICA0LjExNzE3MDY5MzE1NzA4NmUtMDEsCisgIC05LjExMjMyNzU5NTg2NDk2MmUtMDEsICAgNC4xMTg5MTgwMzU3OTk5MjJlLTAxLAorICAtOS4xMTE1Mzc2MzU3MTA5NTllLTAxLCAgIDQuMTIwNjY1MjI3MDAxOTE2ZS0wMSwKKyAgLTkuMTEwNzQ3MzQwNTUxNzY0ZS0wMSwgICA0LjEyMjQxMjI2NjY5ODgyOWUtMDEsCisgIC05LjEwOTk1NjcxMDQxNjQzMWUtMDEsICAgNC4xMjQxNTkxNTQ4MjY0MjdlLTAxLAorICAtOS4xMDkxNjU3NDUzMzQwMzRlLTAxLCAgIDQuMTI1OTA1ODkxMzIwNDgyZS0wMSwKKyAgLTkuMTA4Mzc0NDQ1MzMzNjUwZS0wMSwgICA0LjEyNzY1MjQ3NjExNjc3M2UtMDEsCisgIC05LjEwNzU4MjgxMDQ0NDM3NmUtMDEsICAgNC4xMjkzOTg5MDkxNTEwODFlLTAxLAorICAtOS4xMDY3OTA4NDA2OTUzMTZlLTAxLCAgIDQuMTMxMTQ1MTkwMzU5MTk0ZS0wMSwKKyAgLTkuMTA1OTk4NTM2MTE1NTg5ZS0wMSwgICA0LjEzMjg5MTMxOTY3NjkxMGUtMDEsCisgIC05LjEwNTIwNTg5NjczNDMyN2UtMDEsICAgNC4xMzQ2MzcyOTcwNDAwMjRlLTAxLAorICAtOS4xMDQ0MTI5MjI1ODA2NzJlLTAxLCAgIDQuMTM2MzgzMTIyMzg0MzQ1ZS0wMSwKKyAgLTkuMTAzNjE5NjEzNjgzNzgwZS0wMSwgICA0LjEzODEyODc5NTY0NTY4M2UtMDEsCisgIC05LjEwMjgyNTk3MDA3MjgxOGUtMDEsICAgNC4xMzk4NzQzMTY3NTk4NTRlLTAxLAorICAtOS4xMDIwMzE5OTE3NzY5NjVlLTAxLCAgIDQuMTQxNjE5Njg1NjYyNjgxZS0wMSwKKyAgLTkuMTAxMjM3Njc4ODI1NDE3ZS0wMSwgICA0LjE0MzM2NDkwMjI4OTk5MWUtMDEsCisgIC05LjEwMDQ0MzAzMTI0NzM3NWUtMDEsICAgNC4xNDUxMDk5NjY1Nzc2MThlLTAxLAorICAtOS4wOTk2NDgwNDkwNzIwNTdlLTAxLCAgIDQuMTQ2ODU0ODc4NDYxNDAwZS0wMSwKKyAgLTkuMDk4ODUyNzMyMzI4NjkyZS0wMSwgICA0LjE0ODU5OTYzNzg3NzE4M2UtMDEsCisgIC05LjA5ODA1NzA4MTA0NjUyMmUtMDEsICAgNC4xNTAzNDQyNDQ3NjA4MTZlLTAxLAorICAtOS4wOTcyNjEwOTUyNTQ4MDJlLTAxLCAgIDQuMTUyMDg4Njk5MDQ4MTU2ZS0wMSwKKyAgLTkuMDk2NDY0Nzc0OTgyNzk1ZS0wMSwgICA0LjE1MzgzMzAwMDY3NTA2MmUtMDEsCisgIC05LjA5NTY2ODEyMDI1OTc4M2UtMDEsICAgNC4xNTU1NzcxNDk1Nzc0MDRlLTAxLAorICAtOS4wOTQ4NzExMzExMTUwNTRlLTAxLCAgIDQuMTU3MzIxMTQ1NjkxMDU0ZS0wMSwKKyAgLTkuMDk0MDczODA3NTc3OTEzZS0wMSwgICA0LjE1OTA2NDk4ODk1MTg4OGUtMDEsCisgIC05LjA5MzI3NjE0OTY3NzY3M2UtMDEsICAgNC4xNjA4MDg2NzkyOTU3OTJlLTAxLAorICAtOS4wOTI0NzgxNTc0NDM2NjNlLTAxLCAgIDQuMTYyNTUyMjE2NjU4NjU1ZS0wMSwKKyAgLTkuMDkxNjc5ODMwOTA1MjI0ZS0wMSwgICA0LjE2NDI5NTYwMDk3NjM3MmUtMDEsCisgIC05LjA5MDg4MTE3MDA5MTcwNmUtMDEsICAgNC4xNjYwMzg4MzIxODQ4NDNlLTAxLAorICAtOS4wOTAwODIxNzUwMzI0NzVlLTAxLCAgIDQuMTY3NzgxOTEwMjE5OTc2ZS0wMSwKKyAgLTkuMDg5MjgyODQ1NzU2OTA2ZS0wMSwgICA0LjE2OTUyNDgzNTAxNzY4MmUtMDEsCisgIC05LjA4ODQ4MzE4MjI5NDM5MWUtMDEsICAgNC4xNzEyNjc2MDY1MTM4NzllLTAxLAorICAtOS4wODc2ODMxODQ2NzQzMjllLTAxLCAgIDQuMTczMDEwMjI0NjQ0NDg5ZS0wMSwKKyAgLTkuMDg2ODgyODUyOTI2MTM0ZS0wMSwgICA0LjE3NDc1MjY4OTM0NTQ0M2UtMDEsCisgIC05LjA4NjA4MjE4NzA3OTIzMmUtMDEsICAgNC4xNzY0OTUwMDA1NTI2NzRlLTAxLAorICAtOS4wODUyODExODcxNjMwNjFlLTAxLCAgIDQuMTc4MjM3MTU4MjAyMTIzZS0wMSwKKyAgLTkuMDg0NDc5ODUzMjA3MDczZS0wMSwgICA0LjE3OTk3OTE2MjIyOTczNmUtMDEsCisgIC05LjA4MzY3ODE4NTI0MDcyOWUtMDEsICAgNC4xODE3MjEwMTI1NzE0NjNlLTAxLAorICAtOS4wODI4NzYxODMyOTM1MDVlLTAxLCAgIDQuMTgzNDYyNzA5MTYzMjYzZS0wMSwKKyAgLTkuMDgyMDczODQ3Mzk0ODg3ZS0wMSwgICA0LjE4NTIwNDI1MTk0MTA5N2UtMDEsCisgIC05LjA4MTI3MTE3NzU3NDM3NmUtMDEsICAgNC4xODY5NDU2NDA4NDA5MzZlLTAxLAorICAtOS4wODA0NjgxNzM4NjE0ODNlLTAxLCAgIDQuMTg4Njg2ODc1Nzk4NzUxZS0wMSwKKyAgLTkuMDc5NjY0ODM2Mjg1NzM0ZS0wMSwgICA0LjE5MDQyNzk1Njc1MDUyNGUtMDEsCisgIC05LjA3ODg2MTE2NDg3NjY2M2UtMDEsICAgNC4xOTIxNjg4ODM2MzIyMzllLTAxLAorICAtOS4wNzgwNTcxNTk2NjM4MTllLTAxLCAgIDQuMTkzOTA5NjU2Mzc5ODg5ZS0wMSwKKyAgLTkuMDc3MjUyODIwNjc2NzY0ZS0wMSwgICA0LjE5NTY1MDI3NDkyOTQ2OWUtMDEsCisgIC05LjA3NjQ0ODE0Nzk0NTA3MmUtMDEsICAgNC4xOTczOTA3MzkyMTY5ODJlLTAxLAorICAtOS4wNzU2NDMxNDE0OTgzMjZlLTAxLCAgIDQuMTk5MTMxMDQ5MTc4NDM2ZS0wMSwKKyAgLTkuMDc0ODM3ODAxMzY2MTI2ZS0wMSwgICA0LjIwMDg3MTIwNDc0OTg0NWUtMDEsCisgIC05LjA3NDAzMjEyNzU3ODA4MWUtMDEsICAgNC4yMDI2MTEyMDU4NjcyMjllLTAxLAorICAtOS4wNzMyMjYxMjAxNjM4MTRlLTAxLCAgIDQuMjA0MzUxMDUyNDY2NjEyZS0wMSwKKyAgLTkuMDcyNDE5Nzc5MTUyOTU4ZS0wMSwgICA0LjIwNjA5MDc0NDQ4NDAyNWUtMDEsCisgIC05LjA3MTYxMzEwNDU3NTE2MmUtMDEsICAgNC4yMDc4MzAyODE4NTU1MDVlLTAxLAorICAtOS4wNzA4MDYwOTY0NjAwODVlLTAxLCAgIDQuMjA5NTY5NjY0NTE3MDk0ZS0wMSwKKyAgLTkuMDY5OTk4NzU0ODM3Mzk2ZS0wMSwgICA0LjIxMTMwODg5MjQwNDg0MGUtMDEsCisgIC05LjA2OTE5MTA3OTczNjc4MWUtMDEsICAgNC4yMTMwNDc5NjU0NTQ3OTZlLTAxLAorICAtOS4wNjgzODMwNzExODc5MzRlLTAxLCAgIDQuMjE0Nzg2ODgzNjAzMDIzZS0wMSwKKyAgLTkuMDY3NTc0NzI5MjIwNTY2ZS0wMSwgICA0LjIxNjUyNTY0Njc4NTU4M2UtMDEsCisgIC05LjA2Njc2NjA1Mzg2NDM5NWUtMDEsICAgNC4yMTgyNjQyNTQ5Mzg1NDllLTAxLAorICAtOS4wNjU5NTcwNDUxNDkxNTNlLTAxLCAgIDQuMjIwMDAyNzA3OTk3OTk3ZS0wMSwKKyAgLTkuMDY1MTQ3NzAzMTA0NTg4ZS0wMSwgICA0LjIyMTc0MTAwNTkwMDAwOGUtMDEsCisgIC05LjA2NDMzODAyNzc2MDQ1NWUtMDEsICAgNC4yMjM0NzkxNDg1ODA2NzFlLTAxLAorICAtOS4wNjM1MjgwMTkxNDY1MjRlLTAxLCAgIDQuMjI1MjE3MTM1OTc2MDc4ZS0wMSwKKyAgLTkuMDYyNzE3Njc3MjkyNTc3ZS0wMSwgICA0LjIyNjk1NDk2ODAyMjMzMGUtMDEsCisgIC05LjA2MTkwNzAwMjIyODQwN2UtMDEsICAgNC4yMjg2OTI2NDQ2NTU1MzFlLTAxLAorICAtOS4wNjEwOTU5OTM5ODM4MjBlLTAxLCAgIDQuMjMwNDMwMTY1ODExNzkwZS0wMSwKKyAgLTkuMDYwMjg0NjUyNTg4NjM2ZS0wMSwgICA0LjIzMjE2NzUzMTQyNzIyNmUtMDEsCisgIC05LjA1OTQ3Mjk3ODA3MjY4NWUtMDEsICAgNC4yMzM5MDQ3NDE0Mzc5NjBlLTAxLAorICAtOS4wNTg2NjA5NzA0NjU4MDllLTAxLCAgIDQuMjM1NjQxNzk1NzgwMTIwZS0wMSwKKyAgLTkuMDU3ODQ4NjI5Nzk3ODY2ZS0wMSwgICA0LjIzNzM3ODY5NDM4OTgzOGUtMDEsCisgIC05LjA1NzAzNTk1NjA5ODcyMGUtMDEsICAgNC4yMzkxMTU0MzcyMDMyNTZlLTAxLAorICAtOS4wNTYyMjI5NDkzOTgyNTNlLTAxLCAgIDQuMjQwODUyMDI0MTU2NTE2ZS0wMSwKKyAgLTkuMDU1NDA5NjA5NzI2MzU2ZS0wMSwgICA0LjI0MjU4ODQ1NTE4NTc3MGUtMDEsCisgIC05LjA1NDU5NTkzNzExMjkzM2UtMDEsICAgNC4yNDQzMjQ3MzAyMjcxNzRlLTAxLAorICAtOS4wNTM3ODE5MzE1ODc5MDFlLTAxLCAgIDQuMjQ2MDYwODQ5MjE2ODkxZS0wMSwKKyAgLTkuMDUyOTY3NTkzMTgxMTg4ZS0wMSwgICA0LjI0Nzc5NjgxMjA5MTA4OGUtMDEsCisgIC05LjA1MjE1MjkyMTkyMjczNmUtMDEsICAgNC4yNDk1MzI2MTg3ODU5MzllLTAxLAorICAtOS4wNTEzMzc5MTc4NDI0OTdlLTAxLCAgIDQuMjUxMjY4MjY5MjM3NjI0ZS0wMSwKKyAgLTkuMDUwNTIyNTgwOTcwNDM2ZS0wMSwgICA0LjI1MzAwMzc2MzM4MjMyNmUtMDEsCisgIC05LjA0OTcwNjkxMTMzNjUzMmUtMDEsICAgNC4yNTQ3MzkxMDExNTYyMzhlLTAxLAorICAtOS4wNDg4OTA5MDg5NzA3NzVlLTAxLCAgIDQuMjU2NDc0MjgyNDk1NTU2ZS0wMSwKKyAgLTkuMDQ4MDc0NTczOTAzMTY1ZS0wMSwgICA0LjI1ODIwOTMwNzMzNjQ4MmUtMDEsCisgIC05LjA0NzI1NzkwNjE2MzcxOWUtMDEsICAgNC4yNTk5NDQxNzU2MTUyMjRlLTAxLAorICAtOS4wNDY0NDA5MDU3ODI0NjJlLTAxLCAgIDQuMjYxNjc4ODg3MjY3OTk2ZS0wMSwKKyAgLTkuMDQ1NjIzNTcyNzg5NDMzZS0wMSwgICA0LjI2MzQxMzQ0MjIzMTAxOGUtMDEsCisgIC05LjA0NDgwNTkwNzIxNDY4MmUtMDEsICAgNC4yNjUxNDc4NDA0NDA1MTVlLTAxLAorICAtOS4wNDM5ODc5MDkwODgyNzRlLTAxLCAgIDQuMjY2ODgyMDgxODMyNzE5ZS0wMSwKKyAgLTkuMDQzMTY5NTc4NDQwMjgzZS0wMSwgICA0LjI2ODYxNjE2NjM0Mzg2NGUtMDEsCisgIC05LjA0MjM1MDkxNTMwMDc5N2UtMDEsICAgNC4yNzAzNTAwOTM5MTAxOTdlLTAxLAorICAtOS4wNDE1MzE5MTk2OTk5MThlLTAxLCAgIDQuMjcyMDgzODY0NDY3OTYzZS0wMSwKKyAgLTkuMDQwNzEyNTkxNjY3NzU0ZS0wMSwgICA0LjI3MzgxNzQ3Nzk1MzQxOGUtMDEsCisgIC05LjAzOTg5MjkzMTIzNDQzM2UtMDEsICAgNC4yNzU1NTA5MzQzMDI4MjFlLTAxLAorICAtOS4wMzkwNzI5Mzg0MzAwOTBlLTAxLCAgIDQuMjc3Mjg0MjMzNDUyNDM4ZS0wMSwKKyAgLTkuMDM4MjUyNjEzMjg0ODc1ZS0wMSwgICA0LjI3OTAxNzM3NTMzODU0MWUtMDEsCisgIC05LjAzNzQzMTk1NTgyODk0NmUtMDEsICAgNC4yODA3NTAzNTk4OTc0MDdlLTAxLAorICAtOS4wMzY2MTA5NjYwOTI0ODBlLTAxLCAgIDQuMjgyNDgzMTg3MDY1MzIwZS0wMSwKKyAgLTkuMDM1Nzg5NjQ0MTA1NjYxZS0wMSwgICA0LjI4NDIxNTg1Njc3ODU2N2UtMDEsCisgIC05LjAzNDk2Nzk4OTg5ODY4NWUtMDEsICAgNC4yODU5NDgzNjg5NzM0NDRlLTAxLAorICAtOS4wMzQxNDYwMDM1MDE3NjNlLTAxLCAgIDQuMjg3NjgwNzIzNTg2MjUxZS0wMSwKKyAgLTkuMDMzMzIzNjg0OTQ1MTE4ZS0wMSwgICA0LjI4OTQxMjkyMDU1MzI5NWUtMDEsCisgIC05LjAzMjUwMTAzNDI1ODk4NGUtMDEsICAgNC4yOTExNDQ5NTk4MTA4ODhlLTAxLAorICAtOS4wMzE2NzgwNTE0NzM2MDdlLTAxLCAgIDQuMjkyODc2ODQxMjk1MzQ2ZS0wMSwKKyAgLTkuMDMwODU0NzM2NjE5MjQ2ZS0wMSwgICA0LjI5NDYwODU2NDk0Mjk5NWUtMDEsCisgIC05LjAzMDAzMTA4OTcyNjE3MmUtMDEsICAgNC4yOTYzNDAxMzA2OTAxNjRlLTAxLAorICAtOS4wMjkyMDcxMTA4MjQ2NjdlLTAxLCAgIDQuMjk4MDcxNTM4NDczMTg3ZS0wMSwKKyAgLTkuMDI4MzgyNzk5OTQ1MDI4ZS0wMSwgICA0LjI5OTgwMjc4ODIyODQwNmUtMDEsCisgIC05LjAyNzU1ODE1NzExNzU2MWUtMDEsICAgNC4zMDE1MzM4Nzk4OTIxNjllLTAxLAorICAtOS4wMjY3MzMxODIzNzI1ODhlLTAxLCAgIDQuMzAzMjY0ODEzNDAwODI2ZS0wMSwKKyAgLTkuMDI1OTA3ODc1NzQwNDM5ZS0wMSwgICA0LjMwNDk5NTU4ODY5MDczOGUtMDEsCisgIC05LjAyNTA4MjIzNzI1MTQ1OWUtMDEsICAgNC4zMDY3MjYyMDU2OTgyNjhlLTAxLAorICAtOS4wMjQyNTYyNjY5MzYwMDRlLTAxLCAgIDQuMzA4NDU2NjY0MzU5Nzg3ZS0wMSwKKyAgLTkuMDIzNDI5OTY0ODI0NDQyZS0wMSwgICA0LjMxMDE4Njk2NDYxMTY3MGUtMDEsCisgIC05LjAyMjYwMzMzMDk0NzE1NWUtMDEsICAgNC4zMTE5MTcxMDYzOTAyOTllLTAxLAorICAtOS4wMjE3NzYzNjUzMzQ1MzZlLTAxLCAgIDQuMzEzNjQ3MDg5NjMyMDYzZS0wMSwKKyAgLTkuMDIwOTQ5MDY4MDE2OTg5ZS0wMSwgICA0LjMxNTM3NjkxNDI3MzM1NWUtMDEsCisgIC05LjAyMDEyMTQzOTAyNDkzMmUtMDEsICAgNC4zMTcxMDY1ODAyNTA1NzNlLTAxLAorICAtOS4wMTkyOTM0NzgzODg3OTVlLTAxLCAgIDQuMzE4ODM2MDg3NTAwMTIyZS0wMSwKKyAgLTkuMDE4NDY1MTg2MTM5MDE3ZS0wMSwgICA0LjMyMDU2NTQzNTk1ODQxNWUtMDEsCisgIC05LjAxNzYzNjU2MjMwNjA1N2UtMDEsICAgNC4zMjIyOTQ2MjU1NjE4NjdlLTAxLAorICAtOS4wMTY4MDc2MDY5MjAzNzdlLTAxLCAgIDQuMzI0MDIzNjU2MjQ2OTAxZS0wMSwKKyAgLTkuMDE1OTc4MzIwMDEyNDU3ZS0wMSwgICA0LjMyNTc1MjUyNzk0OTk0NmUtMDEsCisgIC05LjAxNTE0ODcwMTYxMjc4N2UtMDEsICAgNC4zMjc0ODEyNDA2MDc0MzdlLTAxLAorICAtOS4wMTQzMTg3NTE3NTE4NzBlLTAxLCAgIDQuMzI5MjA5Nzk0MTU1ODEzZS0wMSwKKyAgLTkuMDEzNDg4NDcwNDYwMjIwZS0wMSwgICA0LjMzMDkzODE4ODUzMTUyMGUtMDEsCisgIC05LjAxMjY1Nzg1Nzc2ODM2NmUtMDEsICAgNC4zMzI2NjY0MjM2NzEwMDllLTAxLAorICAtOS4wMTE4MjY5MTM3MDY4NDVlLTAxLCAgIDQuMzM0Mzk0NDk5NTEwNzQxZS0wMSwKKyAgLTkuMDEwOTk1NjM4MzA2MjEwZS0wMSwgICA0LjMzNjEyMjQxNTk4NzE3NmUtMDEsCisgIC05LjAxMDE2NDAzMTU5NzAyM2UtMDEsICAgNC4zMzc4NTAxNzMwMzY3ODVlLTAxLAorICAtOS4wMDkzMzIwOTM2MDk4NjJlLTAxLCAgIDQuMzM5NTc3NzcwNTk2MDQ0ZS0wMSwKKyAgLTkuMDA4NDk5ODI0Mzc1MzE0ZS0wMSwgICA0LjM0MTMwNTIwODYwMTQzM2UtMDEsCisgIC05LjAwNzY2NzIyMzkyMzk3OWUtMDEsICAgNC4zNDMwMzI0ODY5ODk0NDBlLTAxLAorICAtOS4wMDY4MzQyOTIyODY0NzBlLTAxLCAgIDQuMzQ0NzU5NjA1Njk2NTU3ZS0wMSwKKyAgLTkuMDA2MDAxMDI5NDkzNDA5ZS0wMSwgICA0LjM0NjQ4NjU2NDY1OTI4M2UtMDEsCisgIC05LjAwNTE2NzQzNTU3NTQzNWUtMDEsICAgNC4zNDgyMTMzNjM4MTQxMjNlLTAxLAorICAtOS4wMDQzMzM1MTA1NjMxOThlLTAxLCAgIDQuMzQ5OTQwMDAzMDk3NTg3ZS0wMSwKKyAgLTkuMDAzNDk5MjU0NDg3MzU2ZS0wMSwgICA0LjM1MTY2NjQ4MjQ0NjE5M2UtMDEsCisgIC05LjAwMjY2NDY2NzM3ODU4NWUtMDEsICAgNC4zNTMzOTI4MDE3OTY0NjFlLTAxLAorICAtOS4wMDE4Mjk3NDkyNjc1NjhlLTAxLCAgIDQuMzU1MTE4OTYxMDg0OTIwZS0wMSwKKyAgLTkuMDAwOTk0NTAwMTg1MDA0ZS0wMSwgICA0LjM1Njg0NDk2MDI0ODEwNWUtMDEsCisgIC05LjAwMDE1ODkyMDE2MTYwM2UtMDEsICAgNC4zNTg1NzA3OTkyMjI1NTVlLTAxLAorICAtOC45OTkzMjMwMDkyMjgwODVlLTAxLCAgIDQuMzYwMjk2NDc3OTQ0ODE2ZS0wMSwKKyAgLTguOTk4NDg2NzY3NDE1MTg2ZS0wMSwgICA0LjM2MjAyMTk5NjM1MTQ0MGUtMDEsCisgIC04Ljk5NzY1MDE5NDc1MzY1MWUtMDEsICAgNC4zNjM3NDczNTQzNzg5ODNlLTAxLAorICAtOC45OTY4MTMyOTEyNzQyMzllLTAxLCAgIDQuMzY1NDcyNTUxOTY0MDEyZS0wMSwKKyAgLTguOTk1OTc2MDU3MDA3NzIyZS0wMSwgICA0LjM2NzE5NzU4OTA0MzA5NGUtMDEsCisgIC04Ljk5NTEzODQ5MTk4NDg4MGUtMDEsICAgNC4zNjg5MjI0NjU1NTI4MDRlLTAxLAorICAtOC45OTQzMDA1OTYyMzY1MDllLTAxLCAgIDQuMzcwNjQ3MTgxNDI5NzI0ZS0wMSwKKyAgLTguOTkzNDYyMzY5NzkzNDE2ZS0wMSwgICA0LjM3MjM3MTczNjYxMDQ0MWUtMDEsCisgIC04Ljk5MjYyMzgxMjY4NjQyMGUtMDEsICAgNC4zNzQwOTYxMzEwMzE1NDhlLTAxLAorICAtOC45OTE3ODQ5MjQ5NDYzNTNlLTAxLCAgIDQuMzc1ODIwMzY0NjI5NjQ0ZS0wMSwKKyAgLTguOTkwOTQ1NzA2NjA0MDU4ZS0wMSwgICA0LjM3NzU0NDQzNzM0MTMzNGUtMDEsCisgIC04Ljk5MDEwNjE1NzY5MDM5MWUtMDEsICAgNC4zNzkyNjgzNDkxMDMyMjllLTAxLAorICAtOC45ODkyNjYyNzgyMzYyMTllLTAxLCAgIDQuMzgwOTkyMDk5ODUxOTQ1ZS0wMSwKKyAgLTguOTg4NDI2MDY4MjcyNDI0ZS0wMSwgICA0LjM4MjcxNTY4OTUyNDEwNGUtMDEsCisgIC04Ljk4NzU4NTUyNzgyOTg5NGUtMDEsICAgNC4zODQ0MzkxMTgwNTYzMzdlLTAxLAorICAtOC45ODY3NDQ2NTY5Mzk1MzhlLTAxLCAgIDQuMzg2MTYyMzg1Mzg1Mjc3ZS0wMSwKKyAgLTguOTg1OTAzNDU1NjMyMjcwZS0wMSwgICA0LjM4Nzg4NTQ5MTQ0NzU2M2UtMDEsCisgIC04Ljk4NTA2MTkyMzkzOTAyMGUtMDEsICAgNC4zODk2MDg0MzYxNzk4NDNlLTAxLAorICAtOC45ODQyMjAwNjE4OTA3MjVlLTAxLCAgIDQuMzkxMzMxMjE5NTE4NzY5ZS0wMSwKKyAgLTguOTgzMzc3ODY5NTE4MzQzZS0wMSwgICA0LjM5MzA1Mzg0MTQwMTAwMGUtMDEsCisgIC04Ljk4MjUzNTM0Njg1MjgzNmUtMDEsICAgNC4zOTQ3NzYzMDE3NjMxOThlLTAxLAorICAtOC45ODE2OTI0OTM5MjUxODFlLTAxLCAgIDQuMzk2NDk4NjAwNTQyMDM1ZS0wMSwKKyAgLTguOTgwODQ5MzEwNzY2MzY4ZS0wMSwgICA0LjM5ODIyMDczNzY3NDE4NWUtMDEsCisgIC04Ljk4MDAwNTc5NzQwNzM5OWUtMDEsICAgNC4zOTk5NDI3MTMwOTYzMzNlLTAxLAorICAtOC45NzkxNjE5NTM4NzkyODdlLTAxLCAgIDQuNDAxNjY0NTI2NzQ1MTYzZS0wMSwKKyAgLTguOTc4MzE3NzgwMjEzMDU2ZS0wMSwgICA0LjQwMzM4NjE3ODU1NzM3MmUtMDEsCisgIC04Ljk3NzQ3MzI3NjQzOTc0N2UtMDEsICAgNC40MDUxMDc2Njg0Njk2NTllLTAxLAorICAtOC45NzY2Mjg0NDI1OTA0MDllLTAxLCAgIDQuNDA2ODI4OTk2NDE4NzI5ZS0wMSwKKyAgLTguOTc1NzgzMjc4Njk2MTAyZS0wMSwgICA0LjQwODU1MDE2MjM0MTI5NGUtMDEsCisgIC04Ljk3NDkzNzc4NDc4NzkwM2UtMDEsICAgNC40MTAyNzExNjYxNzQwNzJlLTAxLAorICAtOC45NzQwOTE5NjA4OTY4OTdlLTAxLCAgIDQuNDExOTkyMDA3ODUzNzg3ZS0wMSwKKyAgLTguOTczMjQ1ODA3MDU0MTgzZS0wMSwgICA0LjQxMzcxMjY4NzMxNzE2N2UtMDEsCisgIC04Ljk3MjM5OTMyMzI5MDg3MmUtMDEsICAgNC40MTU0MzMyMDQ1MDA5NDllLTAxLAorICAtOC45NzE1NTI1MDk2MzgwODVlLTAxLCAgIDQuNDE3MTUzNTU5MzQxODczZS0wMSwKKyAgLTguOTcwNzA1MzY2MTI2OTU5ZS0wMSwgICA0LjQxODg3Mzc1MTc3NjY4OWUtMDEsCisgIC04Ljk2OTg1Nzg5Mjc4ODY0MGUtMDEsICAgNC40MjA1OTM3ODE3NDIxNDdlLTAxLAorICAtOC45NjkwMTAwODk2NTQyODhlLTAxLCAgIDQuNDIyMzEzNjQ5MTc1MDEwZS0wMSwKKyAgLTguOTY4MTYxOTU2NzU1MDczZS0wMSwgICA0LjQyNDAzMzM1NDAxMjA0MWUtMDEsCisgIC04Ljk2NzMxMzQ5NDEyMjE3OWUtMDEsICAgNC40MjU3NTI4OTYxOTAwMTJlLTAxLAorICAtOC45NjY0NjQ3MDE3ODY4MDJlLTAxLCAgIDQuNDI3NDcyMjc1NjQ1NzAwZS0wMSwKKyAgLTguOTY1NjE1NTc5NzgwMTUwZS0wMSwgICA0LjQyOTE5MTQ5MjMxNTg5MGUtMDEsCisgIC04Ljk2NDc2NjEyODEzMzQ0MWUtMDEsICAgNC40MzA5MTA1NDYxMzczNjllLTAxLAorICAtOC45NjM5MTYzNDY4Nzc5MDhlLTAxLCAgIDQuNDMyNjI5NDM3MDQ2OTMzZS0wMSwKKyAgLTguOTYzMDY2MjM2MDQ0Nzk1ZS0wMSwgICA0LjQzNDM0ODE2NDk4MTM4NWUtMDEsCisgIC04Ljk2MjIxNTc5NTY2NTM2MGUtMDEsICAgNC40MzYwNjY3Mjk4Nzc1MzBlLTAxLAorICAtOC45NjEzNjUwMjU3NzA4NjhlLTAxLCAgIDQuNDM3Nzg1MTMxNjcyMTgyZS0wMSwKKyAgLTguOTYwNTEzOTI2MzkyNjAxZS0wMSwgICA0LjQzOTUwMzM3MDMwMjE2MWUtMDEsCisgIC04Ljk1OTY2MjQ5NzU2MTg1MmUtMDEsICAgNC40NDEyMjE0NDU3MDQyOTJlLTAxLAorICAtOC45NTg4MTA3MzkzMDk5MjRlLTAxLCAgIDQuNDQyOTM5MzU3ODE1NDA2ZS0wMSwKKyAgLTguOTU3OTU4NjUxNjY4MTM1ZS0wMSwgICA0LjQ0NDY1NzEwNjU3MjM0MGUtMDEsCisgIC04Ljk1NzEwNjIzNDY2NzgxM2UtMDEsICAgNC40NDYzNzQ2OTE5MTE5MzhlLTAxLAorICAtOC45NTYyNTM0ODgzNDAzMDFlLTAxLCAgIDQuNDQ4MDkyMTEzNzcxMDQ5ZS0wMSwKKyAgLTguOTU1NDAwNDEyNzE2OTUwZS0wMSwgICA0LjQ0OTgwOTM3MjA4NjUyN2UtMDEsCisgIC04Ljk1NDU0NzAwNzgyOTEyNGUtMDEsICAgNC40NTE1MjY0NjY3OTUyMzZlLTAxLAorICAtOC45NTM2OTMyNzM3MDgyMDNlLTAxLCAgIDQuNDUzMjQzMzk3ODM0MDQyZS0wMSwKKyAgLTguOTUyODM5MjEwMzg1NTc2ZS0wMSwgICA0LjQ1NDk2MDE2NTEzOTgxN2UtMDEsCisgIC04Ljk1MTk4NDgxNzg5MjY0MmUtMDEsICAgNC40NTY2NzY3Njg2NDk0NDNlLTAxLAorICAtOC45NTExMzAwOTYyNjA4MThlLTAxLCAgIDQuNDU4MzkzMjA4Mjk5ODAzZS0wMSwKKyAgLTguOTUwMjc1MDQ1NTIxNTI2ZS0wMSwgICA0LjQ2MDEwOTQ4NDAyNzc4OWUtMDEsCisgIC04Ljk0OTQxOTY2NTcwNjIwOGUtMDEsICAgNC40NjE4MjU1OTU3NzAzMDFlLTAxLAorICAtOC45NDg1NjM5NTY4NDYzMTBlLTAxLCAgIDQuNDYzNTQxNTQzNDY0MjM4ZS0wMSwKKyAgLTguOTQ3NzA3OTE4OTczMjk2ZS0wMSwgICA0LjQ2NTI1NzMyNzA0NjUxM2UtMDEsCisgIC04Ljk0Njg1MTU1MjExODY0MGUtMDEsICAgNC40NjY5NzI5NDY0NTQwNDFlLTAxLAorICAtOC45NDU5OTQ4NTYzMTM4MjdlLTAxLCAgIDQuNDY4Njg4NDAxNjIzNzQyZS0wMSwKKyAgLTguOTQ1MTM3ODMxNTkwMzU2ZS0wMSwgICA0LjQ3MDQwMzY5MjQ5MjU0NGUtMDEsCisgIC04Ljk0NDI4MDQ3Nzk3OTczOGUtMDEsICAgNC40NzIxMTg4MTg5OTczODNlLTAxLAorICAtOC45NDM0MjI3OTU1MTM0OTVlLTAxLCAgIDQuNDczODMzNzgxMDc1MTk2ZS0wMSwKKyAgLTguOTQyNTY0Nzg0MjIzMTYwZS0wMSwgICA0LjQ3NTU0ODU3ODY2MjkzMGUtMDEsCisgIC04Ljk0MTcwNjQ0NDE0MDI4M2UtMDEsICAgNC40NzcyNjMyMTE2OTc1MzZlLTAxLAorICAtOC45NDA4NDc3NzUyOTY0MjBlLTAxLCAgIDQuNDc4OTc3NjgwMTE1OTczZS0wMSwKKyAgLTguOTM5OTg4Nzc3NzIzMTQyZS0wMSwgICA0LjQ4MDY5MTk4Mzg1NTIwNGUtMDEsCisgIC04LjkzOTEyOTQ1MTQ1MjAzM2UtMDEsICAgNC40ODI0MDYxMjI4NTIxOTllLTAxLAorICAtOC45MzgyNjk3OTY1MTQ2ODZlLTAxLCAgIDQuNDg0MTIwMDk3MDQzOTM0ZS0wMSwKKyAgLTguOTM3NDA5ODEyOTQyNzEwZS0wMSwgICA0LjQ4NTgzMzkwNjM2NzM5MmUtMDEsCisgIC04LjkzNjU0OTUwMDc2NzcyNWUtMDEsICAgNC40ODc1NDc1NTA3NTk1NjBlLTAxLAorICAtOC45MzU2ODg4NjAwMjEzNTllLTAxLCAgIDQuNDg5MjYxMDMwMTU3NDMzZS0wMSwKKyAgLTguOTM0ODI3ODkwNzM1MjU5ZS0wMSwgICA0LjQ5MDk3NDM0NDQ5ODAxMGUtMDEsCisgIC04LjkzMzk2NjU5Mjk0MTA3N2UtMDEsICAgNC40OTI2ODc0OTM3MTgyOTllLTAxLAorICAtOC45MzMxMDQ5NjY2NzA0ODJlLTAxLCAgIDQuNDk0NDAwNDc3NzU1MzExZS0wMSwKKyAgLTguOTMyMjQzMDExOTU1MTUzZS0wMSwgICA0LjQ5NjExMzI5NjU0NjA2NWUtMDEsCisgIC04LjkzMTM4MDcyODgyNjc4M2UtMDEsICAgNC40OTc4MjU5NTAwMjc1ODdlLTAxLAorICAtOC45MzA1MTgxMTczMTcwNzRlLTAxLCAgIDQuNDk5NTM4NDM4MTM2OTA1ZS0wMSwKKyAgLTguOTI5NjU1MTc3NDU3NzQ0ZS0wMSwgICA0LjUwMTI1MDc2MDgxMTA1N2UtMDEsCisgIC04LjkyODc5MTkwOTI4MDUxN2UtMDEsICAgNC41MDI5NjI5MTc5ODcwODZlLTAxLAorICAtOC45Mjc5MjgzMTI4MTcxMzZlLTAxLCAgIDQuNTA0Njc0OTA5NjAyMDQxZS0wMSwKKyAgLTguOTI3MDY0Mzg4MDk5MzU0ZS0wMSwgICA0LjUwNjM4NjczNTU5Mjk3NmUtMDEsCisgIC04LjkyNjIwMDEzNTE1ODkzMmUtMDEsICAgNC41MDgwOTgzOTU4OTY5NTNlLTAxLAorICAtOC45MjUzMzU1NTQwMjc2NDZlLTAxLCAgIDQuNTA5ODA5ODkwNDUxMDM5ZS0wMSwKKyAgLTguOTI0NDcwNjQ0NzM3Mjg3ZS0wMSwgICA0LjUxMTUyMTIxOTE5MjMwNmUtMDEsCisgIC04LjkyMzYwNTQwNzMxOTY1NGUtMDEsICAgNC41MTMyMzIzODIwNTc4MzVlLTAxLAorICAtOC45MjI3Mzk4NDE4MDY1NThlLTAxLCAgIDQuNTE0OTQzMzc4OTg0NzExZS0wMSwKKyAgLTguOTIxODczOTQ4MjI5ODI1ZS0wMSwgICA0LjUxNjY1NDIwOTkxMDAyNWUtMDEsCisgIC04LjkyMTAwNzcyNjYyMTI5MWUtMDEsICAgNC41MTgzNjQ4NzQ3NzA4NzVlLTAxLAorICAtOC45MjAxNDExNzcwMTI4MDVlLTAxLCAgIDQuNTIwMDc1MzczNTA0MzY0ZS0wMSwKKyAgLTguOTE5Mjc0Mjk5NDM2MjI1ZS0wMSwgICA0LjUyMTc4NTcwNjA0NzYwNGUtMDEsCisgIC04LjkxODQwNzA5MzkyMzQyN2UtMDEsICAgNC41MjM0OTU4NzIzMzc3MDllLTAxLAorICAtOC45MTc1Mzk1NjA1MDYyOTVlLTAxLCAgIDQuNTI1MjA1ODcyMzExODAwZS0wMSwKKyAgLTguOTE2NjcxNjk5MjE2NzIzZS0wMSwgICA0LjUyNjkxNTcwNTkwNzAwOWUtMDEsCisgIC04LjkxNTgwMzUxMDA4NjYyM2UtMDEsICAgNC41Mjg2MjUzNzMwNjA0NjhlLTAxLAorICAtOC45MTQ5MzQ5OTMxNDc5MTRlLTAxLCAgIDQuNTMwMzM0ODczNzA5MzE2ZS0wMSwKKyAgLTguOTE0MDY2MTQ4NDMyNTI5ZS0wMSwgICA0LjUzMjA0NDIwNzc5MDcwMmUtMDEsCisgIC04LjkxMzE5Njk3NTk3MjQxNGUtMDEsICAgNC41MzM3NTMzNzUyNDE3NzdlLTAxLAorICAtOC45MTIzMjc0NzU3OTk1MjVlLTAxLCAgIDQuNTM1NDYyMzc1OTk5NzAxZS0wMSwKKyAgLTguOTExNDU3NjQ3OTQ1ODMyZS0wMSwgICA0LjUzNzE3MTIxMDAwMTYzOWUtMDEsCisgIC04LjkxMDU4NzQ5MjQ0MzMxNmUtMDEsICAgNC41Mzg4Nzk4NzcxODQ3NjBlLTAxLAorICAtOC45MDk3MTcwMDkzMjM5NjllLTAxLCAgIDQuNTQwNTg4Mzc3NDg2MjQ0ZS0wMSwKKyAgLTguOTA4ODQ2MTk4NjE5Nzk1ZS0wMSwgICA0LjU0MjI5NjcxMDg0MzI3M2UtMDEsCisgIC04LjkwNzk3NTA2MDM2MjgxNWUtMDEsICAgNC41NDQwMDQ4NzcxOTMwMzZlLTAxLAorICAtOC45MDcxMDM1OTQ1ODUwNTZlLTAxLCAgIDQuNTQ1NzEyODc2NDcyNzI5ZS0wMSwKKyAgLTguOTA2MjMxODAxMzE4NTU5ZS0wMSwgICA0LjU0NzQyMDcwODYxOTU1NGUtMDEsCisgIC04LjkwNTM1OTY4MDU5NTM3OGUtMDEsICAgNC41NDkxMjgzNzM1NzA3MTllLTAxLAorICAtOC45MDQ0ODcyMzI0NDc1NzllLTAxLCAgIDQuNTUwODM1ODcxMjYzNDM4ZS0wMSwKKyAgLTguOTAzNjE0NDU2OTA3MjM4ZS0wMSwgICA0LjU1MjU0MzIwMTYzNDkzMWUtMDEsCisgIC04LjkwMjc0MTM1NDAwNjQ0NmUtMDEsICAgNC41NTQyNTAzNjQ2MjI0MjRlLTAxLAorICAtOC45MDE4Njc5MjM3NzczMDJlLTAxLCAgIDQuNTU1OTU3MzYwMTYzMTUwZS0wMSwKKyAgLTguOTAwOTk0MTY2MjUxOTIzZS0wMSwgICA0LjU1NzY2NDE4ODE5NDM0NmUtMDEsCisgIC04LjkwMDEyMDA4MTQ2MjQzM2UtMDEsICAgNC41NTkzNzA4NDg2NTMyNjBlLTAxLAorICAtOC44OTkyNDU2Njk0NDA5NjdlLTAxLCAgIDQuNTYxMDc3MzQxNDc3MTQxZS0wMSwKKyAgLTguODk4MzcwOTMwMjE5Njc5ZS0wMSwgICA0LjU2Mjc4MzY2NjYwMzI0NmUtMDEsCisgIC04Ljg5NzQ5NTg2MzgzMDcyOGUtMDEsICAgNC41NjQ0ODk4MjM5Njg4MzllLTAxLAorICAtOC44OTY2MjA0NzAzMDYyODllLTAxLCAgIDQuNTY2MTk1ODEzNTExMTg5ZS0wMSwKKyAgLTguODk1NzQ0NzQ5Njc4NTQ2ZS0wMSwgICA0LjU2NzkwMTYzNTE2NzU3MmUtMDEsCisgIC04Ljg5NDg2ODcwMTk3OTY5OWUtMDEsICAgNC41Njk2MDcyODg4NzUyNzBlLTAxLAorICAtOC44OTM5OTIzMjcyNDE5NTVlLTAxLCAgIDQuNTcxMzEyNzc0NTcxNTcwZS0wMSwKKyAgLTguODkzMTE1NjI1NDk3NTM5ZS0wMSwgICA0LjU3MzAxODA5MjE5Mzc2NmUtMDEsCisgIC04Ljg5MjIzODU5Njc3ODY4MmUtMDEsICAgNC41NzQ3MjMyNDE2NzkxNjFlLTAxLAorICAtOC44OTEzNjEyNDExMTc2MzJlLTAxLCAgIDQuNTc2NDI4MjIyOTY1MDU4ZS0wMSwKKyAgLTguODkwNDgzNTU4NTQ2NjQ2ZS0wMSwgICA0LjU3ODEzMzAzNTk4ODc3MmUtMDEsCisgIC04Ljg4OTYwNTU0OTA5Nzk5M2UtMDEsICAgNC41Nzk4Mzc2ODA2ODc2MjFlLTAxLAorICAtOC44ODg3MjcyMTI4MDM5NTZlLTAxLCAgIDQuNTgxNTQyMTU2OTk4OTMxZS0wMSwKKyAgLTguODg3ODQ4NTQ5Njk2ODI4ZS0wMSwgICA0LjU4MzI0NjQ2NDg2MDAzMmUtMDEsCisgIC04Ljg4Njk2OTU1OTgwODkxNmUtMDEsICAgNC41ODQ5NTA2MDQyMDgyNjNlLTAxLAorICAtOC44ODYwOTAyNDMxNzI1MzllLTAxLCAgIDQuNTg2NjU0NTc0OTgwOTY2ZS0wMSwKKyAgLTguODg1MjEwNTk5ODIwMDIzZS0wMSwgICA0LjU4ODM1ODM3NzExNTQ5MWUtMDEsCisgIC04Ljg4NDMzMDYyOTc4MzcxM2UtMDEsICAgNC41OTAwNjIwMTA1NDkxOTZlLTAxLAorICAtOC44ODM0NTAzMzMwOTU5NjRlLTAxLCAgIDQuNTkxNzY1NDc1MjE5NDQxZS0wMSwKKyAgLTguODgyNTY5NzA5Nzg5MTM5ZS0wMSwgICA0LjU5MzQ2ODc3MTA2MzU5NmUtMDEsCisgIC04Ljg4MTY4ODc1OTg5NTYxN2UtMDEsICAgNC41OTUxNzE4OTgwMTkwMzVlLTAxLAorICAtOC44ODA4MDc0ODM0NDc3ODllLTAxLCAgIDQuNTk2ODc0ODU2MDIzMTM5ZS0wMSwKKyAgLTguODc5OTI1ODgwNDc4MDU2ZS0wMSwgICA0LjU5ODU3NzY0NTAxMzI5NWUtMDEsCisgIC04Ljg3OTA0Mzk1MTAxODgzMmUtMDEsICAgNC42MDAyODAyNjQ5MjY4OTZlLTAxLAorICAtOC44NzgxNjE2OTUxMDI1NDRlLTAxLCAgIDQuNjAxOTgyNzE1NzAxMzQzZS0wMSwKKyAgLTguODc3Mjc5MTEyNzYxNjMwZS0wMSwgICA0LjYwMzY4NDk5NzI3NDA0MGUtMDEsCisgIC04Ljg3NjM5NjIwNDAyODUzOWUtMDEsICAgNC42MDUzODcxMDk1ODI0MDBlLTAxLAorICAtOC44NzU1MTI5Njg5MzU3MzRlLTAxLCAgIDQuNjA3MDg5MDUyNTYzODQxZS0wMSwKKyAgLTguODc0NjI5NDA3NTE1Njg4ZS0wMSwgICA0LjYwODc5MDgyNjE1NTc4N2UtMDEsCisgIC04Ljg3Mzc0NTUxOTgwMDg4OWUtMDEsICAgNC42MTA0OTI0MzAyOTU2NjllLTAxLAorICAtOC44NzI4NjEzMDU4MjM4MzFlLTAxLCAgIDQuNjEyMTkzODY0OTIwOTI0ZS0wMSwKKyAgLTguODcxOTc2NzY1NjE3MDI5ZS0wMSwgICA0LjYxMzg5NTEyOTk2ODk5NWUtMDEsCisgIC04Ljg3MTA5MTg5OTIxMzAwMmUtMDEsICAgNC42MTU1OTYyMjUzNzczMzFlLTAxLAorICAtOC44NzAyMDY3MDY2NDQyODRlLTAxLCAgIDQuNjE3Mjk3MTUxMDgzMzg4ZS0wMSwKKyAgLTguODY5MzIxMTg3OTQzNDIyZS0wMSwgICA0LjYxODk5NzkwNzAyNDYyN2UtMDEsCisgIC04Ljg2ODQzNTM0MzE0Mjk3NGUtMDEsICAgNC42MjA2OTg0OTMxMzg1MThlLTAxLAorICAtOC44Njc1NDkxNzIyNzU1MDhlLTAxLCAgIDQuNjIyMzk4OTA5MzYyNTMzZS0wMSwKKyAgLTguODY2NjYyNjc1MzczNjEwZS0wMSwgICA0LjYyNDA5OTE1NTYzNDE1NGUtMDEsCisgIC04Ljg2NTc3NTg1MjQ2OTg3MGUtMDEsICAgNC42MjU3OTkyMzE4OTA4NjhlLTAxLAorICAtOC44NjQ4ODg3MDM1OTY4OTZlLTAxLCAgIDQuNjI3NDk5MTM4MDcwMTY3ZS0wMSwKKyAgLTguODY0MDAxMjI4Nzg3MzA2ZS0wMSwgICA0LjYyOTE5ODg3NDEwOTU1MWUtMDEsCisgIC04Ljg2MzExMzQyODA3MzcyOGUtMDEsICAgNC42MzA4OTg0Mzk5NDY1MjVlLTAxLAorICAtOC44NjIyMjUzMDE0ODg4MDZlLTAxLCAgIDQuNjMyNTk3ODM1NTE4NjAxZS0wMSwKKyAgLTguODYxMzM2ODQ5MDY1MTkzZS0wMSwgICA0LjYzNDI5NzA2MDc2MzI5OGUtMDEsCisgIC04Ljg2MDQ0ODA3MDgzNTU1NmUtMDEsICAgNC42MzU5OTYxMTU2MTgxNDBlLTAxLAorICAtOC44NTk1NTg5NjY4MzI1NzBlLTAxLCAgIDQuNjM3Njk1MDAwMDIwNjU2ZS0wMSwKKyAgLTguODU4NjY5NTM3MDg4OTI4ZS0wMSwgICA0LjYzOTM5MzcxMzkwODM4NWUtMDEsCisgIC04Ljg1Nzc3OTc4MTYzNzMyOWUtMDEsICAgNC42NDEwOTIyNTcyMTg4NzBlLTAxLAorICAtOC44NTY4ODk3MDA1MTA0OTBlLTAxLCAgIDQuNjQyNzkwNjI5ODg5NjU4ZS0wMSwKKyAgLTguODU1OTk5MjkzNzQxMTM0ZS0wMSwgICA0LjY0NDQ4ODgzMTg1ODMwN2UtMDEsCisgIC04Ljg1NTEwODU2MTM2MjAwMGUtMDEsICAgNC42NDYxODY4NjMwNjIzNzhlLTAxLAorICAtOC44NTQyMTc1MDM0MDU4MzdlLTAxLCAgIDQuNjQ3ODg0NzIzNDM5NDQwZS0wMSwKKyAgLTguODUzMzI2MTE5OTA1NDA2ZS0wMSwgICA0LjY0OTU4MjQxMjkyNzA2N2UtMDEsCisgIC04Ljg1MjQzNDQxMDg5MzQ4M2UtMDEsICAgNC42NTEyNzk5MzE0NjI4MzllLTAxLAorICAtOC44NTE1NDIzNzY0MDI4NTFlLTAxLCAgIDQuNjUyOTc3Mjc4OTg0MzQ2ZS0wMSwKKyAgLTguODUwNjUwMDE2NDY2MzA5ZS0wMSwgICA0LjY1NDY3NDQ1NTQyOTE3OGUtMDEsCisgIC04Ljg0OTc1NzMzMTExNjY2N2UtMDEsICAgNC42NTYzNzE0NjA3MzQ5MzdlLTAxLAorICAtOC44NDg4NjQzMjAzODY3NDZlLTAxLCAgIDQuNjU4MDY4Mjk0ODM5MjI3ZS0wMSwKKyAgLTguODQ3OTcwOTg0MzA5Mzc4ZS0wMSwgICA0LjY1OTc2NDk1NzY3OTY2MmUtMDEsCisgIC04Ljg0NzA3NzMyMjkxNzQxMGUtMDEsICAgNC42NjE0NjE0NDkxOTM4NTllLTAxLAorICAtOC44NDYxODMzMzYyNDM2OTllLTAxLCAgIDQuNjYzMTU3NzY5MzE5NDQ0ZS0wMSwKKyAgLTguODQ1Mjg5MDI0MzIxMTE1ZS0wMSwgICA0LjY2NDg1MzkxNzk5NDA0OWUtMDEsCisgIC04Ljg0NDM5NDM4NzE4MjUzOGUtMDEsICAgNC42NjY1NDk4OTUxNTUzMDllLTAxLAorICAtOC44NDM0OTk0MjQ4NjA4NjFlLTAxLCAgIDQuNjY4MjQ1NzAwNzQwODcwZS0wMSwKKyAgLTguODQyNjA0MTM3Mzg4OTkyZS0wMSwgICA0LjY2OTk0MTMzNDY4ODM4MGUtMDEsCisgIC04Ljg0MTcwODUyNDc5OTg0NWUtMDEsICAgNC42NzE2MzY3OTY5MzU0OThlLTAxLAorICAtOC44NDA4MTI1ODcxMjYzNTBlLTAxLCAgIDQuNjczMzMyMDg3NDE5ODg0ZS0wMSwKKyAgLTguODM5OTE2MzI0NDAxNDQ5ZS0wMSwgICA0LjY3NTAyNzIwNjA3OTIwOWUtMDEsCisgIC04LjgzOTAxOTczNjY1ODA5NWUtMDEsICAgNC42NzY3MjIxNTI4NTExNDhlLTAxLAorICAtOC44MzgxMjI4MjM5MjkyNTFlLTAxLCAgIDQuNjc4NDE2OTI3NjczMzgyZS0wMSwKKyAgLTguODM3MjI1NTg2MjQ3ODk3ZS0wMSwgICA0LjY4MDExMTUzMDQ4MzU5OGUtMDEsCisgIC04LjgzNjMyODAyMzY0NzAxOWUtMDEsICAgNC42ODE4MDU5NjEyMTk0OTNlLTAxLAorICAtOC44MzU0MzAxMzYxNTk2MTllLTAxLCAgIDQuNjgzNTAwMjE5ODE4NzY1ZS0wMSwKKyAgLTguODM0NTMxOTIzODE4NzA5ZS0wMSwgICA0LjY4NTE5NDMwNjIxOTEyM2UtMDEsCisgIC04LjgzMzYzMzM4NjY1NzMxNmUtMDEsICAgNC42ODY4ODgyMjAzNTgyNzllLTAxLAorICAtOC44MzI3MzQ1MjQ3MDg0NzRlLTAxLCAgIDQuNjg4NTgxOTYyMTczOTUzZS0wMSwKKyAgLTguODMxODM1MzM4MDA1MjM0ZS0wMSwgICA0LjY5MDI3NTUzMTYwMzg3MWUtMDEsCisgIC04LjgzMDkzNTgyNjU4MDY1NGUtMDEsICAgNC42OTE5Njg5Mjg1ODU3NjZlLTAxLAorICAtOC44MzAwMzU5OTA0Njc4MDhlLTAxLCAgIDQuNjkzNjYyMTUzMDU3Mzc1ZS0wMSwKKyAgLTguODI5MTM1ODI5Njk5NzgwZS0wMSwgICA0LjY5NTM1NTIwNDk1NjQ0NWUtMDEsCisgIC04LjgyODIzNTM0NDMwOTY2NmUtMDEsICAgNC42OTcwNDgwODQyMjA3MjVlLTAxLAorICAtOC44MjczMzQ1MzQzMzA1NzZlLTAxLCAgIDQuNjk4NzQwNzkwNzg3OTc0ZS0wMSwKKyAgLTguODI2NDMzMzk5Nzk1NjI4ZS0wMSwgICA0LjcwMDQzMzMyNDU5NTk1NmUtMDEsCisgIC04LjgyNTUzMTk0MDczNzk1NWUtMDEsICAgNC43MDIxMjU2ODU1ODI0NDJlLTAxLAorICAtOC44MjQ2MzAxNTcxOTA3MDJlLTAxLCAgIDQuNzAzODE3ODczNjg1MjA3ZS0wMSwKKyAgLTguODIzNzI4MDQ5MTg3MDIzZS0wMSwgICA0LjcwNTUwOTg4ODg0MjAzNWUtMDEsCisgIC04LjgyMjgyNTYxNjc2MDA4N2UtMDEsICAgNC43MDcyMDE3MzA5OTA3MTZlLTAxLAorICAtOC44MjE5MjI4NTk5NDMwNzRlLTAxLCAgIDQuNzA4ODkzNDAwMDY5MDQ1ZS0wMSwKKyAgLTguODIxMDE5Nzc4NzY5MTc2ZS0wMSwgICA0LjcxMDU4NDg5NjAxNDgyNWUtMDEsCisgIC04LjgyMDExNjM3MzI3MTU5NmUtMDEsICAgNC43MTIyNzYyMTg3NjU4NjNlLTAxLAorICAtOC44MTkyMTI2NDM0ODM1NTBlLTAxLCAgIDQuNzEzOTY3MzY4MjU5OTc2ZS0wMSwKKyAgLTguODE4MzA4NTg5NDM4MjY2ZS0wMSwgICA0LjcxNTY1ODM0NDQzNDk4NGUtMDEsCisgIC04LjgxNzQwNDIxMTE2ODk4M2UtMDEsICAgNC43MTczNDkxNDcyMjg3MTRlLTAxLAorICAtOC44MTY0OTk1MDg3MDg5NTNlLTAxLCAgIDQuNzE5MDM5Nzc2NTc5MDAyZS0wMSwKKyAgLTguODE1NTk0NDgyMDkxNDM4ZS0wMSwgICA0LjcyMDczMDIzMjQyMzY4N2UtMDEsCisgIC04LjgxNDY4OTEzMTM0OTcxNGUtMDEsICAgNC43MjI0MjA1MTQ3MDA2MTVlLTAxLAorICAtOC44MTM3ODM0NTY1MTcwNjllLTAxLCAgIDQuNzI0MTEwNjIzMzQ3NjQwZS0wMSwKKyAgLTguODEyODc3NDU3NjI2ODAxZS0wMSwgICA0LjcyNTgwMDU1ODMwMjYyMmUtMDEsCisgIC04LjgxMTk3MTEzNDcxMjIyMWUtMDEsICAgNC43Mjc0OTAzMTk1MDM0MjhlLTAxLAorICAtOC44MTEwNjQ0ODc4MDY2NTFlLTAxLCAgIDQuNzI5MTc5OTA2ODg3OTI4ZS0wMSwKKyAgLTguODEwMTU3NTE2OTQzNDI5ZS0wMSwgICA0LjczMDg2OTMyMDM5NDAwMWUtMDEsCisgIC04LjgwOTI1MDIyMjE1NTg5OWUtMDEsICAgNC43MzI1NTg1NTk5NTk1MzNlLTAxLAorICAtOC44MDgzNDI2MDM0Nzc0MjBlLTAxLCAgIDQuNzM0MjQ3NjI1NTIyNDE1ZS0wMSwKKyAgLTguODA3NDM0NjYwOTQxMzYzZS0wMSwgICA0LjczNTkzNjUxNzAyMDU0NWUtMDEsCisgIC04LjgwNjUyNjM5NDU4MTExMGUtMDEsICAgNC43Mzc2MjUyMzQzOTE4MjhlLTAxLAorICAtOC44MDU2MTc4MDQ0MzAwNTdlLTAxLCAgIDQuNzM5MzEzNzc3NTc0MTc0ZS0wMSwKKyAgLTguODA0NzA4ODkwNTIxNjA4ZS0wMSwgICA0Ljc0MTAwMjE0NjUwNTUwMGUtMDEsCisgIC04LjgwMzc5OTY1Mjg4OTE4MmUtMDEsICAgNC43NDI2OTAzNDExMjM3MzBlLTAxLAorICAtOC44MDI4OTAwOTE1NjYyMTBlLTAxLCAgIDQuNzQ0Mzc4MzYxMzY2NzkyZS0wMSwKKyAgLTguODAxOTgwMjA2NTg2MTMyZS0wMSwgICA0Ljc0NjA2NjIwNzE3MjYyNmUtMDEsCisgIC04LjgwMTA2OTk5Nzk4MjQwNGUtMDEsICAgNC43NDc3NTM4Nzg0NzkxNzFlLTAxLAorICAtOC44MDAxNTk0NjU3ODg0OTFlLTAxLCAgIDQuNzQ5NDQxMzc1MjI0Mzc4ZS0wMSwKKyAgLTguNzk5MjQ4NjEwMDM3ODY5ZS0wMSwgICA0Ljc1MTEyODY5NzM0NjIwM2UtMDEsCisgIC04Ljc5ODMzNzQzMDc2NDAyOWUtMDEsICAgNC43NTI4MTU4NDQ3ODI2MDdlLTAxLAorICAtOC43OTc0MjU5MjgwMDA0NzRlLTAxLCAgIDQuNzU0NTAyODE3NDcxNTU5ZS0wMSwKKyAgLTguNzk2NTE0MTAxNzgwNzE2ZS0wMSwgICA0Ljc1NjE4OTYxNTM1MTAzM2UtMDEsCisgIC04Ljc5NTYwMTk1MjEzODI3OWUtMDEsICAgNC43NTc4NzYyMzgzNTkwMTFlLTAxLAorICAtOC43OTQ2ODk0NzkxMDY3MDJlLTAxLCAgIDQuNzU5NTYyNjg2NDMzNDgxZS0wMSwKKyAgLTguNzkzNzc2NjgyNzE5NTMzZS0wMSwgICA0Ljc2MTI0ODk1OTUxMjQzNmUtMDEsCisgIC04Ljc5Mjg2MzU2MzAxMDMzMmUtMDEsICAgNC43NjI5MzUwNTc1MzM4NzdlLTAxLAorICAtOC43OTE5NTAxMjAwMTI2NzVlLTAxLCAgIDQuNzY0NjIwOTgwNDM1ODEyZS0wMSwKKyAgLTguNzkxMDM2MzUzNzYwMTQzZS0wMSwgICA0Ljc2NjMwNjcyODE1NjI1M2UtMDEsCisgIC04Ljc5MDEyMjI2NDI4NjMzNWUtMDEsICAgNC43Njc5OTIzMDA2MzMyMjFlLTAxLAorICAtOC43ODkyMDc4NTE2MjQ4NThlLTAxLCAgIDQuNzY5Njc3Njk3ODA0NzQyZS0wMSwKKyAgLTguNzg4MjkzMTE1ODA5MzM0ZS0wMSwgICA0Ljc3MTM2MjkxOTYwODg0OGUtMDEsCisgIC04Ljc4NzM3ODA1Njg3MzM5NGUtMDEsICAgNC43NzMwNDc5NjU5ODM1NzllLTAxLAorICAtOC43ODY0NjI2NzQ4NTA2ODFlLTAxLCAgIDQuNzc0NzMyODM2ODY2OTgxZS0wMSwKKyAgLTguNzg1NTQ2OTY5Nzc0ODU0ZS0wMSwgICA0Ljc3NjQxNzUzMjE5NzEwNWUtMDEsCisgIC04Ljc4NDYzMDk0MTY3OTU3OWUtMDEsICAgNC43NzgxMDIwNTE5MTIwMTBlLTAxLAorICAtOC43ODM3MTQ1OTA1OTg1MzVlLTAxLCAgIDQuNzc5Nzg2Mzk1OTQ5NzYyZS0wMSwKKyAgLTguNzgyNzk3OTE2NTY1NDE2ZS0wMSwgICA0Ljc4MTQ3MDU2NDI0ODQzMGUtMDEsCisgIC04Ljc4MTg4MDkxOTYxMzkyMmUtMDEsICAgNC43ODMxNTQ1NTY3NDYwOTVlLTAxLAorICAtOC43ODA5NjM1OTk3Nzc3NzFlLTAxLCAgIDQuNzg0ODM4MzczMzgwODQwZS0wMSwKKyAgLTguNzgwMDQ1OTU3MDkwNjkxZS0wMSwgICA0Ljc4NjUyMjAxNDA5MDc1NWUtMDEsCisgIC04Ljc3OTEyNzk5MTU4NjQxOGUtMDEsICAgNC43ODgyMDU0Nzg4MTM5MzllLTAxLAorICAtOC43NzgyMDk3MDMyOTg3MDVlLTAxLCAgIDQuNzg5ODg4NzY3NDg4NDk1ZS0wMSwKKyAgLTguNzc3MjkxMDkyMjYxMzE2ZS0wMSwgICA0Ljc5MTU3MTg4MDA1MjUzM2UtMDEsCisgIC04Ljc3NjM3MjE1ODUwODAyMmUtMDEsICAgNC43OTMyNTQ4MTY0NDQxNzFlLTAxLAorICAtOC43NzU0NTI5MDIwNzI2MTRlLTAxLCAgIDQuNzk0OTM3NTc2NjAxNTMwZS0wMSwKKyAgLTguNzc0NTMzMzIyOTg4ODg2ZS0wMSwgICA0Ljc5NjYyMDE2MDQ2Mjc0MmUtMDEsCisgIC04Ljc3MzYxMzQyMTI5MDY1MWUtMDEsICAgNC43OTgzMDI1Njc5NjU5NDJlLTAxLAorICAtOC43NzI2OTMxOTcwMTE3MzJlLTAxLCAgIDQuNzk5OTg0Nzk5MDQ5MjczZS0wMSwKKyAgLTguNzcxNzcyNjUwMTg1OTU5ZS0wMSwgICA0LjgwMTY2Njg1MzY1MDg4NGUtMDEsCisgIC04Ljc3MDg1MTc4MDg0NzE4NGUtMDEsICAgNC44MDMzNDg3MzE3MDg5MzBlLTAxLAorICAtOC43Njk5MzA1ODkwMjkyNTllLTAxLCAgIDQuODA1MDMwNDMzMTYxNTc1ZS0wMSwKKyAgLTguNzY5MDA5MDc0NzY2MDU3ZS0wMSwgICA0LjgwNjcxMTk1Nzk0Njk4NmUtMDEsCisgIC04Ljc2ODA4NzIzODA5MTQ1N2UtMDEsICAgNC44MDgzOTMzMDYwMDMzNDBlLTAxLAorICAtOC43NjcxNjUwNzkwMzkzNTRlLTAxLCAgIDQuODEwMDc0NDc3MjY4ODE2ZS0wMSwKKyAgLTguNzY2MjQyNTk3NjQzNjUzZS0wMSwgICA0LjgxMTc1NTQ3MTY4MTYwM2UtMDEsCisgIC04Ljc2NTMxOTc5MzkzODI3MWUtMDEsICAgNC44MTM0MzYyODkxNzk4OTdlLTAxLAorICAtOC43NjQzOTY2Njc5NTcxMzZlLTAxLCAgIDQuODE1MTE2OTI5NzAxODk5ZS0wMSwKKyAgLTguNzYzNDczMjE5NzM0MTkwZS0wMSwgICA0LjgxNjc5NzM5MzE4NTgxNWUtMDEsCisgIC04Ljc2MjU0OTQ0OTMwMzM4NWUtMDEsICAgNC44MTg0Nzc2Nzk1Njk4NjBlLTAxLAorICAtOC43NjE2MjUzNTY2OTg2ODVlLTAxLCAgIDQuODIwMTU3Nzg4NzkyMjU2ZS0wMSwKKyAgLTguNzYwNzAwOTQxOTU0MDY2ZS0wMSwgICA0LjgyMTgzNzcyMDc5MTIyN2UtMDEsCisgIC04Ljc1OTc3NjIwNTEwMzUxOGUtMDEsICAgNC44MjM1MTc0NzU1MDUwMTBlLTAxLAorICAtOC43NTg4NTExNDYxODEwMzhlLTAxLCAgIDQuODI1MTk3MDUyODcxODQ0ZS0wMSwKKyAgLTguNzU3OTI1NzY1MjIwNjM5ZS0wMSwgICA0LjgyNjg3NjQ1MjgyOTk3NWUtMDEsCisgIC04Ljc1NzAwMDA2MjI1NjM0NmUtMDEsICAgNC44Mjg1NTU2NzUzMTc2NTdlLTAxLAorICAtOC43NTYwNzQwMzczMjIxOTNlLTAxLCAgIDQuODMwMjM0NzIwMjczMTQ5ZS0wMSwKKyAgLTguNzU1MTQ3NjkwNDUyMjI5ZS0wMSwgICA0LjgzMTkxMzU4NzYzNDcxOWUtMDEsCisgIC04Ljc1NDIyMTAyMTY4MDUwOWUtMDEsICAgNC44MzM1OTIyNzczNDA2MzhlLTAxLAorICAtOC43NTMyOTQwMzEwNDExMDllLTAxLCAgIDQuODM1MjcwNzg5MzI5MTg3ZS0wMSwKKyAgLTguNzUyMzY2NzE4NTY4MTA5ZS0wMSwgICA0LjgzNjk0OTEyMzUzODY1MWUtMDEsCisgIC04Ljc1MTQzOTA4NDI5NTYwNGUtMDEsICAgNC44Mzg2MjcyNzk5MDczMjNlLTAxLAorICAtOC43NTA1MTExMjgyNTc3MDBlLTAxLCAgIDQuODQwMzA1MjU4MzczNTAwZS0wMSwKKyAgLTguNzQ5NTgyODUwNDg4NTE2ZS0wMSwgICA0Ljg0MTk4MzA1ODg3NTQ5MGUtMDEsCisgIC04Ljc0ODY1NDI1MTAyMjE4M2UtMDEsICAgNC44NDM2NjA2ODEzNTE2MDRlLTAxLAorICAtOC43NDc3MjUzMjk4OTI4NDFlLTAxLCAgIDQuODQ1MzM4MTI1NzQwMTYyZS0wMSwKKyAgLTguNzQ2Nzk2MDg3MTM0NjQ1ZS0wMSwgICA0Ljg0NzAxNTM5MTk3OTQ4N2UtMDEsCisgIC04Ljc0NTg2NjUyMjc4MTc2MWUtMDEsICAgNC44NDg2OTI0ODAwMDc5MTFlLTAxLAorICAtOC43NDQ5MzY2MzY4NjgzNjZlLTAxLCAgIDQuODUwMzY5Mzg5NzYzNzczZS0wMSwKKyAgLTguNzQ0MDA2NDI5NDI4NjQ4ZS0wMSwgICA0Ljg1MjA0NjEyMTE4NTQxOGUtMDEsCisgIC04Ljc0MzA3NTkwMDQ5NjgxMGUtMDEsICAgNC44NTM3MjI2NzQyMTExOThlLTAxLAorICAtOC43NDIxNDUwNTAxMDcwNjNlLTAxLCAgIDQuODU1Mzk5MDQ4Nzc5NDcwZS0wMSwKKyAgLTguNzQxMjEzODc4MjkzNjMzZS0wMSwgICA0Ljg1NzA3NTI0NDgyODU5OGUtMDEsCisgIC04Ljc0MDI4MjM4NTA5MDc1N2UtMDEsICAgNC44NTg3NTEyNjIyOTY5NTNlLTAxLAorICAtOC43MzkzNTA1NzA1MzI2ODJlLTAxLCAgIDQuODYwNDI3MTAxMTIyOTEzZS0wMSwKKyAgLTguNzM4NDE4NDM0NjUzNjY5ZS0wMSwgICA0Ljg2MjEwMjc2MTI0NDg2NGUtMDEsCisgIC04LjczNzQ4NTk3NzQ4Nzk4OWUtMDEsICAgNC44NjM3NzgyNDI2MDExOTRlLTAxLAorICAtOC43MzY1NTMxOTkwNjk5MjZlLTAxLCAgIDQuODY1NDUzNTQ1MTMwMzAzZS0wMSwKKyAgLTguNzM1NjIwMDk5NDMzNzc4ZS0wMSwgICA0Ljg2NzEyODY2ODc3MDU5MmUtMDEsCisgIC04LjczNDY4NjY3ODYxMzg0OWUtMDEsICAgNC44Njg4MDM2MTM0NjA0NzNlLTAxLAorICAtOC43MzM3NTI5MzY2NDQ0NjBlLTAxLCAgIDQuODcwNDc4Mzc5MTM4MzY0ZS0wMSwKKyAgLTguNzMyODE4ODczNTU5OTQyZS0wMSwgICA0Ljg3MjE1Mjk2NTc0MjY4OGUtMDEsCisgIC04LjczMTg4NDQ4OTM5NDYzOGUtMDEsICAgNC44NzM4MjczNzMyMTE4NzRlLTAxLAorICAtOC43MzA5NDk3ODQxODI5MDFlLTAxLCAgIDQuODc1NTAxNjAxNDg0MzYwZS0wMSwKKyAgLTguNzMwMDE0NzU3OTU5MDk5ZS0wMSwgICA0Ljg3NzE3NTY1MDQ5ODU4OGUtMDEsCisgIC04LjcyOTA3OTQxMDc1NzYxMWUtMDEsICAgNC44Nzg4NDk1MjAxOTMwMTBlLTAxLAorICAtOC43MjgxNDM3NDI2MTI4MjRlLTAxLCAgIDQuODgwNTIzMjEwNTA2MDgzZS0wMSwKKyAgLTguNzI3MjA3NzUzNTU5MTQzZS0wMSwgICA0Ljg4MjE5NjcyMTM3NjI2OGUtMDEsCisgIC04LjcyNjI3MTQ0MzYzMDk4MGUtMDEsICAgNC44ODM4NzAwNTI3NDIwMzVlLTAxLAorICAtOC43MjUzMzQ4MTI4NjI3NjJlLTAxLCAgIDQuODg1NTQzMjA0NTQxODYyZS0wMSwKKyAgLTguNzI0Mzk3ODYxMjg4OTIzZS0wMSwgICA0Ljg4NzIxNjE3NjcxNDIzMWUtMDEsCisgIC04LjcyMzQ2MDU4ODk0MzkxNWUtMDEsICAgNC44ODg4ODg5NjkxOTc2MzJlLTAxLAorICAtOC43MjI1MjI5OTU4NjIxOTllLTAxLCAgIDQuODkwNTYxNTgxOTMwNTYwZS0wMSwKKyAgLTguNzIxNTg1MDgyMDc4MjQ1ZS0wMSwgICA0Ljg5MjIzNDAxNDg1MTUyMGUtMDEsCisgIC04LjcyMDY0Njg0NzYyNjUzOWUtMDEsICAgNC44OTM5MDYyNjc4OTkwMTllLTAxLAorICAtOC43MTk3MDgyOTI1NDE1NzhlLTAxLCAgIDQuODk1NTc4MzQxMDExNTc0ZS0wMSwKKyAgLTguNzE4NzY5NDE2ODU3ODY5ZS0wMSwgICA0Ljg5NzI1MDIzNDEyNzcwOWUtMDEsCisgIC04LjcxNzgzMDIyMDYwOTkzMWUtMDEsICAgNC44OTg5MjE5NDcxODU5NTJlLTAxLAorICAtOC43MTY4OTA3MDM4MzIyOTdlLTAxLCAgIDQuOTAwNTkzNDgwMTI0ODM5ZS0wMSwKKyAgLTguNzE1OTUwODY2NTU5NTEwZS0wMSwgICA0LjkwMjI2NDgzMjg4MjkxMmUtMDEsCisgIC04LjcxNTAxMDcwODgyNjEyNWUtMDEsICAgNC45MDM5MzYwMDUzOTg3MjBlLTAxLAorICAtOC43MTQwNzAyMzA2NjY3MTBlLTAxLCAgIDQuOTA1NjA2OTk3NjEwODIwZS0wMSwKKyAgLTguNzEzMTI5NDMyMTE1ODQwZS0wMSwgICA0LjkwNzI3NzgwOTQ1Nzc3NGUtMDEsCisgIC04LjcxMjE4ODMxMzIwODExMGUtMDEsICAgNC45MDg5NDg0NDA4NzgxNTFlLTAxLAorICAtOC43MTEyNDY4NzM5NzgxMTllLTAxLCAgIDQuOTEwNjE4ODkxODEwNTI2ZS0wMSwKKyAgLTguNzEwMzA1MTE0NDYwNDgzZS0wMSwgICA0LjkxMjI4OTE2MjE5MzQ4M2UtMDEsCisgIC04LjcwOTM2MzAzNDY4OTgyOGUtMDEsICAgNC45MTM5NTkyNTE5NjU2MDhlLTAxLAorICAtOC43MDg0MjA2MzQ3MDA3OTBlLTAxLCAgIDQuOTE1NjI5MTYxMDY1NDk5ZS0wMSwKKyAgLTguNzA3NDc3OTE0NTI4MDE4ZS0wMSwgICA0LjkxNzI5ODg4OTQzMTc1OGUtMDEsCisgIC04LjcwNjUzNDg3NDIwNjE3NGUtMDEsICAgNC45MTg5Njg0MzcwMDI5OTNlLTAxLAorICAtOC43MDU1OTE1MTM3Njk5MzJlLTAxLCAgIDQuOTIwNjM3ODAzNzE3ODIwZS0wMSwKKyAgLTguNzA0NjQ3ODMzMjUzOTc3ZS0wMSwgICA0LjkyMjMwNjk4OTUxNDg2MGUtMDEsCisgIC04LjcwMzcwMzgzMjY5MzAwM2UtMDEsICAgNC45MjM5NzU5OTQzMzI3NDRlLTAxLAorICAtOC43MDI3NTk1MTIxMjE3MTllLTAxLCAgIDQuOTI1NjQ0ODE4MTEwMTA2ZS0wMSwKKyAgLTguNzAxODE0ODcxNTc0ODQ2ZS0wMSwgICA0LjkyNzMxMzQ2MDc4NTU4OGUtMDEsCisgIC04LjcwMDg2OTkxMTA4NzExNWUtMDEsICAgNC45Mjg5ODE5MjIyOTc4NDBlLTAxLAorICAtOC42OTk5MjQ2MzA2OTMyNjllLTAxLCAgIDQuOTMwNjUwMjAyNTg1NTE3ZS0wMSwKKyAgLTguNjk4OTc5MDMwNDI4MDYzZS0wMSwgICA0LjkzMjMxODMwMTU4NzI3OWUtMDEsCisgIC04LjY5ODAzMzExMDMyNjI2NmUtMDEsICAgNC45MzM5ODYyMTkyNDE3OThlLTAxLAorICAtOC42OTcwODY4NzA0MjI2NTdlLTAxLCAgIDQuOTM1NjUzOTU1NDg3NzQ4ZS0wMSwKKyAgLTguNjk2MTQwMzEwNzUyMDIzZS0wMSwgICA0LjkzNzMyMTUxMDI2MzgxMGUtMDEsCisgIC04LjY5NTE5MzQzMTM0OTE2OWUtMDEsICAgNC45Mzg5ODg4ODM1MDg2NzVlLTAxLAorICAtOC42OTQyNDYyMzIyNDg5MDllLTAxLCAgIDQuOTQwNjU2MDc1MTYxMDM2ZS0wMSwKKyAgLTguNjkzMjk4NzEzNDg2MDY4ZS0wMSwgICA0Ljk0MjMyMzA4NTE1OTU5N2UtMDEsCisgIC04LjY5MjM1MDg3NTA5NTQ4NGUtMDEsICAgNC45NDM5ODk5MTM0NDMwNjZlLTAxLAorICAtOC42OTE0MDI3MTcxMTIwMDZlLTAxLCAgIDQuOTQ1NjU2NTU5OTUwMTYwZS0wMSwKKyAgLTguNjkwNDU0MjM5NTcwNDk1ZS0wMSwgICA0Ljk0NzMyMzAyNDYxOTU5OWUtMDEsCisgIC04LjY4OTUwNTQ0MjUwNTgyNGUtMDEsICAgNC45NDg5ODkzMDczOTAxMTNlLTAxLAorICAtOC42ODg1NTYzMjU5NTI4NzllLTAxLCAgIDQuOTUwNjU1NDA4MjAwNDM2ZS0wMSwKKyAgLTguNjg3NjA2ODg5OTQ2NTUzZS0wMSwgICA0Ljk1MjMyMTMyNjk4OTMxMmUtMDEsCisgIC04LjY4NjY1NzEzNDUyMTc1N2UtMDEsICAgNC45NTM5ODcwNjM2OTU0OTBlLTAxLAorICAtOC42ODU3MDcwNTk3MTM0MDllLTAxLCAgIDQuOTU1NjUyNjE4MjU3NzI1ZS0wMSwKKyAgLTguNjg0NzU2NjY1NTU2NDQxZS0wMSwgICA0Ljk1NzMxNzk5MDYxNDc4MGUtMDEsCisgIC04LjY4MzgwNTk1MjA4NTc5OGUtMDEsICAgNC45NTg5ODMxODA3MDU0MjJlLTAxLAorICAtOC42ODI4NTQ5MTkzMzY0MzNlLTAxLCAgIDQuOTYwNjQ4MTg4NDY4NDI5ZS0wMSwKKyAgLTguNjgxOTAzNTY3MzQzMzEzZS0wMSwgICA0Ljk2MjMxMzAxMzg0MjU4MmUtMDEsCisgIC04LjY4MDk1MTg5NjE0MTQxN2UtMDEsICAgNC45NjM5Nzc2NTY3NjY2NzJlLTAxLAorICAtOC42Nzk5OTk5MDU3NjU3MzVlLTAxLCAgIDQuOTY1NjQyMTE3MTc5NDkzZS0wMSwKKyAgLTguNjc5MDQ3NTk2MjUxMjY5ZS0wMSwgICA0Ljk2NzMwNjM5NTAxOTg0OGUtMDEsCisgIC04LjY3ODA5NDk2NzYzMzAzM2UtMDEsICAgNC45Njg5NzA0OTAyMjY1NDVlLTAxLAorICAtOC42NzcxNDIwMTk5NDYwNTFlLTAxLCAgIDQuOTcwNjM0NDAyNzM4NDAzZS0wMSwKKyAgLTguNjc2MTg4NzUzMjI1MzYyZS0wMSwgICA0Ljk3MjI5ODEzMjQ5NDI0MmUtMDEsCisgIC04LjY3NTIzNTE2NzUwNjAxNWUtMDEsICAgNC45NzM5NjE2Nzk0MzI4OTNlLTAxLAorICAtOC42NzQyODEyNjI4MjMwNjllLTAxLCAgIDQuOTc1NjI1MDQzNDkzMTkxZS0wMSwKKyAgLTguNjczMzI3MDM5MjExNTk4ZS0wMSwgICA0Ljk3NzI4ODIyNDYxMzk3OWUtMDEsCisgIC04LjY3MjM3MjQ5NjcwNjY4NGUtMDEsICAgNC45Nzg5NTEyMjI3MzQxMDllLTAxLAorICAtOC42NzE0MTc2MzUzNDM0MjVlLTAxLCAgIDQuOTgwNjE0MDM3NzkyNDM0ZS0wMSwKKyAgLTguNjcwNDYyNDU1MTU2OTI2ZS0wMSwgICA0Ljk4MjI3NjY2OTcyNzgxOWUtMDEsCisgIC04LjY2OTUwNjk1NjE4MjMwOWUtMDEsICAgNC45ODM5MzkxMTg0NzkxMzJlLTAxLAorICAtOC42Njg1NTExMzg0NTQ3MDRlLTAxLCAgIDQuOTg1NjAxMzgzOTg1MjUxZS0wMSwKKyAgLTguNjY3NTk1MDAyMDA5MjU0ZS0wMSwgICA0Ljk4NzI2MzQ2NjE4NTA1OWUtMDEsCisgIC04LjY2NjYzODU0Njg4MTExMWUtMDEsICAgNC45ODg5MjUzNjUwMTc0NDZlLTAxLAorICAtOC42NjU2ODE3NzMxMDU0NDVlLTAxLCAgIDQuOTkwNTg3MDgwNDIxMzA5ZS0wMSwKKyAgLTguNjY0NzI0NjgwNzE3NDMwZS0wMSwgICA0Ljk5MjI0ODYxMjMzNTU1MWUtMDEsCisgIC04LjY2Mzc2NzI2OTc1MjI1OGUtMDEsICAgNC45OTM5MDk5NjA2OTkwODJlLTAxLAorICAtOC42NjI4MDk1NDAyNDUxMzBlLTAxLCAgIDQuOTk1NTcxMTI1NDUwODE4ZS0wMSwKKyAgLTguNjYxODUxNDkyMjMxMjU4ZS0wMSwgICA0Ljk5NzIzMjEwNjUyOTY4NWUtMDEsCisgIC04LjY2MDg5MzEyNTc0NTg2OGUtMDEsICAgNC45OTg4OTI5MDM4NzQ2MTNlLTAxLAorICAtOC42NTk5MzQ0NDA4MjQxOTVlLTAxLCAgIDUuMDAwNTUzNTE3NDI0NTM5ZS0wMSwKKyAgLTguNjU4OTc1NDM3NTAxNDg4ZS0wMSwgICA1LjAwMjIxMzk0NzExODQwN2UtMDEsCisgIC04LjY1ODAxNjExNTgxMzAwOGUtMDEsICAgNS4wMDM4NzQxOTI4OTUxNjZlLTAxLAorICAtOC42NTcwNTY0NzU3OTQwMjRlLTAxLCAgIDUuMDA1NTM0MjU0NjkzNzc0ZS0wMSwKKyAgLTguNjU2MDk2NTE3NDc5ODIwZS0wMSwgICA1LjAwNzE5NDEzMjQ1MzE5OWUtMDEsCisgIC04LjY1NTEzNjI0MDkwNTY5MWUtMDEsICAgNS4wMDg4NTM4MjYxMTI0MDdlLTAxLAorICAtOC42NTQxNzU2NDYxMDY5NDRlLTAxLCAgIDUuMDEwNTEzMzM1NjEwMzgwZS0wMSwKKyAgLTguNjUzMjE0NzMzMTE4ODk4ZS0wMSwgICA1LjAxMjE3MjY2MDg4NjEwMGUtMDEsCisgIC04LjY1MjI1MzUwMTk3Njg4MmUtMDEsICAgNS4wMTM4MzE4MDE4Nzg1NThlLTAxLAorICAtOC42NTEyOTE5NTI3MTYyMzhlLTAxLCAgIDUuMDE1NDkwNzU4NTI2NzU0ZS0wMSwKKyAgLTguNjUwMzMwMDg1MzcyMzE5ZS0wMSwgICA1LjAxNzE0OTUzMDc2OTY5MWUtMDEsCisgIC04LjY0OTM2Nzg5OTk4MDQ5MGUtMDEsICAgNS4wMTg4MDgxMTg1NDYzODNlLTAxLAorICAtOC42NDg0MDUzOTY1NzYxMjllLTAxLCAgIDUuMDIwNDY2NTIxNzk1ODQ3ZS0wMSwKKyAgLTguNjQ3NDQyNTc1MTk0NjI0ZS0wMSwgICA1LjAyMjEyNDc0MDQ1NzEwOGUtMDEsCisgIC04LjY0NjQ3OTQzNTg3MTM3NWUtMDEsICAgNS4wMjM3ODI3NzQ0NjkxOThlLTAxLAorICAtOC42NDU1MTU5Nzg2NDE3OTNlLTAxLCAgIDUuMDI1NDQwNjIzNzcxMTU3ZS0wMSwKKyAgLTguNjQ0NTUyMjAzNTQxMzA0ZS0wMSwgICA1LjAyNzA5ODI4ODMwMjAzMGUtMDEsCisgIC04LjY0MzU4ODExMDYwNTM0MGUtMDEsICAgNS4wMjg3NTU3NjgwMDA4NzBlLTAxLAorICAtOC42NDI2MjM2OTk4NjkzNTBlLTAxLCAgIDUuMDMwNDEzMDYyODA2NzM1ZS0wMSwKKyAgLTguNjQxNjU4OTcxMzY4NzkzZS0wMSwgICA1LjAzMjA3MDE3MjY1ODY4OWUtMDEsCisgIC04LjY0MDY5MzkyNTEzOTEzOGUtMDEsICAgNS4wMzM3MjcwOTc0OTU4MTBlLTAxLAorICAtOC42Mzk3Mjg1NjEyMTU4NjhlLTAxLCAgIDUuMDM1MzgzODM3MjU3MTc2ZS0wMSwKKyAgLTguNjM4NzYyODc5NjM0NDc1ZS0wMSwgICA1LjAzNzA0MDM5MTg4MTg3MWUtMDEsCisgIC04LjYzNzc5Njg4MDQzMDQ2N2UtMDEsICAgNS4wMzg2OTY3NjEzMDg5OTBlLTAxLAorICAtOC42MzY4MzA1NjM2MzkzNThlLTAxLCAgIDUuMDQwMzUyOTQ1NDc3NjMyZS0wMSwKKyAgLTguNjM1ODYzOTI5Mjk2NjgxZS0wMSwgICA1LjA0MjAwODk0NDMyNjkwM2UtMDEsCisgIC04LjYzNDg5Njk3NzQzNzk3MWUtMDEsICAgNS4wNDM2NjQ3NTc3OTU5MjBlLTAxLAorICAtOC42MzM5Mjk3MDgwOTg3ODRlLTAxLCAgIDUuMDQ1MzIwMzg1ODIzODAzZS0wMSwKKyAgLTguNjMyOTYyMTIxMzE0NjgyZS0wMSwgICA1LjA0Njk3NTgyODM0OTY3NmUtMDEsCisgIC04LjYzMTk5NDIxNzEyMTI0MmUtMDEsICAgNS4wNDg2MzEwODUzMTI2NzZlLTAxLAorICAtOC42MzEwMjU5OTU1NTQwNDllLTAxLCAgIDUuMDUwMjg2MTU2NjUxOTQxZS0wMSwKKyAgLTguNjMwMDU3NDU2NjQ4NzAzZS0wMSwgICA1LjA1MTk0MTA0MjMwNjYyMmUtMDEsCisgIC04LjYyOTA4ODYwMDQ0MDgxNGUtMDEsICAgNS4wNTM1OTU3NDIyMTU4NzNlLTAxLAorICAtOC42MjgxMTk0MjY5NjYwMDNlLTAxLCAgIDUuMDU1MjUwMjU2MzE4ODU0ZS0wMSwKKyAgLTguNjI3MTQ5OTM2MjU5OTA3ZS0wMSwgICA1LjA1NjkwNDU4NDU1NDczNGUtMDEsCisgIC04LjYyNjE4MDEyODM1ODE2N2UtMDEsICAgNS4wNTg1NTg3MjY4NjI2ODllLTAxLAorICAtOC42MjUyMTAwMDMyOTY0NDVlLTAxLCAgIDUuMDYwMjEyNjgzMTgxODk3ZS0wMSwKKyAgLTguNjI0MjM5NTYxMTEwNDA2ZS0wMSwgICA1LjA2MTg2NjQ1MzQ1MTU1MmUtMDEsCisgIC04LjYyMzI2ODgwMTgzNTczMWUtMDEsICAgNS4wNjM1MjAwMzc2MTA4NDhlLTAxLAorICAtOC42MjIyOTc3MjU1MDgxMTJlLTAxLCAgIDUuMDY1MTczNDM1NTk4OTg1ZS0wMSwKKyAgLTguNjIxMzI2MzMyMTYzMjU0ZS0wMSwgICA1LjA2NjgyNjY0NzM1NTE3NmUtMDEsCisgIC04LjYyMDM1NDYyMTgzNjg3MmUtMDEsICAgNS4wNjg0Nzk2NzI4MTg2MzJlLTAxLAorICAtOC42MTkzODI1OTQ1NjQ2OTNlLTAxLCAgIDUuMDcwMTMyNTExOTI4NTgyZS0wMSwKKyAgLTguNjE4NDEwMjUwMzgyNDUzZS0wMSwgICA1LjA3MTc4NTE2NDYyNDI1MmUtMDEsCisgIC04LjYxNzQzNzU4OTMyNTkwN2UtMDEsICAgNS4wNzM0Mzc2MzA4NDQ4NzllLTAxLAorICAtOC42MTY0NjQ2MTE0MzA4MTNlLTAxLCAgIDUuMDc1MDg5OTEwNTI5NzA5ZS0wMSwKKyAgLTguNjE1NDkxMzE2NzMyOTQ3ZS0wMSwgICA1LjA3Njc0MjAwMzYxNzk4OWUtMDEsCisgIC04LjYxNDUxNzcwNTI2ODA5M2UtMDEsICAgNS4wNzgzOTM5MTAwNDg5NzdlLTAxLAorICAtOC42MTM1NDM3NzcwNzIwNDllLTAxLCAgIDUuMDgwMDQ1NjI5NzYxOTQwZS0wMSwKKyAgLTguNjEyNTY5NTMyMTgwNjIyZS0wMSwgICA1LjA4MTY5NzE2MjY5NjE0NmUtMDEsCisgIC04LjYxMTU5NDk3MDYyOTYzNGUtMDEsICAgNS4wODMzNDg1MDg3OTA4NzRlLTAxLAorICAtOC42MTA2MjAwOTI0NTQ5MTVlLTAxLCAgIDUuMDg0OTk5NjY3OTg1NDA5ZS0wMSwKKyAgLTguNjA5NjQ0ODk3NjkyMzEwZS0wMSwgICA1LjA4NjY1MDY0MDIxOTA0MGUtMDEsCisgIC04LjYwODY2OTM4NjM3NzY3M2UtMDEsICAgNS4wODgzMDE0MjU0MzEwNzBlLTAxLAorICAtOC42MDc2OTM1NTg1NDY4NzJlLTAxLCAgIDUuMDg5OTUyMDIzNTYwODAxZS0wMSwKKyAgLTguNjA2NzE3NDE0MjM1Nzg0ZS0wMSwgICA1LjA5MTYwMjQzNDU0NzU0NmUtMDEsCisgIC04LjYwNTc0MDk1MzQ4MDMwMGUtMDEsICAgNS4wOTMyNTI2NTgzMzA2MjVlLTAxLAorICAtOC42MDQ3NjQxNzYzMTYzMjFlLTAxLCAgIDUuMDk0OTAyNjk0ODQ5MzY0ZS0wMSwKKyAgLTguNjAzNzg3MDgyNzc5NzYxZS0wMSwgICA1LjA5NjU1MjU0NDA0MzA5M2UtMDEsCisgIC04LjYwMjgwOTY3MjkwNjU0NWUtMDEsICAgNS4wOTgyMDIyMDU4NTExNTRlLTAxLAorICAtOC42MDE4MzE5NDY3MzI2MTBlLTAxLCAgIDUuMDk5ODUxNjgwMjEyODk1ZS0wMSwKKyAgLTguNjAwODUzOTA0MjkzOTAxZS0wMSwgICA1LjEwMTUwMDk2NzA2NzY2OGUtMDEsCisgIC04LjU5OTg3NTU0NTYyNjM4MmUtMDEsICAgNS4xMDMxNTAwNjYzNTQ4MzJlLTAxLAorICAtOC41OTg4OTY4NzA3NjYwMjNlLTAxLCAgIDUuMTA0Nzk4OTc4MDEzNzU3ZS0wMSwKKyAgLTguNTk3OTE3ODc5NzQ4ODA3ZS0wMSwgICA1LjEwNjQ0NzcwMTk4MzgxNmUtMDEsCisgIC04LjU5NjkzODU3MjYxMDcyNmUtMDEsICAgNS4xMDgwOTYyMzgyMDQzOTBlLTAxLAorICAtOC41OTU5NTg5NDkzODc3OTFlLTAxLCAgIDUuMTA5NzQ0NTg2NjE0ODY4ZS0wMSwKKyAgLTguNTk0OTc5MDEwMTE2MDE3ZS0wMSwgICA1LjExMTM5Mjc0NzE1NDY0NGUtMDEsCisgIC04LjU5Mzk5ODc1NDgzMTQzNGUtMDEsICAgNS4xMTMwNDA3MTk3NjMxMjBlLTAxLAorICAtOC41OTMwMTgxODM1NzAwODVlLTAxLCAgIDUuMTE0Njg4NTA0Mzc5NzAzZS0wMSwKKyAgLTguNTkyMDM3Mjk2MzY4MDE5ZS0wMSwgICA1LjExNjMzNjEwMDk0MzgxMmUtMDEsCisgIC04LjU5MTA1NjA5MzI2MTMwNGUtMDEsICAgNS4xMTc5ODM1MDkzOTQ4NjllLTAxLAorICAtOC41OTAwNzQ1NzQyODYwMTVlLTAxLCAgIDUuMTE5NjMwNzI5NjcyMzAyZS0wMSwKKyAgLTguNTg5MDkyNzM5NDc4MjM5ZS0wMSwgICA1LjEyMTI3Nzc2MTcxNTU0N2UtMDEsCisgIC04LjU4ODExMDU4ODg3NDA3NmUtMDEsICAgNS4xMjI5MjQ2MDU0NjQwNDllLTAxLAorICAtOC41ODcxMjgxMjI1MDk2MzVlLTAxLCAgIDUuMTI0NTcxMjYwODU3MjU3ZS0wMSwKKyAgLTguNTg2MTQ1MzQwNDIxMDQyZS0wMSwgICA1LjEyNjIxNzcyNzgzNDYzMGUtMDEsCisgIC04LjU4NTE2MjI0MjY0NDQyN2UtMDEsICAgNS4xMjc4NjQwMDYzMzU2MzBlLTAxLAorICAtOC41ODQxNzg4MjkyMTU5MzllLTAxLCAgIDUuMTI5NTEwMDk2Mjk5NzMwZS0wMSwKKyAgLTguNTgzMTk1MTAwMTcxNzM0ZS0wMSwgICA1LjEzMTE1NTk5NzY2NjQwNmUtMDEsCisgIC04LjU4MjIxMTA1NTU0Nzk4MmUtMDEsICAgNS4xMzI4MDE3MTAzNzUxNDJlLTAxLAorICAtOC41ODEyMjY2OTUzODA4NjFlLTAxLCAgIDUuMTM0NDQ3MjM0MzY1NDM1ZS0wMSwKKyAgLTguNTgwMjQyMDE5NzA2NTY1ZS0wMSwgICA1LjEzNjA5MjU2OTU3Njc3OGUtMDEsCisgIC04LjU3OTI1NzAyODU2MTI5OGUtMDEsICAgNS4xMzc3Mzc3MTU5NDg2ODBlLTAxLAorICAtOC41NzgyNzE3MjE5ODEyNzRlLTAxLCAgIDUuMTM5MzgyNjczNDIwNjU0ZS0wMSwKKyAgLTguNTc3Mjg2MTAwMDAyNzIxZS0wMSwgICA1LjE0MTAyNzQ0MTkzMjIxN2UtMDEsCisgIC04LjU3NjMwMDE2MjY2MTg3NmUtMDEsICAgNS4xNDI2NzIwMjE0MjI4OTdlLTAxLAorICAtOC41NzUzMTM5MDk5OTQ5OTJlLTAxLCAgIDUuMTQ0MzE2NDExODMyMjI4ZS0wMSwKKyAgLTguNTc0MzI3MzQyMDM4MzI3ZS0wMSwgICA1LjE0NTk2MDYxMzA5OTc1MGUtMDEsCisgIC04LjU3MzM0MDQ1ODgyODE1NmUtMDEsICAgNS4xNDc2MDQ2MjUxNjUwMTJlLTAxLAorICAtOC41NzIzNTMyNjA0MDA3NjVlLTAxLCAgIDUuMTQ5MjQ4NDQ3OTY3NTY1ZS0wMSwKKyAgLTguNTcxMzY1NzQ2NzkyNDUwZS0wMSwgICA1LjE1MDg5MjA4MTQ0Njk3MmUtMDEsCisgIC04LjU3MDM3NzkxODAzOTUxN2UtMDEsICAgNS4xNTI1MzU1MjU1NDI4MDJlLTAxLAorICAtOC41NjkzODk3NzQxNzgyODhlLTAxLCAgIDUuMTU0MTc4NzgwMTk0NjI5ZS0wMSwKKyAgLTguNTY4NDAxMzE1MjQ1MDkyZS0wMSwgICA1LjE1NTgyMTg0NTM0MjAzOGUtMDEsCisgIC04LjU2NzQxMjU0MTI3NjI3NWUtMDEsICAgNS4xNTc0NjQ3MjA5MjQ2MTRlLTAxLAorICAtOC41NjY0MjM0NTIzMDgxODhlLTAxLCAgIDUuMTU5MTA3NDA2ODgxOTU2ZS0wMSwKKyAgLTguNTY1NDM0MDQ4Mzc3MjAwZS0wMSwgICA1LjE2MDc0OTkwMzE1MzY2NmUtMDEsCisgIC04LjU2NDQ0NDMyOTUxOTY4NmUtMDEsICAgNS4xNjIzOTIyMDk2NzkzNTVlLTAxLAorICAtOC41NjM0NTQyOTU3NzIwMzZlLTAxLCAgIDUuMTY0MDM0MzI2Mzk4NjQwZS0wMSwKKyAgLTguNTYyNDYzOTQ3MTcwNjUyZS0wMSwgICA1LjE2NTY3NjI1MzI1MTE0NGUtMDEsCisgIC04LjU2MTQ3MzI4Mzc1MTk0NWUtMDEsICAgNS4xNjczMTc5OTAxNzY0OTllLTAxLAorICAtOC41NjA0ODIzMDU1NTIzMzllLTAxLCAgIDUuMTY4OTU5NTM3MTE0MzQyZS0wMSwKKyAgLTguNTU5NDkxMDEyNjA4MjY5ZS0wMSwgICA1LjE3MDYwMDg5NDAwNDMxOWUtMDEsCisgIC04LjU1ODQ5OTQwNDk1NjE4MmUtMDEsICAgNS4xNzIyNDIwNjA3ODYwODNlLTAxLAorICAtOC41NTc1MDc0ODI2MzI1MzllLTAxLCAgIDUuMTczODgzMDM3Mzk5MjkxZS0wMSwKKyAgLTguNTU2NTE1MjQ1NjczODA3ZS0wMSwgICA1LjE3NTUyMzgyMzc4MzYwOWUtMDEsCisgIC04LjU1NTUyMjY5NDExNjQ2OWUtMDEsICAgNS4xNzcxNjQ0MTk4Nzg3MTFlLTAxLAorICAtOC41NTQ1Mjk4Mjc5OTcwMThlLTAxLCAgIDUuMTc4ODA0ODI1NjI0Mjc3ZS0wMSwKKyAgLTguNTUzNTM2NjQ3MzUxOTYwZS0wMSwgICA1LjE4MDQ0NTA0MDk1OTk5M2UtMDEsCisgIC04LjU1MjU0MzE1MjIxNzgxMGUtMDEsICAgNS4xODIwODUwNjU4MjU1NTVlLTAxLAorICAtOC41NTE1NDkzNDI2MzEwOTZlLTAxLCAgIDUuMTgzNzI0OTAwMTYwNjYxZS0wMSwKKyAgLTguNTUwNTU1MjE4NjI4MzYwZS0wMSwgICA1LjE4NTM2NDU0MzkwNTAyMmUtMDEsCisgIC04LjU0OTU2MDc4MDI0NjE0OWUtMDEsICAgNS4xODcwMDM5OTY5OTgzNTBlLTAxLAorICAtOC41NDg1NjYwMjc1MjEwMjhlLTAxLCAgIDUuMTg4NjQzMjU5MzgwMzY5ZS0wMSwKKyAgLTguNTQ3NTcwOTYwNDg5NTcyZS0wMSwgICA1LjE5MDI4MjMzMDk5MDgwOWUtMDEsCisgIC04LjU0NjU3NTU3OTE4ODM2NWUtMDEsICAgNS4xOTE5MjEyMTE3Njk0MDJlLTAxLAorICAtOC41NDU1Nzk4ODM2NTQwMDVlLTAxLCAgIDUuMTkzNTU5OTAxNjU1ODk2ZS0wMSwKKyAgLTguNTQ0NTgzODczOTIzMTAyZS0wMSwgICA1LjE5NTE5ODQwMDU5MDAzOGUtMDEsCisgIC04LjU0MzU4NzU1MDAzMjI3NGUtMDEsICAgNS4xOTY4MzY3MDg1MTE1ODRlLTAxLAorICAtOC41NDI1OTA5MTIwMTgxNTVlLTAxLCAgIDUuMTk4NDc0ODI1MzYwMzAyZS0wMSwKKyAgLTguNTQxNTkzOTU5OTE3Mzg4ZS0wMSwgICA1LjIwMDExMjc1MTA3NTk2MGUtMDEsCisgIC04LjU0MDU5NjY5Mzc2NjYyOGUtMDEsICAgNS4yMDE3NTA0ODU1OTgzMzhlLTAxLAorICAtOC41Mzk1OTkxMTM2MDI1NDJlLTAxLCAgIDUuMjAzMzg4MDI4ODY3MjIwZS0wMSwKKyAgLTguNTM4NjAxMjE5NDYxODA4ZS0wMSwgICA1LjIwNTAyNTM4MDgyMjM5N2UtMDEsCisgIC04LjUzNzYwMzAxMTM4MTExNGUtMDEsICAgNS4yMDY2NjI1NDE0MDM2NzJlLTAxLAorICAtOC41MzY2MDQ0ODkzOTcxNjRlLTAxLCAgIDUuMjA4Mjk5NTEwNTUwODQ3ZS0wMSwKKyAgLTguNTM1NjA1NjUzNTQ2NjY4ZS0wMSwgICA1LjIwOTkzNjI4ODIwMzczOWUtMDEsCisgIC04LjUzNDYwNjUwMzg2NjM1M2UtMDEsICAgNS4yMTE1NzI4NzQzMDIxNjZlLTAxLAorICAtOC41MzM2MDcwNDAzOTI5NTRlLTAxLCAgIDUuMjEzMjA5MjY4Nzg1OTU3ZS0wMSwKKyAgLTguNTMyNjA3MjYzMTYzMjE5ZS0wMSwgICA1LjIxNDg0NTQ3MTU5NDk0M2UtMDEsCisgIC04LjUzMTYwNzE3MjIxMzkwNGUtMDEsICAgNS4yMTY0ODE0ODI2Njg5NzFlLTAxLAorICAtOC41MzA2MDY3Njc1ODE3ODNlLTAxLCAgIDUuMjE4MTE3MzAxOTQ3ODg1ZS0wMSwKKyAgLTguNTI5NjA2MDQ5MzAzNjM2ZS0wMSwgICA1LjIxOTc1MjkyOTM3MTU0NGUtMDEsCisgIC04LjUyODYwNTAxNzQxNjI1OGUtMDEsICAgNS4yMjEzODgzNjQ4Nzk4MDhlLTAxLAorICAtOC41Mjc2MDM2NzE5NTY0NTNlLTAxLCAgIDUuMjIzMDIzNjA4NDEyNTQ2ZS0wMSwKKyAgLTguNTI2NjAyMDEyOTYxMDM4ZS0wMSwgICA1LjIyNDY1ODY1OTkwOTYzOGUtMDEsCisgIC04LjUyNTYwMDA0MDQ2Njg0MWUtMDEsICAgNS4yMjYyOTM1MTkzMTA5NjZlLTAxLAorICAtOC41MjQ1OTc3NTQ1MTA3MDFlLTAxLCAgIDUuMjI3OTI4MTg2NTU2NDIxZS0wMSwKKyAgLTguNTIzNTk1MTU1MTI5NDcxZS0wMSwgICA1LjIyOTU2MjY2MTU4NTkwMWUtMDEsCisgIC04LjUyMjU5MjI0MjM2MDAxMWUtMDEsICAgNS4yMzExOTY5NDQzMzkzMTJlLTAxLAorICAtOC41MjE1ODkwMTYyMzkxOThlLTAxLCAgIDUuMjMyODMxMDM0NzU2NTY0ZS0wMSwKKyAgLTguNTIwNTg1NDc2ODAzOTE3ZS0wMSwgICA1LjIzNDQ2NDkzMjc3NzU3OGUtMDEsCisgIC04LjUxOTU4MTYyNDA5MTA2NGUtMDEsICAgNS4yMzYwOTg2MzgzNDIyNzllLTAxLAorICAtOC41MTg1Nzc0NTgxMzc1NDhlLTAxLCAgIDUuMjM3NzMyMTUxMzkwNjAyZS0wMSwKKyAgLTguNTE3NTcyOTc4OTgwMjkxZS0wMSwgICA1LjIzOTM2NTQ3MTg2MjQ4NmUtMDEsCisgIC04LjUxNjU2ODE4NjY1NjIyNGUtMDEsICAgNS4yNDA5OTg1OTk2OTc4NzdlLTAxLAorICAtOC41MTU1NjMwODEyMDIyOTBlLTAxLCAgIDUuMjQyNjMxNTM0ODM2NzM0ZS0wMSwKKyAgLTguNTE0NTU3NjYyNjU1NDQzZS0wMSwgICA1LjI0NDI2NDI3NzIxOTAxNGUtMDEsCisgIC04LjUxMzU1MTkzMTA1MjY1MmUtMDEsICAgNS4yNDU4OTY4MjY3ODQ2OTBlLTAxLAorICAtOC41MTI1NDU4ODY0MzA4OTFlLTAxLCAgIDUuMjQ3NTI5MTgzNDczNzM0ZS0wMSwKKyAgLTguNTExNTM5NTI4ODI3MTUzZS0wMSwgICA1LjI0OTE2MTM0NzIyNjEzMGUtMDEsCisgIC04LjUxMDUzMjg1ODI3ODQzOGUtMDEsICAgNS4yNTA3OTMzMTc5ODE4NjhlLTAxLAorICAtOC41MDk1MjU4NzQ4MjE3NTdlLTAxLCAgIDUuMjUyNDI1MDk1NjgwOTQ3ZS0wMSwKKyAgLTguNTA4NTE4NTc4NDk0MTM1ZS0wMSwgICA1LjI1NDA1NjY4MDI2MzM2OWUtMDEsCisgIC04LjUwNzUxMDk2OTMzMjYwOGUtMDEsICAgNS4yNTU2ODgwNzE2NjkxNDdlLTAxLAorICAtOC41MDY1MDMwNDczNzQyMjFlLTAxLCAgIDUuMjU3MzE5MjY5ODM4Mjk4ZS0wMSwKKyAgLTguNTA1NDk0ODEyNjU2MDM1ZS0wMSwgICA1LjI1ODk1MDI3NDcxMDg0NmUtMDEsCisgIC04LjUwNDQ4NjI2NTIxNTExOGUtMDEsICAgNS4yNjA1ODEwODYyMjY4MjhlLTAxLAorICAtOC41MDM0Nzc0MDUwODg1NTBlLTAxLCAgIDUuMjYyMjExNzA0MzI2MjgxZS0wMSwKKyAgLTguNTAyNDY4MjMyMzEzNDI3ZS0wMSwgICA1LjI2Mzg0MjEyODk0OTI1MWUtMDEsCisgIC04LjUwMTQ1ODc0NjkyNjg1MmUtMDEsICAgNS4yNjU0NzIzNjAwMzU3OTRlLTAxLAorICAtOC41MDA0NDg5NDg5NjU5NDJlLTAxLCAgIDUuMjY3MTAyMzk3NTI1OTcwZS0wMSwKKyAgLTguNDk5NDM4ODM4NDY3ODIyZS0wMSwgICA1LjI2ODczMjI0MTM1OTg0NmUtMDEsCisgIC04LjQ5ODQyODQxNTQ2OTYzM2UtMDEsICAgNS4yNzAzNjE4OTE0Nzc1MDFlLTAxLAorICAtOC40OTc0MTc2ODAwMDg1MjVlLTAxLCAgIDUuMjcxOTkxMzQ3ODE5MDEzZS0wMSwKKyAgLTguNDk2NDA2NjMyMTIxNjU5ZS0wMSwgICA1LjI3MzYyMDYxMDMyNDQ3NWUtMDEsCisgIC04LjQ5NTM5NTI3MTg0NjIwOWUtMDEsICAgNS4yNzUyNDk2Nzg5MzM5ODJlLTAxLAorICAtOC40OTQzODM1OTkyMTkzNjFlLTAxLCAgIDUuMjc2ODc4NTUzNTg3NjM3ZS0wMSwKKyAgLTguNDkzMzcxNjE0Mjc4MzA4ZS0wMSwgICA1LjI3ODUwNzIzNDIyNTU1MmUtMDEsCisgIC04LjQ5MjM1OTMxNzA2MDI2MGUtMDEsICAgNS4yODAxMzU3MjA3ODc4NDZlLTAxLAorICAtOC40OTEzNDY3MDc2MDI0MzZlLTAxLCAgIDUuMjgxNzY0MDEzMjE0NjQ0ZS0wMSwKKyAgLTguNDkwMzMzNzg1OTQyMDY4ZS0wMSwgICA1LjI4MzM5MjExMTQ0NjA3N2UtMDEsCisgIC04LjQ4OTMyMDU1MjExNjM5NmUtMDEsICAgNS4yODUwMjAwMTU0MjIyODVlLTAxLAorICAtOC40ODgzMDcwMDYxNjI2NzVlLTAxLCAgIDUuMjg2NjQ3NzI1MDgzNDEzZS0wMSwKKyAgLTguNDg3MjkzMTQ4MTE4MTcxZS0wMSwgICA1LjI4ODI3NTI0MDM2OTYxOWUtMDEsCisgIC04LjQ4NjI3ODk3ODAyMDE1OWUtMDEsICAgNS4yODk5MDI1NjEyMjEwNjBlLTAxLAorICAtOC40ODUyNjQ0OTU5MDU5MjZlLTAxLCAgIDUuMjkxNTI5Njg3NTc3OTA2ZS0wMSwKKyAgLTguNDg0MjQ5NzAxODEyNzc2ZS0wMSwgICA1LjI5MzE1NjYxOTM4MDMzM2UtMDEsCisgIC04LjQ4MzIzNDU5NTc3ODAxNmUtMDEsICAgNS4yOTQ3ODMzNTY1Njg1MjBlLTAxLAorICAtOC40ODIyMTkxNzc4Mzg5NzBlLTAxLCAgIDUuMjk2NDA5ODk5MDgyNjU5ZS0wMSwKKyAgLTguNDgxMjAzNDQ4MDMyOTcyZS0wMSwgICA1LjI5ODAzNjI0Njg2Mjk0NmUtMDEsCisgIC04LjQ4MDE4NzQwNjM5NzM2OGUtMDEsICAgNS4yOTk2NjIzOTk4NDk1ODZlLTAxLAorICAtOC40NzkxNzEwNTI5Njk1MTRlLTAxLCAgIDUuMzAxMjg4MzU3OTgyNzkwZS0wMSwKKyAgLTguNDc4MTU0Mzg3Nzg2Nzc5ZS0wMSwgICA1LjMwMjkxNDEyMTIwMjc3M2UtMDEsCisgIC04LjQ3NzEzNzQxMDg4NjU0NGUtMDEsICAgNS4zMDQ1Mzk2ODk0NDk3NjNlLTAxLAorICAtOC40NzYxMjAxMjIzMDYxOTdlLTAxLCAgIDUuMzA2MTY1MDYyNjYzOTkzZS0wMSwKKyAgLTguNDc1MTAyNTIyMDgzMTQzZS0wMSwgICA1LjMwNzc5MDI0MDc4NTcwMWUtMDEsCisgIC04LjQ3NDA4NDYxMDI1NDc5N2UtMDEsICAgNS4zMDk0MTUyMjM3NTUxMzZlLTAxLAorICAtOC40NzMwNjYzODY4NTg1ODNlLTAxLCAgIDUuMzExMDQwMDExNTEyNTUwZS0wMSwKKyAgLTguNDcyMDQ3ODUxOTMxOTQxZS0wMSwgICA1LjMxMjY2NDYwMzk5ODIwNGUtMDEsCisgIC04LjQ3MTAyOTAwNTUxMjMxNWUtMDEsICAgNS4zMTQyODkwMDExNTIzNjhlLTAxLAorICAtOC40NzAwMDk4NDc2MzcxNjllLTAxLCAgIDUuMzE1OTEzMjAyOTE1MzE3ZS0wMSwKKyAgLTguNDY4OTkwMzc4MzQzOTcyZS0wMSwgICA1LjMxNzUzNzIwOTIyNzMzM2UtMDEsCisgIC04LjQ2Nzk3MDU5NzY3MDIwOWUtMDEsICAgNS4zMTkxNjEwMjAwMjg3MDZlLTAxLAorICAtOC40NjY5NTA1MDU2NTMzNzRlLTAxLCAgIDUuMzIwNzg0NjM1MjU5NzM1ZS0wMSwKKyAgLTguNDY1OTMwMTAyMzMwOTcyZS0wMSwgICA1LjMyMjQwODA1NDg2MDcyMmUtMDEsCisgIC04LjQ2NDkwOTM4Nzc0MDUyMWUtMDEsICAgNS4zMjQwMzEyNzg3NzE5NzllLTAxLAorICAtOC40NjM4ODgzNjE5MTk1NDllLTAxLCAgIDUuMzI1NjU0MzA2OTMzODI2ZS0wMSwKKyAgLTguNDYyODY3MDI0OTA1NTk3ZS0wMSwgICA1LjMyNzI3NzEzOTI4NjU4OGUtMDEsCisgIC04LjQ2MTg0NTM3NjczNjIxNmUtMDEsICAgNS4zMjg4OTk3NzU3NzA1OThlLTAxLAorICAtOC40NjA4MjM0MTc0NDg5NzBlLTAxLCAgIDUuMzMwNTIyMjE2MzI2MTk0ZS0wMSwKKyAgLTguNDU5ODAxMTQ3MDgxNDMzZS0wMSwgICA1LjMzMjE0NDQ2MDg5MzczMGUtMDEsCisgIC04LjQ1ODc3ODU2NTY3MTE5MGUtMDEsICAgNS4zMzM3NjY1MDk0MTM1NTNlLTAxLAorICAtOC40NTc3NTU2NzMyNTU4NDBlLTAxLCAgIDUuMzM1Mzg4MzYxODI2MDMxZS0wMSwKKyAgLTguNDU2NzMyNDY5ODcyOTkxZS0wMSwgICA1LjMzNzAxMDAxODA3MTUzMGUtMDEsCisgIC04LjQ1NTcwODk1NTU2MDI2M2UtMDEsICAgNS4zMzg2MzE0NzgwOTA0MjZlLTAxLAorICAtOC40NTQ2ODUxMzAzNTUyODhlLTAxLCAgIDUuMzQwMjUyNzQxODIzMTA0ZS0wMSwKKyAgLTguNDUzNjYwOTk0Mjk1NzEwZS0wMSwgICA1LjM0MTg3MzgwOTIwOTk1NGUtMDEsCisgIC04LjQ1MjYzNjU0NzQxOTE4MmUtMDEsICAgNS4zNDM0OTQ2ODAxOTEzNzVlLTAxLAorICAtOC40NTE2MTE3ODk3NjMzNzFlLTAxLCAgIDUuMzQ1MTE1MzU0NzA3NzcxZS0wMSwKKyAgLTguNDUwNTg2NzIxMzY1OTU1ZS0wMSwgICA1LjM0NjczNTgzMjY5OTU1NWUtMDEsCisgIC04LjQ0OTU2MTM0MjI2NDYyMmUtMDEsICAgNS4zNDgzNTYxMTQxMDcxNDZlLTAxLAorICAtOC40NDg1MzU2NTI0OTcwNzFlLTAxLCAgIDUuMzQ5OTc2MTk4ODcwOTcyZS0wMSwKKyAgLTguNDQ3NTA5NjUyMTAxMDE1ZS0wMSwgICA1LjM1MTU5NjA4NjkzMTQ2NmUtMDEsCisgIC04LjQ0NjQ4MzM0MTExNDE3OGUtMDEsICAgNS4zNTMyMTU3NzgyMjkwNzFlLTAxLAorICAtOC40NDU0NTY3MTk1NzQyOTJlLTAxLCAgIDUuMzU0ODM1MjcyNzA0MjM0ZS0wMSwKKyAgLTguNDQ0NDI5Nzg3NTE5MTA3ZS0wMSwgICA1LjM1NjQ1NDU3MDI5NzQxMWUtMDEsCisgIC04LjQ0MzQwMjU0NDk4NjM3NmUtMDEsICAgNS4zNTgwNzM2NzA5NDkwNjRlLTAxLAorICAtOC40NDIzNzQ5OTIwMTM4NzBlLTAxLCAgIDUuMzU5NjkyNTc0NTk5NjY3ZS0wMSwKKyAgLTguNDQxMzQ3MTI4NjM5MzY5ZS0wMSwgICA1LjM2MTMxMTI4MTE4OTY5NWUtMDEsCisgIC04LjQ0MDMxODk1NDkwMDY2NGUtMDEsICAgNS4zNjI5Mjk3OTA2NTk2MzJlLTAxLAorICAtOC40MzkyOTA0NzA4MzU1NTllLTAxLCAgIDUuMzY0NTQ4MTAyOTQ5OTcxZS0wMSwKKyAgLTguNDM4MjYxNjc2NDgxODY3ZS0wMSwgICA1LjM2NjE2NjIxODAwMTIxMGUtMDEsCisgIC04LjQzNzIzMjU3MTg3NzQxN2UtMDEsICAgNS4zNjc3ODQxMzU3NTM4NTllLTAxLAorICAtOC40MzYyMDMxNTcwNjAwNDJlLTAxLCAgIDUuMzY5NDAxODU2MTQ4NDI5ZS0wMSwKKyAgLTguNDM1MTczNDMyMDY3NTkyZS0wMSwgICA1LjM3MTAxOTM3OTEyNTQ0MWUtMDEsCisgIC04LjQzNDE0MzM5NjkzNzkyOGUtMDEsICAgNS4zNzI2MzY3MDQ2MjU0MjVlLTAxLAorICAtOC40MzMxMTMwNTE3MDg5MjFlLTAxLCAgIDUuMzc0MjUzODMyNTg4OTE2ZS0wMSwKKyAgLTguNDMyMDgyMzk2NDE4NDU0ZS0wMSwgICA1LjM3NTg3MDc2Mjk1NjQ1NGUtMDEsCisgIC04LjQzMTA1MTQzMTEwNDQyMmUtMDEsICAgNS4zNzc0ODc0OTU2Njg1OTRlLTAxLAorICAtOC40MzAwMjAxNTU4MDQ3MjllLTAxLCAgIDUuMzc5MTA0MDMwNjY1ODg5ZS0wMSwKKyAgLTguNDI4OTg4NTcwNTU3MjkzZS0wMSwgICA1LjM4MDcyMDM2Nzg4ODkwNmUtMDEsCisgIC04LjQyNzk1NjY3NTQwMDA0MWUtMDEsICAgNS4zODIzMzY1MDcyNzgyMTdlLTAxLAorICAtOC40MjY5MjQ0NzAzNzA5MTdlLTAxLCAgIDUuMzgzOTUyNDQ4Nzc0NDAwZS0wMSwKKyAgLTguNDI1ODkxOTU1NTA3ODY3ZS0wMSwgICA1LjM4NTU2ODE5MjMxODA0MWUtMDEsCisgIC04LjQyNDg1OTEzMDg0ODg1NmUtMDEsICAgNS4zODcxODM3Mzc4NDk3MzZlLTAxLAorICAtOC40MjM4MjU5OTY0MzE4NThlLTAxLCAgIDUuMzg4Nzk5MDg1MzEwMDg0ZS0wMSwKKyAgLTguNDIyNzkyNTUyMjk0ODYwZS0wMSwgICA1LjM5MDQxNDIzNDYzOTY5NGUtMDEsCisgIC04LjQyMTc1ODc5ODQ3NTg1NmUtMDEsICAgNS4zOTIwMjkxODU3NzkxODJlLTAxLAorICAtOC40MjA3MjQ3MzUwMTI4NTZlLTAxLCAgIDUuMzkzNjQzOTM4NjY5MTcwZS0wMSwKKyAgLTguNDE5NjkwMzYxOTQzODc3ZS0wMSwgICA1LjM5NTI1ODQ5MzI1MDI4OWUtMDEsCisgIC04LjQxODY1NTY3OTMwNjk1M2UtMDEsICAgNS4zOTY4NzI4NDk0NjMxNzZlLTAxLAorICAtOC40MTc2MjA2ODcxNDAxMjVlLTAxLCAgIDUuMzk4NDg3MDA3MjQ4NDc2ZS0wMSwKKyAgLTguNDE2NTg1Mzg1NDgxNDQ4ZS0wMSwgICA1LjQwMDEwMDk2NjU0Njg0MGUtMDEsCisgIC04LjQxNTU0OTc3NDM2ODk4NGUtMDEsICAgNS40MDE3MTQ3MjcyOTg5MjllLTAxLAorICAtOC40MTQ1MTM4NTM4NDA4MTNlLTAxLCAgIDUuNDAzMzI4Mjg5NDQ1NDA3ZS0wMSwKKyAgLTguNDEzNDc3NjIzOTM1MDIwZS0wMSwgICA1LjQwNDk0MTY1MjkyNjk1MmUtMDEsCisgIC04LjQxMjQ0MTA4NDY4OTcwNmUtMDEsICAgNS40MDY1NTQ4MTc2ODQyNDJlLTAxLAorICAtOC40MTE0MDQyMzYxNDI5ODFlLTAxLCAgIDUuNDA4MTY3NzgzNjU3OTY3ZS0wMSwKKyAgLTguNDEwMzY3MDc4MzMyOTY2ZS0wMSwgICA1LjQwOTc4MDU1MDc4ODgyMWUtMDEsCisgIC04LjQwOTMyOTYxMTI5Nzc5OGUtMDEsICAgNS40MTEzOTMxMTkwMTc1MDhlLTAxLAorICAtOC40MDgyOTE4MzUwNzU2MTZlLTAxLCAgIDUuNDEzMDA1NDg4Mjg0NzQxZS0wMSwKKyAgLTguNDA3MjUzNzQ5NzA0NTgxZS0wMSwgICA1LjQxNDYxNzY1ODUzMTIzNGUtMDEsCisgIC04LjQwNjIxNTM1NTIyMjg1N2UtMDEsICAgNS40MTYyMjk2Mjk2OTc3MTVlLTAxLAorICAtOC40MDUxNzY2NTE2Njg2MjVlLTAxLCAgIDUuNDE3ODQxNDAxNzI0OTE1ZS0wMSwKKyAgLTguNDA0MTM3NjM5MDgwMDc1ZS0wMSwgICA1LjQxOTQ1Mjk3NDU1MzU3NGUtMDEsCisgIC04LjQwMzA5ODMxNzQ5NTQwOGUtMDEsICAgNS40MjEwNjQzNDgxMjQ0MzllLTAxLAorICAtOC40MDIwNTg2ODY5NTI4MzZlLTAxLCAgIDUuNDIyNjc1NTIyMzc4MjY1ZS0wMSwKKyAgLTguNDAxMDE4NzQ3NDkwNTg0ZS0wMSwgICA1LjQyNDI4NjQ5NzI1NTgxMmUtMDEsCisgIC04LjM5OTk3ODQ5OTE0Njg4OGUtMDEsICAgNS40MjU4OTcyNzI2OTc4NTNlLTAxLAorICAtOC4zOTg5Mzc5NDE5NTk5OTVlLTAxLCAgIDUuNDI3NTA3ODQ4NjQ1MTU5ZS0wMSwKKyAgLTguMzk3ODk3MDc1OTY4MTY0ZS0wMSwgICA1LjQyOTExODIyNTAzODUxN2UtMDEsCisgIC04LjM5Njg1NTkwMTIwOTY2MWUtMDEsICAgNS40MzA3Mjg0MDE4MTg3MTdlLTAxLAorICAtOC4zOTU4MTQ0MTc3MjI3NzFlLTAxLCAgIDUuNDMyMzM4Mzc4OTI2NTU5ZS0wMSwKKyAgLTguMzk0NzcyNjI1NTQ1Nzg2ZS0wMSwgICA1LjQzMzk0ODE1NjMwMjg0OGUtMDEsCisgIC04LjM5MzczMDUyNDcxNzAwN2UtMDEsICAgNS40MzU1NTc3MzM4ODgzOTVlLTAxLAorICAtOC4zOTI2ODgxMTUyNzQ3NTJlLTAxLCAgIDUuNDM3MTY3MTExNjI0MDIzZS0wMSwKKyAgLTguMzkxNjQ1Mzk3MjU3MzQ3ZS0wMSwgICA1LjQzODc3NjI4OTQ1MDU2MGUtMDEsCisgIC04LjM5MDYwMjM3MDcwMzEyN2UtMDEsICAgNS40NDAzODUyNjczMDg4MzhlLTAxLAorICAtOC4zODk1NTkwMzU2NTA0NDVlLTAxLCAgIDUuNDQxOTk0MDQ1MTM5NzAzZS0wMSwKKyAgLTguMzg4NTE1MzkyMTM3NjU4ZS0wMSwgICA1LjQ0MzYwMjYyMjg4NDAwNGUtMDEsCisgIC04LjM4NzQ3MTQ0MDIwMzEzOWUtMDEsICAgNS40NDUyMTEwMDA0ODI1OTZlLTAxLAorICAtOC4zODY0MjcxNzk4ODUyNzNlLTAxLCAgIDUuNDQ2ODE5MTc3ODc2MzQ1ZS0wMSwKKyAgLTguMzg1MzgyNjExMjIyNDUzZS0wMSwgICA1LjQ0ODQyNzE1NTAwNjEyNGUtMDEsCisgIC04LjM4NDMzNzczNDI1MzA4M2UtMDEsICAgNS40NTAwMzQ5MzE4MTI4MTJlLTAxLAorICAtOC4zODMyOTI1NDkwMTU1ODNlLTAxLCAgIDUuNDUxNjQyNTA4MjM3MjkzZS0wMSwKKyAgLTguMzgyMjQ3MDU1NTQ4MzgxZS0wMSwgICA1LjQ1MzI0OTg4NDIyMDQ2NWUtMDEsCisgIC04LjM4MTIwMTI1Mzg4OTkxNWUtMDEsICAgNS40NTQ4NTcwNTk3MDMyMjVlLTAxLAorICAtOC4zODAxNTUxNDQwNzg2MzhlLTAxLCAgIDUuNDU2NDY0MDM0NjI2NDg2ZS0wMSwKKyAgLTguMzc5MTA4NzI2MTUzMDEyZS0wMSwgICA1LjQ1ODA3MDgwODkzMTE2MWUtMDEsCisgIC04LjM3ODA2MjAwMDE1MTUwOWUtMDEsICAgNS40NTk2NzczODI1NTgxNzZlLTAxLAorICAtOC4zNzcwMTQ5NjYxMTI2MTdlLTAxLCAgIDUuNDYxMjgzNzU1NDQ4NDYwZS0wMSwKKyAgLTguMzc1OTY3NjI0MDc0ODMwZS0wMSwgICA1LjQ2Mjg4OTkyNzU0Mjk1MmUtMDEsCisgIC04LjM3NDkxOTk3NDA3NjY1OWUtMDEsICAgNS40NjQ0OTU4OTg3ODI1OTZlLTAxLAorICAtOC4zNzM4NzIwMTYxNTY2MTllLTAxLCAgIDUuNDY2MTAxNjY5MTA4MzQ5ZS0wMSwKKyAgLTguMzcyODIzNzUwMzUzMjQzZS0wMSwgICA1LjQ2NzcwNzIzODQ2MTE2OGUtMDEsCisgIC04LjM3MTc3NTE3NjcwNTA3M2UtMDEsICAgNS40NjkzMTI2MDY3ODIwMjJlLTAxLAorICAtOC4zNzA3MjYyOTUyNTA2NjBlLTAxLCAgIDUuNDcwOTE3Nzc0MDExODg1ZS0wMSwKKyAgLTguMzY5Njc3MTA2MDI4NTcwZS0wMSwgICA1LjQ3MjUyMjc0MDA5MTc0MWUtMDEsCisgIC04LjM2ODYyNzYwOTA3NzM3OWUtMDEsICAgNS40NzQxMjc1MDQ5NjI1NzllLTAxLAorICAtOC4zNjc1Nzc4MDQ0MzU2NzJlLTAxLCAgIDUuNDc1NzMyMDY4NTY1Mzk4ZS0wMSwKKyAgLTguMzY2NTI3NjkyMTQyMDUwZS0wMSwgICA1LjQ3NzMzNjQzMDg0MTIwMWUtMDEsCisgIC04LjM2NTQ3NzI3MjIzNTEyMGUtMDEsICAgNS40Nzg5NDA1OTE3MzEwMDJlLTAxLAorICAtOC4zNjQ0MjY1NDQ3NTM1MDRlLTAxLCAgIDUuNDgwNTQ0NTUxMTc1ODE5ZS0wMSwKKyAgLTguMzYzMzc1NTA5NzM1ODM1ZS0wMSwgICA1LjQ4MjE0ODMwOTExNjY3OGUtMDEsCisgIC04LjM2MjMyNDE2NzIyMDc1NmUtMDEsICAgNS40ODM3NTE4NjU0OTQ2MTZlLTAxLAorICAtOC4zNjEyNzI1MTcyNDY5MjNlLTAxLCAgIDUuNDg1MzU1MjIwMjUwNjc0ZS0wMSwKKyAgLTguMzYwMjIwNTU5ODUyOTk5ZS0wMSwgICA1LjQ4Njk1ODM3MzMyNTkwMWUtMDEsCisgIC04LjM1OTE2ODI5NTA3NzY2NGUtMDEsICAgNS40ODg1NjEzMjQ2NjEzNTNlLTAxLAorICAtOC4zNTgxMTU3MjI5NTk2MDdlLTAxLCAgIDUuNDkwMTY0MDc0MTk4MDk0ZS0wMSwKKyAgLTguMzU3MDYyODQzNTM3NTI2ZS0wMSwgICA1LjQ5MTc2NjYyMTg3NzE5N2UtMDEsCisgIC04LjM1NjAwOTY1Njg1MDEzNGUtMDEsICAgNS40OTMzNjg5Njc2Mzk3NDBlLTAxLAorICAtOC4zNTQ5NTYxNjI5MzYxNTRlLTAxLCAgIDUuNDk0OTcxMTExNDI2ODEwZS0wMSwKKyAgLTguMzUzOTAyMzYxODM0MzE5ZS0wMSwgICA1LjQ5NjU3MzA1MzE3OTQ5OWUtMDEsCisgIC04LjM1Mjg0ODI1MzU4MzM3NGUtMDEsICAgNS40OTgxNzQ3OTI4Mzg5MDllLTAxLAorICAtOC4zNTE3OTM4MzgyMjIwNzdlLTAxLCAgIDUuNDk5Nzc2MzMwMzQ2MTQ5ZS0wMSwKKyAgLTguMzUwNzM5MTE1Nzg5MTk0ZS0wMSwgICA1LjUwMTM3NzY2NTY0MjMzNmUtMDEsCisgIC04LjM0OTY4NDA4NjMyMzUwNGUtMDEsICAgNS41MDI5Nzg3OTg2Njg1OTJlLTAxLAorICAtOC4zNDg2Mjg3NDk4NjM4MDBlLTAxLCAgIDUuNTA0NTc5NzI5MzY2MDQ4ZS0wMSwKKyAgLTguMzQ3NTczMTA2NDQ4ODgyZS0wMSwgICA1LjUwNjE4MDQ1NzY3NTg0M2UtMDEsCisgIC04LjM0NjUxNzE1NjExNzU2NGUtMDEsICAgNS41MDc3ODA5ODM1MzkxMjFlLTAxLAorICAtOC4zNDU0NjA4OTg5MDg2NjllLTAxLCAgIDUuNTA5MzgxMzA2ODk3MDM5ZS0wMSwKKyAgLTguMzQ0NDA0MzM0ODYxMDMyZS0wMSwgICA1LjUxMDk4MTQyNzY5MDc1NGUtMDEsCisgIC04LjM0MzM0NzQ2NDAxMzUwMWUtMDEsICAgNS41MTI1ODEzNDU4NjE0MzZlLTAxLAorICAtOC4zNDIyOTAyODY0MDQ5MzRlLTAxLCAgIDUuNTE0MTgxMDYxMzUwMjYxZS0wMSwKKyAgLTguMzQxMjMyODAyMDc0MjAxZS0wMSwgICA1LjUxNTc4MDU3NDA5ODQxMGUtMDEsCisgIC04LjM0MDE3NTAxMTA2MDE4MWUtMDEsICAgNS41MTczNzk4ODQwNDcwNzNlLTAxLAorICAtOC4zMzkxMTY5MTM0MDE3NjhlLTAxLCAgIDUuNTE4OTc4OTkxMTM3NDUyZS0wMSwKKyAgLTguMzM4MDU4NTA5MTM3ODYzZS0wMSwgICA1LjUyMDU3Nzg5NTMxMDc1MGUtMDEsCisgIC04LjMzNjk5OTc5ODMwNzM4M2UtMDEsICAgNS41MjIxNzY1OTY1MDgxNzllLTAxLAorICAtOC4zMzU5NDA3ODA5NDkyNTFlLTAxLCAgIDUuNTIzNzc1MDk0NjcwOTYxZS0wMSwKKyAgLTguMzM0ODgxNDU3MTAyNDA4ZS0wMSwgICA1LjUyNTM3MzM4OTc0MDMyMWUtMDEsCisgIC04LjMzMzgyMTgyNjgwNTc5N2UtMDEsICAgNS41MjY5NzE0ODE2NTc0OThlLTAxLAorICAtOC4zMzI3NjE4OTAwOTgzODJlLTAxLCAgIDUuNTI4NTY5MzcwMzYzNzMzZS0wMSwKKyAgLTguMzMxNzAxNjQ3MDE5MTMyZS0wMSwgICA1LjUzMDE2NzA1NTgwMDI3NWUtMDEsCisgIC04LjMzMDY0MTA5NzYwNzAyOWUtMDEsICAgNS41MzE3NjQ1Mzc5MDgzODRlLTAxLAorICAtOC4zMjk1ODAyNDE5MDEwNjdlLTAxLCAgIDUuNTMzMzYxODE2NjI5MzIzZS0wMSwKKyAgLTguMzI4NTE5MDc5OTQwMjUxZS0wMSwgICA1LjUzNDk1ODg5MTkwNDM2NmUtMDEsCisgIC04LjMyNzQ1NzYxMTc2MzU5NWUtMDEsICAgNS41MzY1NTU3NjM2NzQ3OTNlLTAxLAorICAtOC4zMjYzOTU4Mzc0MTAxMjhlLTAxLCAgIDUuNTM4MTUyNDMxODgxODkxZS0wMSwKKyAgLTguMzI1MzMzNzU2OTE4ODg3ZS0wMSwgICA1LjUzOTc0ODg5NjQ2Njk1NWUtMDEsCisgIC04LjMyNDI3MTM3MDMyODkyM2UtMDEsICAgNS41NDEzNDUxNTczNzEyODllLTAxLAorICAtOC4zMjMyMDg2Nzc2NzkyOTdlLTAxLCAgIDUuNTQyOTQxMjE0NTM2MjAwZS0wMSwKKyAgLTguMzIyMTQ1Njc5MDA5MDgwZS0wMSwgICA1LjU0NDUzNzA2NzkwMzAwOWUtMDEsCisgIC04LjMyMTA4MjM3NDM1NzM1NmUtMDEsICAgNS41NDYxMzI3MTc0MTMwNDBlLTAxLAorICAtOC4zMjAwMTg3NjM3NjMyMjBlLTAxLCAgIDUuNTQ3NzI4MTYzMDA3NjI1ZS0wMSwKKyAgLTguMzE4OTU0ODQ3MjY1Nzc2ZS0wMSwgICA1LjU0OTMyMzQwNDYyODEwNGUtMDEsCisgIC04LjMxNzg5MDYyNDkwNDE0NGUtMDEsICAgNS41NTA5MTg0NDIyMTU4MjRlLTAxLAorICAtOC4zMTY4MjYwOTY3MTc0NTFlLTAxLCAgIDUuNTUyNTEzMjc1NzEyMTQwZS0wMSwKKyAgLTguMzE1NzYxMjYyNzQ0ODM3ZS0wMSwgICA1LjU1NDEwNzkwNTA1ODQxNmUtMDEsCisgIC04LjMxNDY5NjEyMzAyNTQ1MmUtMDEsICAgNS41NTU3MDIzMzAxOTYwMjJlLTAxLAorICAtOC4zMTM2MzA2Nzc1OTg0NTllLTAxLCAgIDUuNTU3Mjk2NTUxMDY2MzM0ZS0wMSwKKyAgLTguMzEyNTY0OTI2NTAzMDMyZS0wMSwgICA1LjU1ODg5MDU2NzYxMDczOGUtMDEsCisgIC04LjMxMTQ5ODg2OTc3ODM1NWUtMDEsICAgNS41NjA0ODQzNzk3NzA2MjZlLTAxLAorICAtOC4zMTA0MzI1MDc0NjM2MjNlLTAxLCAgIDUuNTYyMDc3OTg3NDg3Mzk5ZS0wMSwKKyAgLTguMzA5MzY1ODM5NTk4MDQ0ZS0wMSwgICA1LjU2MzY3MTM5MDcwMjQ2NGUtMDEsCisgIC04LjMwODI5ODg2NjIyMDgzNmUtMDEsICAgNS41NjUyNjQ1ODkzNTcyMzZlLTAxLAorICAtOC4zMDcyMzE1ODczNzEyMjllLTAxLCAgIDUuNTY2ODU3NTgzMzkzMTM5ZS0wMSwKKyAgLTguMzA2MTY0MDAzMDg4NDYzZS0wMSwgICA1LjU2ODQ1MDM3Mjc1MTYwMWUtMDEsCisgIC04LjMwNTA5NjExMzQxMTc5MWUtMDEsICAgNS41NzAwNDI5NTczNzQwNjBlLTAxLAorICAtOC4zMDQwMjc5MTgzODA0NzVlLTAxLCAgIDUuNTcxNjM1MzM3MjAxOTYyZS0wMSwKKyAgLTguMzAyOTU5NDE4MDMzNzkxZS0wMSwgICA1LjU3MzIyNzUxMjE3Njc2MmUtMDEsCisgIC04LjMwMTg5MDYxMjQxMTAyNGUtMDEsICAgNS41NzQ4MTk0ODIyMzk5MTZlLTAxLAorICAtOC4zMDA4MjE1MDE1NTE0NzBlLTAxLCAgIDUuNTc2NDExMjQ3MzMyODk0ZS0wMSwKKyAgLTguMjk5NzUyMDg1NDk0NDQwZS0wMSwgICA1LjU3ODAwMjgwNzM5NzE3MGUtMDEsCisgIC04LjI5ODY4MjM2NDI3OTI0OGUtMDEsICAgNS41Nzk1OTQxNjIzNzQyMzBlLTAxLAorICAtOC4yOTc2MTIzMzc5NDUyMzBlLTAxLCAgIDUuNTgxMTg1MzEyMjA1NTYxZS0wMSwKKyAgLTguMjk2NTQyMDA2NTMxNzI2ZS0wMSwgICA1LjU4Mjc3NjI1NjgzMjY2M2UtMDEsCisgIC04LjI5NTQ3MTM3MDA3ODA4OWUtMDEsICAgNS41ODQzNjY5OTYxOTcwNDFlLTAxLAorICAtOC4yOTQ0MDA0Mjg2MjM2ODJlLTAxLCAgIDUuNTg1OTU3NTMwMjQwMjA4ZS0wMSwKKyAgLTguMjkzMzI5MTgyMjA3ODgzZS0wMSwgICA1LjU4NzU0Nzg1ODkwMzY4M2UtMDEsCisgIC04LjI5MjI1NzYzMDg3MDA3NmUtMDEsICAgNS41ODkxMzc5ODIxMjg5OThlLTAxLAorICAtOC4yOTExODU3NzQ2NDk2NjBlLTAxLCAgIDUuNTkwNzI3ODk5ODU3Njg1ZS0wMSwKKyAgLTguMjkwMTEzNjEzNTg2MDQ0ZS0wMSwgICA1LjU5MjMxNzYxMjAzMTI4OWUtMDEsCisgIC04LjI4OTA0MTE0NzcxODY0OWUtMDEsICAgNS41OTM5MDcxMTg1OTEzNjFlLTAxLAorICAtOC4yODc5NjgzNzcwODY5MDZlLTAxLCAgIDUuNTk1NDk2NDE5NDc5NDU4ZS0wMSwKKyAgLTguMjg2ODk1MzAxNzMwMjU4ZS0wMSwgICA1LjU5NzA4NTUxNDYzNzE0N2UtMDEsCisgIC04LjI4NTgyMTkyMTY4ODE1OGUtMDEsICAgNS41OTg2NzQ0MDQwMDYwMDJlLTAxLAorICAtOC4yODQ3NDgyMzcwMDAwNzFlLTAxLCAgIDUuNjAwMjYzMDg3NTI3NjA0ZS0wMSwKKyAgLTguMjgzNjc0MjQ3NzA1NDc1ZS0wMSwgICA1LjYwMTg1MTU2NTE0MzU0MWUtMDEsCisgIC04LjI4MjU5OTk1Mzg0Mzg1N2UtMDEsICAgNS42MDM0Mzk4MzY3OTU0MDllLTAxLAorICAtOC4yODE1MjUzNTU0NTQ3MTRlLTAxLCAgIDUuNjA1MDI3OTAyNDI0ODExZS0wMSwKKyAgLTguMjgwNDUwNDUyNTc3NTU4ZS0wMSwgICA1LjYwNjYxNTc2MTk3MzM2MGUtMDEsCisgIC04LjI3OTM3NTI0NTI1MTkwOWUtMDEsICAgNS42MDgyMDM0MTUzODI2NzRlLTAxLAorICAtOC4yNzgyOTk3MzM1MTcyOTllLTAxLCAgIDUuNjA5NzkwODYyNTk0MzgyZS0wMSwKKyAgLTguMjc3MjIzOTE3NDEzMjcyZS0wMSwgICA1LjYxMTM3ODEwMzU1MDExNGUtMDEsCisgIC04LjI3NjE0Nzc5Njk3OTM4NGUtMDEsICAgNS42MTI5NjUxMzgxOTE1MTVlLTAxLAorICAtOC4yNzUwNzEzNzIyNTUxOThlLTAxLCAgIDUuNjE0NTUxOTY2NDYwMjMzZS0wMSwKKyAgLTguMjczOTk0NjQzMjgwMjk1ZS0wMSwgICA1LjYxNjEzODU4ODI5NzkyNGUtMDEsCisgIC04LjI3MjkxNzYxMDA5NDI1OGUtMDEsICAgNS42MTc3MjUwMDM2NDYyNTNlLTAxLAorICAtOC4yNzE4NDAyNzI3MzY2OTFlLTAxLCAgIDUuNjE5MzExMjEyNDQ2ODk1ZS0wMSwKKyAgLTguMjcwNzYyNjMxMjQ3MjAzZS0wMSwgICA1LjYyMDg5NzIxNDY0MTUyNWUtMDEsCisgIC04LjI2OTY4NDY4NTY2NTQxNmUtMDEsICAgNS42MjI0ODMwMTAxNzE4MzFlLTAxLAorICAtOC4yNjg2MDY0MzYwMzA5NjJlLTAxLCAgIDUuNjI0MDY4NTk4OTc5NTExZS0wMSwKKyAgLTguMjY3NTI3ODgyMzgzNDg1ZS0wMSwgICA1LjYyNTY1Mzk4MTAwNjI2NmUtMDEsCisgIC04LjI2NjQ0OTAyNDc2MjY0M2UtMDEsICAgNS42MjcyMzkxNTYxOTM4MDRlLTAxLAorICAtOC4yNjUzNjk4NjMyMDgxMDBlLTAxLCAgIDUuNjI4ODI0MTI0NDgzODQ0ZS0wMSwKKyAgLTguMjY0MjkwMzk3NzU5NTM1ZS0wMSwgICA1LjYzMDQwODg4NTgxODExMmUtMDEsCisgIC04LjI2MzIxMDYyODQ1NjYzNWUtMDEsICAgNS42MzE5OTM0NDAxMzgzNDFlLTAxLAorICAtOC4yNjIxMzA1NTUzMzkxMDJlLTAxLCAgIDUuNjMzNTc3Nzg3Mzg2MjcwZS0wMSwKKyAgLTguMjYxMDUwMTc4NDQ2NjQ2ZS0wMSwgICA1LjYzNTE2MTkyNzUwMzY0OGUtMDEsCisgIC04LjI1OTk2OTQ5NzgxODk5MWUtMDEsICAgNS42MzY3NDU4NjA0MzIyMzFlLTAxLAorICAtOC4yNTg4ODg1MTM0OTU4NjhlLTAxLCAgIDUuNjM4MzI5NTg2MTEzNzgyZS0wMSwKKyAgLTguMjU3ODA3MjI1NTE3MDI0ZS0wMSwgICA1LjYzOTkxMzEwNDQ5MDA3MGUtMDEsCisgIC04LjI1NjcyNTYzMzkyMjIxNGUtMDEsICAgNS42NDE0OTY0MTU1MDI4NzdlLTAxLAorICAtOC4yNTU2NDM3Mzg3NTEyMDVlLTAxLCAgIDUuNjQzMDc5NTE5MDkzOTg2ZS0wMSwKKyAgLTguMjU0NTYxNTQwMDQzNzc2ZS0wMSwgICA1LjY0NDY2MjQxNTIwNTE5NWUtMDEsCisgIC04LjI1MzQ3OTAzNzgzOTcxNGUtMDEsICAgNS42NDYyNDUxMDM3NzgzMDFlLTAxLAorICAtOC4yNTIzOTYyMzIxNzg4MjJlLTAxLCAgIDUuNjQ3ODI3NTg0NzU1MTE0ZS0wMSwKKyAgLTguMjUxMzEzMTIzMTAwOTExZS0wMSwgICA1LjY0OTQwOTg1ODA3NzQ1MmUtMDEsCisgIC04LjI1MDIyOTcxMDY0NTgwMmUtMDEsICAgNS42NTA5OTE5MjM2ODcxNDBlLTAxLAorICAtOC4yNDkxNDU5OTQ4NTMzMzJlLTAxLCAgIDUuNjUyNTczNzgxNTI2MDA4ZS0wMSwKKyAgLTguMjQ4MDYxOTc1NzYzMzQzZS0wMSwgICA1LjY1NDE1NTQzMTUzNTg5N2UtMDEsCisgIC04LjI0Njk3NzY1MzQxNTY5NWUtMDEsICAgNS42NTU3MzY4NzM2NTg2NTNlLTAxLAorICAtOC4yNDU4OTMwMjc4NTAyNTNlLTAxLCAgIDUuNjU3MzE4MTA3ODM2MTMxZS0wMSwKKyAgLTguMjQ0ODA4MDk5MTA2ODk1ZS0wMSwgICA1LjY1ODg5OTEzNDAxMDE5NmUtMDEsCisgIC04LjI0MzcyMjg2NzIyNTUxM2UtMDEsICAgNS42NjA0Nzk5NTIxMjI3MTRlLTAxLAorICAtOC4yNDI2MzczMzIyNDYwMDZlLTAxLCAgIDUuNjYyMDYwNTYyMTE1NTY3ZS0wMSwKKyAgLTguMjQxNTUxNDk0MjA4Mjg2ZS0wMSwgICA1LjY2MzY0MDk2MzkzMDYzOGUtMDEsCisgIC04LjI0MDQ2NTM1MzE1MjI3OGUtMDEsICAgNS42NjUyMjExNTc1MDk4MjFlLTAxLAorICAtOC4yMzkzNzg5MDkxMTc5MTRlLTAxLCAgIDUuNjY2ODAxMTQyNzk1MDE2ZS0wMSwKKyAgLTguMjM4MjkyMTYyMTQ1MTQwZS0wMSwgICA1LjY2ODM4MDkxOTcyODEzM2UtMDEsCisgIC04LjIzNzIwNTExMjI3MzkxNGUtMDEsICAgNS42Njk5NjA0ODgyNTEwODdlLTAxLAorICAtOC4yMzYxMTc3NTk1NDQyMDNlLTAxLCAgIDUuNjcxNTM5ODQ4MzA1ODAxZS0wMSwKKyAgLTguMjM1MDMwMTAzOTk1OTg1ZS0wMSwgICA1LjY3MzExODk5OTgzNDIwOGUtMDEsCisgIC04LjIzMzk0MjE0NTY2OTI1MWUtMDEsICAgNS42NzQ2OTc5NDI3NzgyNDVlLTAxLAorICAtOC4yMzI4NTM4ODQ2MDQwMDFlLTAxLCAgIDUuNjc2Mjc2Njc3MDc5ODYyZS0wMSwKKyAgLTguMjMxNzY1MzIwODQwMjQ5ZS0wMSwgICA1LjY3Nzg1NTIwMjY4MTAxMWUtMDEsCisgIC04LjIzMDY3NjQ1NDQxODAxN2UtMDEsICAgNS42Nzk0MzM1MTk1MjM2NTZlLTAxLAorICAtOC4yMjk1ODcyODUzNzczNDBlLTAxLCAgIDUuNjgxMDExNjI3NTQ5NzY1ZS0wMSwKKyAgLTguMjI4NDk3ODEzNzU4MjY0ZS0wMSwgICA1LjY4MjU4OTUyNjcwMTMxNWUtMDEsCisgIC04LjIyNzQwODAzOTYwMDg0NGUtMDEsICAgNS42ODQxNjcyMTY5MjAyOTNlLTAxLAorICAtOC4yMjYzMTc5NjI5NDUxNTBlLTAxLCAgIDUuNjg1NzQ0Njk4MTQ4NjkxZS0wMSwKKyAgLTguMjI1MjI3NTgzODMxMjU5ZS0wMSwgICA1LjY4NzMyMTk3MDMyODUxMGUtMDEsCisgIC04LjIyNDEzNjkwMjI5OTI2NGUtMDEsICAgNS42ODg4OTkwMzM0MDE3NTllLTAxLAorICAtOC4yMjMwNDU5MTgzODkyNjNlLTAxLCAgIDUuNjkwNDc1ODg3MzEwNDUxZS0wMSwKKyAgLTguMjIxOTU0NjMyMTQxMzcyZS0wMSwgICA1LjY5MjA1MjUzMTk5NjYxMmUtMDEsCisgIC04LjIyMDg2MzA0MzU5NTcxMWUtMDEsICAgNS42OTM2Mjg5Njc0MDIyNzJlLTAxLAorICAtOC4yMTk3NzExNTI3OTI0MTZlLTAxLCAgIDUuNjk1MjA1MTkzNDY5NDcxZS0wMSwKKyAgLTguMjE4Njc4OTU5NzcxNjMzZS0wMSwgICA1LjY5Njc4MTIxMDE0MDI1NmUtMDEsCisgIC04LjIxNzU4NjQ2NDU3MzUxN2UtMDEsICAgNS42OTgzNTcwMTczNTY2ODBlLTAxLAorICAtOC4yMTY0OTM2NjcyMzgyMzllLTAxLCAgIDUuNjk5OTMyNjE1MDYwODA1ZS0wMSwKKyAgLTguMjE1NDAwNTY3ODA1OTc2ZS0wMSwgICA1LjcwMTUwODAwMzE5NDcwM2UtMDEsCisgIC04LjIxNDMwNzE2NjMxNjkxOWUtMDEsICAgNS43MDMwODMxODE3MDA0NDllLTAxLAorICAtOC4yMTMyMTM0NjI4MTEyNjdlLTAxLCAgIDUuNzA0NjU4MTUwNTIwMTMwZS0wMSwKKyAgLTguMjEyMTE5NDU3MzI5MjM2ZS0wMSwgICA1LjcwNjIzMjkwOTU5NTgzOGUtMDEsCisgIC04LjIxMTAyNTE0OTkxMTA0NmUtMDEsICAgNS43MDc4MDc0NTg4Njk2NzNlLTAxLAorICAtOC4yMDk5MzA1NDA1OTY5MzZlLTAxLCAgIDUuNzA5MzgxNzk4MjgzNzQ0ZS0wMSwKKyAgLTguMjA4ODM1NjI5NDI3MTQ2ZS0wMSwgICA1LjcxMDk1NTkyNzc4MDE2N2UtMDEsCisgIC04LjIwNzc0MDQxNjQ0MTkzN2UtMDEsICAgNS43MTI1Mjk4NDczMDEwNjdlLTAxLAorICAtOC4yMDY2NDQ5MDE2ODE1NzVlLTAxLCAgIDUuNzE0MTAzNTU2Nzg4NTcyZS0wMSwKKyAgLTguMjA1NTQ5MDg1MTg2MzM5ZS0wMSwgICA1LjcxNTY3NzA1NjE4NDgyNmUtMDEsCisgIC04LjIwNDQ1Mjk2Njk5NjUyMGUtMDEsICAgNS43MTcyNTAzNDU0MzE5NzFlLTAxLAorICAtOC4yMDMzNTY1NDcxNTI0MThlLTAxLCAgIDUuNzE4ODIzNDI0NDcyMTY2ZS0wMSwKKyAgLTguMjAyMjU5ODI1Njk0MzQ3ZS0wMSwgICA1LjcyMDM5NjI5MzI0NzU3MGUtMDEsCisgIC04LjIwMTE2MjgwMjY2MjYyOGUtMDEsICAgNS43MjE5Njg5NTE3MDAzNTZlLTAxLAorICAtOC4yMDAwNjU0NzgwOTc1OTdlLTAxLCAgIDUuNzIzNTQxMzk5NzcyNjk5ZS0wMSwKKyAgLTguMTk4OTY3ODUyMDM5NTk4ZS0wMSwgICA1LjcyNTExMzYzNzQwNjc4OGUtMDEsCisgIC04LjE5Nzg2OTkyNDUyODk5MGUtMDEsICAgNS43MjY2ODU2NjQ1NDQ4MTJlLTAxLAorICAtOC4xOTY3NzE2OTU2MDYxMzllLTAxLCAgIDUuNzI4MjU3NDgxMTI4OTc1ZS0wMSwKKyAgLTguMTk1NjczMTY1MzExNDIyZS0wMSwgICA1LjcyOTgyOTA4NzEwMTQ4NmUtMDEsCisgIC04LjE5NDU3NDMzMzY4NTIzM2UtMDEsICAgNS43MzE0MDA0ODI0MDQ1NjBlLTAxLAorICAtOC4xOTM0NzUyMDA3Njc5NjllLTAxLCAgIDUuNzMyOTcxNjY2OTgwNDIyZS0wMSwKKyAgLTguMTkyMzc1NzY2NjAwMDQ1ZS0wMSwgICA1LjczNDU0MjY0MDc3MTMwNGUtMDEsCisgIC04LjE5MTI3NjAzMTIyMTg4MmUtMDEsICAgNS43MzYxMTM0MDM3MTk0NDZlLTAxLAorICAtOC4xOTAxNzU5OTQ2NzM5MTVlLTAxLCAgIDUuNzM3NjgzOTU1NzY3MDk2ZS0wMSwKKyAgLTguMTg5MDc1NjU2OTk2NTkwZS0wMSwgICA1LjczOTI1NDI5Njg1NjUwN2UtMDEsCisgIC04LjE4Nzk3NTAxODIzMDM2MGUtMDEsICAgNS43NDA4MjQ0MjY5Mjk5NDVlLTAxLAorICAtOC4xODY4NzQwNzg0MTU2OTdlLTAxLCAgIDUuNzQyMzk0MzQ1OTI5Njc5ZS0wMSwKKyAgLTguMTg1NzcyODM3NTkzMDc2ZS0wMSwgICA1Ljc0Mzk2NDA1Mzc5Nzk4N2UtMDEsCisgIC04LjE4NDY3MTI5NTgwMjk4N2UtMDEsICAgNS43NDU1MzM1NTA0NzcxNThlLTAxLAorICAtOC4xODM1Njk0NTMwODU5MzJlLTAxLCAgIDUuNzQ3MTAyODM1OTA5NDgzZS0wMSwKKyAgLTguMTgyNDY3MzA5NDgyNDIxZS0wMSwgICA1Ljc0ODY3MTkxMDAzNzI2N2UtMDEsCisgIC04LjE4MTM2NDg2NTAzMjk3N2UtMDEsICAgNS43NTAyNDA3NzI4MDI4MTdlLTAxLAorICAtOC4xODAyNjIxMTk3NzgxMzRlLTAxLCAgIDUuNzUxODA5NDI0MTQ4NDUxZS0wMSwKKyAgLTguMTc5MTU5MDczNzU4NDM5ZS0wMSwgICA1Ljc1MzM3Nzg2NDAxNjQ5NWUtMDEsCisgIC04LjE3ODA1NTcyNzAxNDQ0M2UtMDEsICAgNS43NTQ5NDYwOTIzNDkyODFlLTAxLAorICAtOC4xNzY5NTIwNzk1ODY3MTdlLTAxLCAgIDUuNzU2NTE0MTA5MDg5MTUxZS0wMSwKKyAgLTguMTc1ODQ4MTMxNTE1ODM3ZS0wMSwgICA1Ljc1ODA4MTkxNDE3ODQ1M2UtMDEsCisgIC04LjE3NDc0Mzg4Mjg0MjM5MmUtMDEsICAgNS43NTk2NDk1MDc1NTk1NDJlLTAxLAorICAtOC4xNzM2MzkzMzM2MDY5ODVlLTAxLCAgIDUuNzYxMjE2ODg5MTc0NzgzZS0wMSwKKyAgLTguMTcyNTM0NDgzODUwMjIzZS0wMSwgICA1Ljc2Mjc4NDA1ODk2NjU0OWUtMDEsCisgIC04LjE3MTQyOTMzMzYxMjczMGUtMDEsICAgNS43NjQzNTEwMTY4NzcyMThlLTAxLAorICAtOC4xNzAzMjM4ODI5MzUxMzllLTAxLCAgIDUuNzY1OTE3NzYyODQ5MTc4ZS0wMSwKKyAgLTguMTY5MjE4MTMxODU4MDk1ZS0wMSwgICA1Ljc2NzQ4NDI5NjgyNDgyNGUtMDEsCisgIC04LjE2ODExMjA4MDQyMjI1M2UtMDEsICAgNS43NjkwNTA2MTg3NDY1NjBlLTAxLAorICAtOC4xNjcwMDU3Mjg2NjgyNzhlLTAxLCAgIDUuNzcwNjE2NzI4NTU2Nzk0ZS0wMSwKKyAgLTguMTY1ODk5MDc2NjM2ODQ5ZS0wMSwgICA1Ljc3MjE4MjYyNjE5Nzk0OWUtMDEsCisgIC04LjE2NDc5MjEyNDM2ODY1NGUtMDEsICAgNS43NzM3NDgzMTE2MTI0NDllLTAxLAorICAtOC4xNjM2ODQ4NzE5MDQzOTJlLTAxLCAgIDUuNzc1MzEzNzg0NzQyNzI3ZS0wMSwKKyAgLTguMTYyNTc3MzE5Mjg0Nzc0ZS0wMSwgICA1Ljc3Njg3OTA0NTUzMTIyOGUtMDEsCisgIC04LjE2MTQ2OTQ2NjU1MDUyM2UtMDEsICAgNS43Nzg0NDQwOTM5MjAzOThlLTAxLAorICAtOC4xNjAzNjEzMTM3NDIzNjhlLTAxLCAgIDUuNzgwMDA4OTI5ODUyNjk5ZS0wMSwKKyAgLTguMTU5MjUyODYwOTAxMDU1ZS0wMSwgICA1Ljc4MTU3MzU1MzI3MDU5NGUtMDEsCisgIC04LjE1ODE0NDEwODA2NzMzOGUtMDEsICAgNS43ODMxMzc5NjQxMTY1NTZlLTAxLAorICAtOC4xNTcwMzUwNTUyODE5ODNlLTAxLCAgIDUuNzg0NzAyMTYyMzMzMDY2ZS0wMSwKKyAgLTguMTU1OTI1NzAyNTg1NzY4ZS0wMSwgICA1Ljc4NjI2NjE0Nzg2MjYxNGUtMDEsCisgIC04LjE1NDgxNjA1MDAxOTQ3OGUtMDEsICAgNS43ODc4Mjk5MjA2NDc2OTdlLTAxLAorICAtOC4xNTM3MDYwOTc2MjM5MTNlLTAxLCAgIDUuNzg5MzkzNDgwNjMwODE4ZS0wMSwKKyAgLTguMTUyNTk1ODQ1NDM5ODgzZS0wMSwgICA1Ljc5MDk1NjgyNzc1NDQ5MWUtMDEsCisgIC04LjE1MTQ4NTI5MzUwODIwOGUtMDEsICAgNS43OTI1MTk5NjE5NjEyMzZlLTAxLAorICAtOC4xNTAzNzQ0NDE4Njk3MjJlLTAxLCAgIDUuNzk0MDgyODgzMTkzNTc5ZS0wMSwKKyAgLTguMTQ5MjYzMjkwNTY1MjY2ZS0wMSwgICA1Ljc5NTY0NTU5MTM5NDA1NmUtMDEsCisgIC04LjE0ODE1MTgzOTYzNTY5NGUtMDEsICAgNS43OTcyMDgwODY1MDUyMTRlLTAxLAorICAtOC4xNDcwNDAwODkxMjE4NzFlLTAxLCAgIDUuNzk4NzcwMzY4NDY5NjAzZS0wMSwKKyAgLTguMTQ1OTI4MDM5MDY0NjczZS0wMSwgICA1LjgwMDMzMjQzNzIyOTc4MmUtMDEsCisgIC04LjE0NDgxNTY4OTUwNDk4NmUtMDEsICAgNS44MDE4OTQyOTI3MjgzMTdlLTAxLAorICAtOC4xNDM3MDMwNDA0ODM3MTFlLTAxLCAgIDUuODAzNDU1OTM0OTA3NzgzZS0wMSwKKyAgLTguMTQyNTkwMDkyMDQxNzUzZS0wMSwgICA1LjgwNTAxNzM2MzcxMDc2NWUtMDEsCisgIC04LjE0MTQ3Njg0NDIyMDAzNGUtMDEsICAgNS44MDY1Nzg1NzkwNzk4NTNlLTAxLAorICAtOC4xNDAzNjMyOTcwNTk0ODRlLTAxLCAgIDUuODA4MTM5NTgwOTU3NjQ1ZS0wMSwKKyAgLTguMTM5MjQ5NDUwNjAxMDQ2ZS0wMSwgICA1LjgwOTcwMDM2OTI4Njc0OGUtMDEsCisgIC04LjEzODEzNTMwNDg4NTY3MmUtMDEsICAgNS44MTEyNjA5NDQwMDk3NzZlLTAxLAorICAtOC4xMzcwMjA4NTk5NTQzMjdlLTAxLCAgIDUuODEyODIxMzA1MDY5MzUwZS0wMSwKKyAgLTguMTM1OTA2MTE1ODQ3OTg1ZS0wMSwgICA1LjgxNDM4MTQ1MjQwODEwMmUtMDEsCisgIC04LjEzNDc5MTA3MjYwNzYzMmUtMDEsICAgNS44MTU5NDEzODU5Njg2NjllLTAxLAorICAtOC4xMzM2NzU3MzAyNzQyNjZlLTAxLCAgIDUuODE3NTAxMTA1NjkzNjk2ZS0wMSwKKyAgLTguMTMyNTYwMDg4ODg4ODk0ZS0wMSwgICA1LjgxOTA2MDYxMTUyNTgzOGUtMDEsCisgIC04LjEzMTQ0NDE0ODQ5MjUzNmUtMDEsICAgNS44MjA2MTk5MDM0MDc3NTRlLTAxLAorICAtOC4xMzAzMjc5MDkxMjYyMjBlLTAxLCAgIDUuODIyMTc4OTgxMjgyMTE3ZS0wMSwKKyAgLTguMTI5MjExMzcwODMwOTg4ZS0wMSwgICA1LjgyMzczNzg0NTA5MTYwMWUtMDEsCisgIC04LjEyODA5NDUzMzY0Nzg5M2UtMDEsICAgNS44MjUyOTY0OTQ3Nzg4OTNlLTAxLAorICAtOC4xMjY5NzczOTc2MTc5OTVlLTAxLCAgIDUuODI2ODU0OTMwMjg2Njg1ZS0wMSwKKyAgLTguMTI1ODU5OTYyNzgyMzcxZS0wMSwgICA1LjgyODQxMzE1MTU1NzY3NmUtMDEsCisgIC04LjEyNDc0MjIyOTE4MjEwNWUtMDEsICAgNS44Mjk5NzExNTg1MzQ1NzdlLTAxLAorICAtOC4xMjM2MjQxOTY4NTgyOTJlLTAxLCAgIDUuODMxNTI4OTUxMTYwMTA0ZS0wMSwKKyAgLTguMTIyNTA1ODY1ODUyMDM5ZS0wMSwgICA1LjgzMzA4NjUyOTM3Njk4M2UtMDEsCisgIC04LjEyMTM4NzIzNjIwNDQ2NWUtMDEsICAgNS44MzQ2NDM4OTMxMjc5NDNlLTAxLAorICAtOC4xMjAyNjgzMDc5NTY2OTdlLTAxLCAgIDUuODM2MjAxMDQyMzU1NzI4ZS0wMSwKKyAgLTguMTE5MTQ5MDgxMTQ5ODc4ZS0wMSwgICA1LjgzNzc1Nzk3NzAwMzA4MWUtMDEsCisgIC04LjExODAyOTU1NTgyNTE1NWUtMDEsICAgNS44MzkzMTQ2OTcwMTI3NjJlLTAxLAorICAtOC4xMTY5MDk3MzIwMjM2OTBlLTAxLCAgIDUuODQwODcxMjAyMzI3NTM0ZS0wMSwKKyAgLTguMTE1Nzg5NjA5Nzg2NjU5ZS0wMSwgICA1Ljg0MjQyNzQ5Mjg5MDE3MGUtMDEsCisgIC04LjExNDY2OTE4OTE1NTI0MmUtMDEsICAgNS44NDM5ODM1Njg2NDM0NDZlLTAxLAorICAtOC4xMTM1NDg0NzAxNzA2MzdlLTAxLCAgIDUuODQ1NTM5NDI5NTMwMTUzZS0wMSwKKyAgLTguMTEyNDI3NDUyODc0MDQ4ZS0wMSwgICA1Ljg0NzA5NTA3NTQ5MzA4NGUtMDEsCisgIC04LjExMTMwNjEzNzMwNjY5MmUtMDEsICAgNS44NDg2NTA1MDY0NzUwNDVlLTAxLAorICAtOC4xMTAxODQ1MjM1MDk3OTVlLTAxLCAgIDUuODUwMjA1NzIyNDE4ODQ1ZS0wMSwKKyAgLTguMTA5MDYyNjExNTI0NTk3ZS0wMSwgICA1Ljg1MTc2MDcyMzI2NzMwNGUtMDEsCisgIC04LjEwNzk0MDQwMTM5MjM0N2UtMDEsICAgNS44NTMzMTU1MDg5NjMyNDllLTAxLAorICAtOC4xMDY4MTc4OTMxNTQzMDhlLTAxLCAgIDUuODU0ODcwMDc5NDQ5NTEzZS0wMSwKKyAgLTguMTA1Njk1MDg2ODUxNzQ2ZS0wMSwgICA1Ljg1NjQyNDQzNDY2ODk0NGUtMDEsCisgIC04LjEwNDU3MTk4MjUyNTk0OGUtMDEsICAgNS44NTc5Nzg1NzQ1NjQzODllLTAxLAorICAtOC4xMDM0NDg1ODAyMTgyMDVlLTAxLCAgIDUuODU5NTMyNDk5MDc4NzA2ZS0wMSwKKyAgLTguMTAyMzI0ODc5OTY5ODIzZS0wMSwgICA1Ljg2MTA4NjIwODE1NDc2NGUtMDEsCisgIC04LjEwMTIwMDg4MTgyMjExNmUtMDEsICAgNS44NjI2Mzk3MDE3MzU0MzZlLTAxLAorICAtOC4xMDAwNzY1ODU4MTY0MTFlLTAxLCAgIDUuODY0MTkyOTc5NzYzNjA1ZS0wMSwKKyAgLTguMDk4OTUxOTkxOTk0MDQ0ZS0wMSwgICA1Ljg2NTc0NjA0MjE4MjE2MmUtMDEsCisgIC04LjA5NzgyNzEwMDM5NjM2NWUtMDEsICAgNS44NjcyOTg4ODg5MzQwMDRlLTAxLAorICAtOC4wOTY3MDE5MTEwNjQ3MzFlLTAxLCAgIDUuODY4ODUxNTE5OTYyMDQwZS0wMSwKKyAgLTguMDk1NTc2NDI0MDQwNTEzZS0wMSwgICA1Ljg3MDQwMzkzNTIwOTE4MGUtMDEsCisgIC04LjA5NDQ1MDYzOTM2NTA5MmUtMDEsICAgNS44NzE5NTYxMzQ2MTgzNDhlLTAxLAorICAtOC4wOTMzMjQ1NTcwNzk4NjBlLTAxLCAgIDUuODczNTA4MTE4MTMyNDc3ZS0wMSwKKyAgLTguMDkyMTk4MTc3MjI2MjE3ZS0wMSwgICA1Ljg3NTA1OTg4NTY5NDUwMGUtMDEsCisgIC04LjA5MTA3MTQ5OTg0NTU4MmUtMDEsICAgNS44NzY2MTE0MzcyNDczNjdlLTAxLAorICAtOC4wODk5NDQ1MjQ5NzkzNzdlLTAxLCAgIDUuODc4MTYyNzcyNzM0MDI5ZS0wMSwKKyAgLTguMDg4ODE3MjUyNjY5MDM2ZS0wMSwgICA1Ljg3OTcxMzg5MjA5NzQ1MGUtMDEsCisgIC04LjA4NzY4OTY4Mjk1NjAwOWUtMDEsICAgNS44ODEyNjQ3OTUyODA1OTllLTAxLAorICAtOC4wODY1NjE4MTU4ODE3NTBlLTAxLCAgIDUuODgyODE1NDgyMjI2NDUyZS0wMSwKKyAgLTguMDg1NDMzNjUxNDg3NzMwZS0wMSwgICA1Ljg4NDM2NTk1Mjg3Nzk5OGUtMDEsCisgIC04LjA4NDMwNTE4OTgxNTQyN2UtMDEsICAgNS44ODU5MTYyMDcxNzgyMjllLTAxLAorICAtOC4wODMxNzY0MzA5MDYzMzNlLTAxLCAgIDUuODg3NDY2MjQ1MDcwMTQ1ZS0wMSwKKyAgLTguMDgyMDQ3Mzc0ODAxOTQ3ZS0wMSwgICA1Ljg4OTAxNjA2NjQ5Njc1N2UtMDEsCisgIC04LjA4MDkxODAyMTU0Mzc4NGUtMDEsICAgNS44OTA1NjU2NzE0MDEwODVlLTAxLAorICAtOC4wNzk3ODgzNzExNzMzNjNlLTAxLCAgIDUuODkyMTE1MDU5NzI2MTUwZS0wMSwKKyAgLTguMDc4NjU4NDIzNzMyMjIxZS0wMSwgICA1Ljg5MzY2NDIzMTQxNDk4OGUtMDEsCisgIC04LjA3NzUyODE3OTI2MTkwNGUtMDEsICAgNS44OTUyMTMxODY0MTA2MzllLTAxLAorICAtOC4wNzYzOTc2Mzc4MDM5NjVlLTAxLCAgIDUuODk2NzYxOTI0NjU2MTU0ZS0wMSwKKyAgLTguMDc1MjY2Nzk5Mzk5OTcyZS0wMSwgICA1Ljg5ODMxMDQ0NjA5NDU4OGUtMDEsCisgIC04LjA3NDEzNTY2NDA5MTUwMmUtMDEsICAgNS44OTk4NTg3NTA2NjkwMDllLTAxLAorICAtOC4wNzMwMDQyMzE5MjAxNDRlLTAxLCAgIDUuOTAxNDA2ODM4MzIyNDg4ZS0wMSwKKyAgLTguMDcxODcyNTAyOTI3NTAwZS0wMSwgICA1LjkwMjk1NDcwODk5ODEwOGUtMDEsCisgIC04LjA3MDc0MDQ3NzE1NTE3NmUtMDEsICAgNS45MDQ1MDIzNjI2Mzg5NThlLTAxLAorICAtOC4wNjk2MDgxNTQ2NDQ3OTdlLTAxLCAgIDUuOTA2MDQ5Nzk5MTg4MTMzZS0wMSwKKyAgLTguMDY4NDc1NTM1NDM3OTkzZS0wMSwgICA1LjkwNzU5NzAxODU4ODc0MmUtMDEsCisgIC04LjA2NzM0MjYxOTU3NjQwOWUtMDEsICAgNS45MDkxNDQwMjA3ODM4OTVlLTAxLAorICAtOC4wNjYyMDk0MDcxMDE2OTdlLTAxLCAgIDUuOTEwNjkwODA1NzE2NzE0ZS0wMSwKKyAgLTguMDY1MDc1ODk4MDU1NTIzZS0wMSwgICA1LjkxMjIzNzM3MzMzMDMyOWUtMDEsCisgIC04LjA2Mzk0MjA5MjQ3OTU2MmUtMDEsICAgNS45MTM3ODM3MjM1Njc4NzZlLTAxLAorICAtOC4wNjI4MDc5OTA0MTU1MDVlLTAxLCAgIDUuOTE1MzI5ODU2MzcyNTAwZS0wMSwKKyAgLTguMDYxNjczNTkxOTA1MDQ0ZS0wMSwgICA1LjkxNjg3NTc3MTY4NzM1NGUtMDEsCisgIC04LjA2MDUzODg5Njk4OTg5MWUtMDEsICAgNS45MTg0MjE0Njk0NTU2MDFlLTAxLAorICAtOC4wNTk0MDM5MDU3MTE3NjNlLTAxLCAgIDUuOTE5OTY2OTQ5NjIwNDEwZS0wMSwKKyAgLTguMDU4MjY4NjE4MTEyMzkzZS0wMSwgICA1LjkyMTUxMjIxMjEyNDk1NWUtMDEsCisgIC04LjA1NzEzMzAzNDIzMzUyMmUtMDEsICAgNS45MjMwNTcyNTY5MTI0MjNlLTAxLAorICAtOC4wNTU5OTcxNTQxMTY5MDFlLTAxLCAgIDUuOTI0NjAyMDgzOTI2MDA4ZS0wMSwKKyAgLTguMDU0ODYwOTc3ODA0MjkyZS0wMSwgICA1LjkyNjE0NjY5MzEwODkxMWUtMDEsCisgIC04LjA1MzcyNDUwNTMzNzQ3MWUtMDEsICAgNS45Mjc2OTEwODQ0MDQzNDFlLTAxLAorICAtOC4wNTI1ODc3MzY3NTgyMjJlLTAxLCAgIDUuOTI5MjM1MjU3NzU1NTEzZS0wMSwKKyAgLTguMDUxNDUwNjcyMTA4MzQyZS0wMSwgICA1LjkzMDc3OTIxMzEwNTY1NWUtMDEsCisgIC04LjA1MDMxMzMxMTQyOTYzN2UtMDEsICAgNS45MzIzMjI5NTAzOTc5OThlLTAxLAorICAtOC4wNDkxNzU2NTQ3NjM5MjNlLTAxLCAgIDUuOTMzODY2NDY5NTc1Nzg1ZS0wMSwKKyAgLTguMDQ4MDM3NzAyMTUzMDI5ZS0wMSwgICA1LjkzNTQwOTc3MDU4MjI2NGUtMDEsCisgIC04LjA0Njg5OTQ1MzYzODc5NWUtMDEsICAgNS45MzY5NTI4NTMzNjA2OTJlLTAxLAorICAtOC4wNDU3NjA5MDkyNjMwNzFlLTAxLCAgIDUuOTM4NDk1NzE3ODU0MzM2ZS0wMSwKKyAgLTguMDQ0NjIyMDY5MDY3NzE4ZS0wMSwgICA1Ljk0MDAzODM2NDAwNjQ2N2UtMDEsCisgIC04LjA0MzQ4MjkzMzA5NDYwOGUtMDEsICAgNS45NDE1ODA3OTE3NjAzNjhlLTAxLAorICAtOC4wNDIzNDM1MDEzODU2MjRlLTAxLCAgIDUuOTQzMTIzMDAxMDU5MzI4ZS0wMSwKKyAgLTguMDQxMjAzNzczOTgyNjU4ZS0wMSwgICA1Ljk0NDY2NDk5MTg0NjY0NGUtMDEsCisgIC04LjA0MDA2Mzc1MDkyNzYxNWUtMDEsICAgNS45NDYyMDY3NjQwNjU2MjJlLTAxLAorICAtOC4wMzg5MjM0MzIyNjI0MTNlLTAxLCAgIDUuOTQ3NzQ4MzE3NjU5NTc2ZS0wMSwKKyAgLTguMDM3NzgyODE4MDI4OTc2ZS0wMSwgICA1Ljk0OTI4OTY1MjU3MTgyNGUtMDEsCisgIC04LjAzNjY0MTkwODI2OTI0MWUtMDEsICAgNS45NTA4MzA3Njg3NDU3MDBlLTAxLAorICAtOC4wMzU1MDA3MDMwMjUxNTdlLTAxLCAgIDUuOTUyMzcxNjY2MTI0NTM4ZS0wMSwKKyAgLTguMDM0MzU5MjAyMzM4NjgxZS0wMSwgICA1Ljk1MzkxMjM0NDY1MTY4N2UtMDEsCisgIC04LjAzMzIxNzQwNjI1MTc4NmUtMDEsICAgNS45NTU0NTI4MDQyNzA0OThlLTAxLAorICAtOC4wMzIwNzUzMTQ4MDY0NDllLTAxLCAgIDUuOTU2OTkzMDQ0OTI0MzM0ZS0wMSwKKyAgLTguMDMwOTMyOTI4MDQ0NjY0ZS0wMSwgICA1Ljk1ODUzMzA2NjU1NjU2M2UtMDEsCisgIC04LjAyOTc5MDI0NjAwODQzMmUtMDEsICAgNS45NjAwNzI4NjkxMTA1NjVlLTAxLAorICAtOC4wMjg2NDcyNjg3Mzk3NjdlLTAxLCAgIDUuOTYxNjEyNDUyNTI5NzI1ZS0wMSwKKyAgLTguMDI3NTAzOTk2MjgwNjkyZS0wMSwgICA1Ljk2MzE1MTgxNjc1NzQzN2UtMDEsCisgIC04LjAyNjM2MDQyODY3MzI0MmUtMDEsICAgNS45NjQ2OTA5NjE3MzcxMDRlLTAxLAorICAtOC4wMjUyMTY1NjU5NTk0NjRlLTAxLCAgIDUuOTY2MjI5ODg3NDEyMTMyZS0wMSwKKyAgLTguMDI0MDcyNDA4MTgxNDEzZS0wMSwgICA1Ljk2Nzc2ODU5MzcyNTk0NGUtMDEsCisgIC04LjAyMjkyNzk1NTM4MTE1N2UtMDEsICAgNS45NjkzMDcwODA2MjE5NjVlLTAxLAorICAtOC4wMjE3ODMyMDc2MDA3NzRlLTAxLCAgIDUuOTcwODQ1MzQ4MDQzNjI3ZS0wMSwKKyAgLTguMDIwNjM4MTY0ODgyMzU0ZS0wMSwgICA1Ljk3MjM4MzM5NTkzNDM3NGUtMDEsCisgIC04LjAxOTQ5MjgyNzI2Nzk5OGUtMDEsICAgNS45NzM5MjEyMjQyMzc2NTdlLTAxLAorICAtOC4wMTgzNDcxOTQ3OTk4MTNlLTAxLCAgIDUuOTc1NDU4ODMyODk2OTMyZS0wMSwKKyAgLTguMDE3MjAxMjY3NTE5OTIzZS0wMSwgICA1Ljk3Njk5NjIyMTg1NTY2OGUtMDEsCisgIC04LjAxNjA1NTA0NTQ3MDQ2MmUtMDEsICAgNS45Nzg1MzMzOTEwNTczMzllLTAxLAorICAtOC4wMTQ5MDg1Mjg2OTM1NzBlLTAxLCAgIDUuOTgwMDcwMzQwNDQ1NDI3ZS0wMSwKKyAgLTguMDEzNzYxNzE3MjMxNDAyZS0wMSwgICA1Ljk4MTYwNzA2OTk2MzQyM2UtMDEsCisgIC04LjAxMjYxNDYxMTEyNjEyNWUtMDEsICAgNS45ODMxNDM1Nzk1NTQ4MjZlLTAxLAorICAtOC4wMTE0NjcyMTA0MTk5MTRlLTAxLCAgIDUuOTg0Njc5ODY5MTYzMTQzZS0wMSwKKyAgLTguMDEwMzE5NTE1MTU0OTUzZS0wMSwgICA1Ljk4NjIxNTkzODczMTg4OWUtMDEsCisgIC04LjAwOTE3MTUyNTM3MzQ0M2UtMDEsICAgNS45ODc3NTE3ODgyMDQ1ODdlLTAxLAorICAtOC4wMDgwMjMyNDExMTc1OTFlLTAxLCAgIDUuOTg5Mjg3NDE3NTI0NzY5ZS0wMSwKKyAgLTguMDA2ODc0NjYyNDI5NjE2ZS0wMSwgICA1Ljk5MDgyMjgyNjYzNTk3M2UtMDEsCisgIC04LjAwNTcyNTc4OTM1MTc0OWUtMDEsICAgNS45OTIzNTgwMTU0ODE3NDZlLTAxLAorICAtOC4wMDQ1NzY2MjE5MjYyMjhlLTAxLCAgIDUuOTkzODkyOTg0MDA1NjQ1ZS0wMSwKKyAgLTguMDAzNDI3MTYwMTk1MzA3ZS0wMSwgICA1Ljk5NTQyNzczMjE1MTIzNGUtMDEsCisgIC04LjAwMjI3NzQwNDIwMTI0OGUtMDEsICAgNS45OTY5NjIyNTk4NjIwODNlLTAxLAorICAtOC4wMDExMjczNTM5ODYzMjRlLTAxLCAgIDUuOTk4NDk2NTY3MDgxNzcyZS0wMSwKKyAgLTcuOTk5OTc3MDA5NTkyODE5ZS0wMSwgICA2LjAwMDAzMDY1Mzc1Mzg4OWUtMDEsCisgIC03Ljk5ODgyNjM3MTA2MzAyOGUtMDEsICAgNi4wMDE1NjQ1MTk4MjIwMzJlLTAxLAorICAtNy45OTc2NzU0Mzg0MzkyNTdlLTAxLCAgIDYuMDAzMDk4MTY1MjI5ODA0ZS0wMSwKKyAgLTcuOTk2NTI0MjExNzYzODIyZS0wMSwgICA2LjAwNDYzMTU4OTkyMDgxNmUtMDEsCisgIC03Ljk5NTM3MjY5MTA3OTA1MGUtMDEsICAgNi4wMDYxNjQ3OTM4Mzg2OTBlLTAxLAorICAtNy45OTQyMjA4NzY0MjcyODBlLTAxLCAgIDYuMDA3Njk3Nzc2OTI3MDUyZS0wMSwKKyAgLTcuOTkzMDY4NzY3ODUwODYyZS0wMSwgICA2LjAwOTIzMDUzOTEyOTU0MWUtMDEsCisgIC03Ljk5MTkxNjM2NTM5MjE1MmUtMDEsICAgNi4wMTA3NjMwODAzODk4MDJlLTAxLAorICAtNy45OTA3NjM2NjkwOTM1MjRlLTAxLCAgIDYuMDEyMjk1NDAwNjUxNDg1ZS0wMSwKKyAgLTcuOTg5NjEwNjc4OTk3MzU4ZS0wMSwgICA2LjAxMzgyNzQ5OTg1ODI1NGUtMDEsCisgIC03Ljk4ODQ1NzM5NTE0NjA0NmUtMDEsICAgNi4wMTUzNTkzNzc5NTM3NzdlLTAxLAorICAtNy45ODczMDM4MTc1ODE5OTJlLTAxLCAgIDYuMDE2ODkxMDM0ODgxNzMwZS0wMSwKKyAgLTcuOTg2MTQ5OTQ2MzQ3NjA4ZS0wMSwgICA2LjAxODQyMjQ3MDU4NTgwMGUtMDEsCisgIC03Ljk4NDk5NTc4MTQ4NTMyMWUtMDEsICAgNi4wMTk5NTM2ODUwMDk2ODBlLTAxLAorICAtNy45ODM4NDEzMjMwMzc1NjRlLTAxLCAgIDYuMDIxNDg0Njc4MDk3MDcyZS0wMSwKKyAgLTcuOTgyNjg2NTcxMDQ2Nzg0ZS0wMSwgICA2LjAyMzAxNTQ0OTc5MTY4NWUtMDEsCisgIC03Ljk4MTUzMTUyNTU1NTQzOGUtMDEsICAgNi4wMjQ1NDYwMDAwMzcyMzhlLTAxLAorICAtNy45ODAzNzYxODY2MDU5OTRlLTAxLCAgIDYuMDI2MDc2MzI4Nzc3NDU0ZS0wMSwKKyAgLTcuOTc5MjIwNTU0MjQwOTMwZS0wMSwgICA2LjAyNzYwNjQzNTk1NjA3MmUtMDEsCisgIC03Ljk3ODA2NDYyODUwMjczNmUtMDEsICAgNi4wMjkxMzYzMjE1MTY4MzBlLTAxLAorICAtNy45NzY5MDg0MDk0MzM5MTJlLTAxLCAgIDYuMDMwNjY1OTg1NDAzNDgyZS0wMSwKKyAgLTcuOTc1NzUxODk3MDc2OTY3ZS0wMSwgICA2LjAzMjE5NTQyNzU1OTc4NGUtMDEsCisgIC03Ljk3NDU5NTA5MTQ3NDQyNWUtMDEsICAgNi4wMzM3MjQ2NDc5Mjk1MDNlLTAxLAorICAtNy45NzM0Mzc5OTI2Njg4MTdlLTAxLCAgIDYuMDM1MjUzNjQ2NDU2NDE1ZS0wMSwKKyAgLTcuOTcyMjgwNjAwNzAyNjg4ZS0wMSwgICA2LjAzNjc4MjQyMzA4NDMwNGUtMDEsCisgIC03Ljk3MTEyMjkxNTYxODU4OWUtMDEsICAgNi4wMzgzMTA5Nzc3NTY5NTllLTAxLAorICAtNy45Njk5NjQ5Mzc0NTkwODhlLTAxLCAgIDYuMDM5ODM5MzEwNDE4MTgwZS0wMSwKKyAgLTcuOTY4ODA2NjY2MjY2NzU4ZS0wMSwgICA2LjA0MTM2NzQyMTAxMTc3NWUtMDEsCisgIC03Ljk2NzY0ODEwMjA4NDE4OGUtMDEsICAgNi4wNDI4OTUzMDk0ODE1NjBlLTAxLAorICAtNy45NjY0ODkyNDQ5NTM5NzNlLTAxLCAgIDYuMDQ0NDIyOTc1NzcxMzU5ZS0wMSwKKyAgLTcuOTY1MzMwMDk0OTE4NzIwZS0wMSwgICA2LjA0NTk1MDQxOTgyNTAwNGUtMDEsCisgIC03Ljk2NDE3MDY1MjAyMTA1MGUtMDEsICAgNi4wNDc0Nzc2NDE1ODYzMzRlLTAxLAorICAtNy45NjMwMTA5MTYzMDM1OTFlLTAxLCAgIDYuMDQ5MDA0NjQwOTk5MTk4ZS0wMSwKKyAgLTcuOTYxODUwODg3ODA4OTg0ZS0wMSwgICA2LjA1MDUzMTQxODAwNzQ1M2UtMDEsCisgIC03Ljk2MDY5MDU2NjU3OTg4MGUtMDEsICAgNi4wNTIwNTc5NzI1NTQ5NjVlLTAxLAorICAtNy45NTk1Mjk5NTI2NTg5MzllLTAxLCAgIDYuMDUzNTg0MzA0NTg1NjA1ZS0wMSwKKyAgLTcuOTU4MzY5MDQ2MDg4ODM2ZS0wMSwgICA2LjA1NTExMDQxNDA0MzI1NWUtMDEsCisgIC03Ljk1NzIwNzg0NjkxMjI1MWUtMDEsICAgNi4wNTY2MzYzMDA4NzE4MDRlLTAxLAorICAtNy45NTYwNDYzNTUxNzE4ODFlLTAxLCAgIDYuMDU4MTYxOTY1MDE1MTUwZS0wMSwKKyAgLTcuOTU0ODg0NTcwOTEwNDMwZS0wMSwgICA2LjA1OTY4NzQwNjQxNzE5N2UtMDEsCisgIC03Ljk1MzcyMjQ5NDE3MDYxM2UtMDEsICAgNi4wNjEyMTI2MjUwMjE4NjFlLTAxLAorICAtNy45NTI1NjAxMjQ5OTUxNTZlLTAxLCAgIDYuMDYyNzM3NjIwNzczMDY0ZS0wMSwKKyAgLTcuOTUxMzk3NDYzNDI2Nzk2ZS0wMSwgICA2LjA2NDI2MjM5MzYxNDczNmUtMDEsCisgIC03Ljk1MDIzNDUwOTUwODI4MGUtMDEsICAgNi4wNjU3ODY5NDM0OTA4MTNlLTAxLAorICAtNy45NDkwNzEyNjMyODIzNzBlLTAxLCAgIDYuMDY3MzExMjcwMzQ1MjQ1ZS0wMSwKKyAgLTcuOTQ3OTA3NzI0NzkxODMyZS0wMSwgICA2LjA2ODgzNTM3NDEyMTk4NWUtMDEsCisgIC03Ljk0Njc0Mzg5NDA3OTQ0NWUtMDEsICAgNi4wNzAzNTkyNTQ3NjQ5OTZlLTAxLAorICAtNy45NDU1Nzk3NzExODgwMDRlLTAxLCAgIDYuMDcxODgyOTEyMjE4MjUyZS0wMSwKKyAgLTcuOTQ0NDE1MzU2MTYwMzA2ZS0wMSwgICA2LjA3MzQwNjM0NjQyNTcyOWUtMDEsCisgIC03Ljk0MzI1MDY0OTAzOTE2NWUtMDEsICAgNi4wNzQ5Mjk1NTczMzE0MTVlLTAxLAorICAtNy45NDIwODU2NDk4Njc0MDZlLTAxLCAgIDYuMDc2NDUyNTQ0ODc5MzA4ZS0wMSwKKyAgLTcuOTQwOTIwMzU4Njg3ODYwZS0wMSwgICA2LjA3Nzk3NTMwOTAxMzQxMWUtMDEsCisgIC03LjkzOTc1NDc3NTU0MzM3MmUtMDEsICAgNi4wNzk0OTc4NDk2Nzc3MzZlLTAxLAorICAtNy45Mzg1ODg5MDA0NzY3OTdlLTAxLCAgIDYuMDgxMDIwMTY2ODE2MzA0ZS0wMSwKKyAgLTcuOTM3NDIyNzMzNTMxMDAyZS0wMSwgICA2LjA4MjU0MjI2MDM3MzE0NWUtMDEsCisgIC03LjkzNjI1NjI3NDc0ODg2M2UtMDEsICAgNi4wODQwNjQxMzAyOTIyOTJlLTAxLAorICAtNy45MzUwODk1MjQxNzMyNjdlLTAxLCAgIDYuMDg1NTg1Nzc2NTE3Nzk1ZS0wMSwKKyAgLTcuOTMzOTIyNDgxODQ3MTExZS0wMSwgICA2LjA4NzEwNzE5ODk5MzcwM2UtMDEsCisgIC03LjkzMjc1NTE0NzgxMzMwNmUtMDEsICAgNi4wODg2MjgzOTc2NjQwODJlLTAxLAorICAtNy45MzE1ODc1MjIxMTQ3NzFlLTAxLCAgIDYuMDkwMTQ5MzcyNDcyOTk4ZS0wMSwKKyAgLTcuOTMwNDE5NjA0Nzk0NDM2ZS0wMSwgICA2LjA5MTY3MDEyMzM2NDUzMmUtMDEsCisgIC03LjkyOTI1MTM5NTg5NTI0M2UtMDEsICAgNi4wOTMxOTA2NTAyODI3NjhlLTAxLAorICAtNy45MjgwODI4OTU0NjAxNDFlLTAxLCAgIDYuMDk0NzEwOTUzMTcxODAyZS0wMSwKKyAgLTcuOTI2OTE0MTAzNTMyMDk0ZS0wMSwgICA2LjA5NjIzMTAzMTk3NTczN2UtMDEsCisgIC03LjkyNTc0NTAyMDE1NDA3N2UtMDEsICAgNi4wOTc3NTA4ODY2Mzg2ODRlLTAxLAorICAtNy45MjQ1NzU2NDUzNjkwNzFlLTAxLCAgIDYuMDk5MjcwNTE3MTA0NzYxZS0wMSwKKyAgLTcuOTIzNDA1OTc5MjIwMDcyZS0wMSwgICA2LjEwMDc4OTkyMzMxODA5NmUtMDEsCisgIC03LjkyMjIzNjAyMTc1MDA4M2UtMDEsICAgNi4xMDIzMDkxMDUyMjI4MjZlLTAxLAorICAtNy45MjEwNjU3NzMwMDIxMjRlLTAxLCAgIDYuMTAzODI4MDYyNzYzMDk1ZS0wMSwKKyAgLTcuOTE5ODk1MjMzMDE5MjE4ZS0wMSwgICA2LjEwNTM0Njc5NTg4MzA1M2UtMDEsCisgIC03LjkxODcyNDQwMTg0NDQwNWUtMDEsICAgNi4xMDY4NjUzMDQ1MjY4NjNlLTAxLAorICAtNy45MTc1NTMyNzk1MjA3MzJlLTAxLCAgIDYuMTA4MzgzNTg4NjM4NjkyZS0wMSwKKyAgLTcuOTE2MzgxODY2MDkxMjU5ZS0wMSwgICA2LjEwOTkwMTY0ODE2MjcxN2UtMDEsCisgIC03LjkxNTIxMDE2MTU5OTA1MmUtMDEsICAgNi4xMTE0MTk0ODMwNDMxMjZlLTAxLAorICAtNy45MTQwMzgxNjYwODcxOTVlLTAxLCAgIDYuMTEyOTM3MDkzMjI0MTA5ZS0wMSwKKyAgLTcuOTEyODY1ODc5NTk4Nzc4ZS0wMSwgICA2LjExNDQ1NDQ3ODY0OTg3MGUtMDEsCisgIC03LjkxMTY5MzMwMjE3NjkwMmUtMDEsICAgNi4xMTU5NzE2MzkyNjQ2MTllLTAxLAorICAtNy45MTA1MjA0MzM4NjQ2ODBlLTAxLCAgIDYuMTE3NDg4NTc1MDEyNTczZS0wMSwKKyAgLTcuOTA5MzQ3Mjc0NzA1MjMzZS0wMSwgICA2LjExOTAwNTI4NTgzNzk2MWUtMDEsCisgIC03LjkwODE3MzgyNDc0MTY5OGUtMDEsICAgNi4xMjA1MjE3NzE2ODUwMTVlLTAxLAorICAtNy45MDcwMDAwODQwMTcyMTZlLTAxLCAgIDYuMTIyMDM4MDMyNDk3OTgwZS0wMSwKKyAgLTcuOTA1ODI2MDUyNTc0OTQ1ZS0wMSwgICA2LjEyMzU1NDA2ODIyMTEwNmUtMDEsCisgIC03LjkwNDY1MTczMDQ1ODA0OWUtMDEsICAgNi4xMjUwNjk4Nzg3OTg2NTZlLTAxLAorICAtNy45MDM0NzcxMTc3MDk3MDVlLTAxLCAgIDYuMTI2NTg1NDY0MTc0ODkzZS0wMSwKKyAgLTcuOTAyMzAyMjE0MzczMTAwZS0wMSwgICA2LjEyODEwMDgyNDI5NDA5N2UtMDEsCisgIC03LjkwMTEyNzAyMDQ5MTQzM2UtMDEsICAgNi4xMjk2MTU5NTkxMDA1NTJlLTAxLAorICAtNy44OTk5NTE1MzYxMDc5MTFlLTAxLCAgIDYuMTMxMTMwODY4NTM4NTQ5ZS0wMSwKKyAgLTcuODk4Nzc1NzYxMjY1NzUzZS0wMSwgICA2LjEzMjY0NTU1MjU1MjM5MGUtMDEsCisgIC03Ljg5NzU5OTY5NjAwODE5MWUtMDEsICAgNi4xMzQxNjAwMTEwODYzODZlLTAxLAorICAtNy44OTY0MjMzNDAzNzg0NjNlLTAxLCAgIDYuMTM1Njc0MjQ0MDg0ODUzZS0wMSwKKyAgLTcuODk1MjQ2Njk0NDE5ODIyZS0wMSwgICA2LjEzNzE4ODI1MTQ5MjExN2UtMDEsCisgIC03Ljg5NDA2OTc1ODE3NTUyOWUtMDEsICAgNi4xMzg3MDIwMzMyNTI1MTNlLTAxLAorICAtNy44OTI4OTI1MzE2ODg4NTdlLTAxLCAgIDYuMTQwMjE1NTg5MzEwMzg0ZS0wMSwKKyAgLTcuODkxNzE1MDE1MDAzMDg5ZS0wMSwgICA2LjE0MTcyODkxOTYxMDA4MGUtMDEsCisgIC03Ljg5MDUzNzIwODE2MTUxOWUtMDEsICAgNi4xNDMyNDIwMjQwOTU5NjBlLTAxLAorICAtNy44ODkzNTkxMTEyMDc0NTJlLTAxLCAgIDYuMTQ0NzU0OTAyNzEyMzkwZS0wMSwKKyAgLTcuODg4MTgwNzI0MTg0MjAzZS0wMSwgICA2LjE0NjI2NzU1NTQwMzc1MGUtMDEsCisgIC03Ljg4NzAwMjA0NzEzNTA5N2UtMDEsICAgNi4xNDc3Nzk5ODIxMTQ0MjFlLTAxLAorICAtNy44ODU4MjMwODAxMDM0NzFlLTAxLCAgIDYuMTQ5MjkyMTgyNzg4Nzk2ZS0wMSwKKyAgLTcuODg0NjQzODIzMTMyNjc1ZS0wMSwgICA2LjE1MDgwNDE1NzM3MTI3NWUtMDEsCisgIC03Ljg4MzQ2NDI3NjI2NjA2M2UtMDEsICAgNi4xNTIzMTU5MDU4MDYyNjhlLTAxLAorICAtNy44ODIyODQ0Mzk1NDcwMDVlLTAxLCAgIDYuMTUzODI3NDI4MDM4MTkyZS0wMSwKKyAgLTcuODgxMTA0MzEzMDE4ODgxZS0wMSwgICA2LjE1NTMzODcyNDAxMTQ3M2UtMDEsCisgIC03Ljg3OTkyMzg5NjcyNTA4MGUtMDEsICAgNi4xNTY4NDk3OTM2NzA1NDZlLTAxLAorICAtNy44Nzg3NDMxOTA3MDkwMDJlLTAxLCAgIDYuMTU4MzYwNjM2OTU5ODUxZS0wMSwKKyAgLTcuODc3NTYyMTk1MDE0MDYxZS0wMSwgICA2LjE1OTg3MTI1MzgyMzgzOGUtMDEsCisgIC03Ljg3NjM4MDkwOTY4MzY3NWUtMDEsICAgNi4xNjEzODE2NDQyMDY5NjllLTAxLAorICAtNy44NzUxOTkzMzQ3NjEyNzhlLTAxLCAgIDYuMTYyODkxODA4MDUzNzEwZS0wMSwKKyAgLTcuODc0MDE3NDcwMjkwMzE0ZS0wMSwgICA2LjE2NDQwMTc0NTMwODUzNmUtMDEsCisgIC03Ljg3MjgzNTMxNjMxNDIzNmUtMDEsICAgNi4xNjU5MTE0NTU5MTU5MzFlLTAxLAorICAtNy44NzE2NTI4NzI4NzY1MTBlLTAxLCAgIDYuMTY3NDIwOTM5ODIwMzg3ZS0wMSwKKyAgLTcuODcwNDcwMTQwMDIwNjA4ZS0wMSwgICA2LjE2ODkzMDE5Njk2NjQwN2UtMDEsCisgIC03Ljg2OTI4NzExNzc5MDAxOGUtMDEsICAgNi4xNzA0MzkyMjcyOTg0OThlLTAxLAorICAtNy44NjgxMDM4MDYyMjgyMzVlLTAxLCAgIDYuMTcxOTQ4MDMwNzYxMTc2ZS0wMSwKKyAgLTcuODY2OTIwMjA1Mzc4NzY4ZS0wMSwgICA2LjE3MzQ1NjYwNzI5ODk2OGUtMDEsCisgIC03Ljg2NTczNjMxNTI4NTEzMmUtMDEsICAgNi4xNzQ5NjQ5NTY4NTY0MDllLTAxLAorICAtNy44NjQ1NTIxMzU5OTA4NThlLTAxLCAgIDYuMTc2NDczMDc5Mzc4MDM5ZS0wMSwKKyAgLTcuODYzMzY3NjY3NTM5NDgzZS0wMSwgICA2LjE3Nzk4MDk3NDgwODQxMGUtMDEsCisgIC03Ljg2MjE4MjkwOTk3NDU1N2UtMDEsICAgNi4xNzk0ODg2NDMwOTIwODFlLTAxLAorICAtNy44NjA5OTc4NjMzMzk2MzllLTAxLCAgIDYuMTgwOTk2MDg0MTczNjIwZS0wMSwKKyAgLTcuODU5ODEyNTI3Njc4MzAyZS0wMSwgICA2LjE4MjUwMzI5Nzk5NzYwMmUtMDEsCisgIC03Ljg1ODYyNjkwMzAzNDEyNmUtMDEsICAgNi4xODQwMTAyODQ1MDg2MTBlLTAxLAorICAtNy44NTc0NDA5ODk0NTA3MDRlLTAxLCAgIDYuMTg1NTE3MDQzNjUxMjM3ZS0wMSwKKyAgLTcuODU2MjU0Nzg2OTcxNjM3ZS0wMSwgICA2LjE4NzAyMzU3NTM3MDA4NWUtMDEsCisgIC03Ljg1NTA2ODI5NTY0MDUzOWUtMDEsICAgNi4xODg1Mjk4Nzk2MDk3NjNlLTAxLAorICAtNy44NTM4ODE1MTU1MDEwMzZlLTAxLCAgIDYuMTkwMDM1OTU2MzE0ODg3ZS0wMSwKKyAgLTcuODUyNjk0NDQ2NTk2NzU5ZS0wMSwgICA2LjE5MTU0MTgwNTQzMDA4NGUtMDEsCisgIC03Ljg1MTUwNzA4ODk3MTM1NmUtMDEsICAgNi4xOTMwNDc0MjY4OTk5ODdlLTAxLAorICAtNy44NTAzMTk0NDI2Njg0ODFlLTAxLCAgIDYuMTk0NTUyODIwNjY5MjQwZS0wMSwKKyAgLTcuODQ5MTMxNTA3NzMxODAwZS0wMSwgICA2LjE5NjA1Nzk4NjY4MjQ5M2UtMDEsCisgIC03Ljg0Nzk0MzI4NDIwNDk5MmUtMDEsICAgNi4xOTc1NjI5MjQ4ODQ0MDdlLTAxLAorICAtNy44NDY3NTQ3NzIxMzE3NDNlLTAxLCAgIDYuMTk5MDY3NjM1MjE5NjQ3ZS0wMSwKKyAgLTcuODQ1NTY1OTcxNTU1NzUyZS0wMSwgICA2LjIwMDU3MjExNzYzMjg5MWUtMDEsCisgIC03Ljg0NDM3Njg4MjUyMDcyOGUtMDEsICAgNi4yMDIwNzYzNzIwNjg4MjRlLTAxLAorICAtNy44NDMxODc1MDUwNzAzODllLTAxLCAgIDYuMjAzNTgwMzk4NDcyMTM3ZS0wMSwKKyAgLTcuODQxOTk3ODM5MjQ4NDY2ZS0wMSwgICA2LjIwNTA4NDE5Njc4NzUzNGUtMDEsCisgIC03Ljg0MDgwNzg4NTA5ODcwMGUtMDEsICAgNi4yMDY1ODc3NjY5NTk3MjFlLTAxLAorICAtNy44Mzk2MTc2NDI2NjQ4NDFlLTAxLCAgIDYuMjA4MDkxMTA4OTMzNDE5ZS0wMSwKKyAgLTcuODM4NDI3MTExOTkwNjUyZS0wMSwgICA2LjIwOTU5NDIyMjY1MzM1MmUtMDEsCisgIC03LjgzNzIzNjI5MzExOTkwNWUtMDEsICAgNi4yMTEwOTcxMDgwNjQyNTZlLTAxLAorICAtNy44MzYwNDUxODYwOTYzODJlLTAxLCAgIDYuMjEyNTk5NzY1MTEwODc2ZS0wMSwKKyAgLTcuODM0ODUzNzkwOTYzODc4ZS0wMSwgICA2LjIxNDEwMjE5MzczNzk2MWUtMDEsCisgIC03LjgzMzY2MjEwNzc2NjE5N2UtMDEsICAgNi4yMTU2MDQzOTM4OTAyNzNlLTAxLAorICAtNy44MzI0NzAxMzY1NDcxNTRlLTAxLCAgIDYuMjE3MTA2MzY1NTEyNTc3ZS0wMSwKKyAgLTcuODMxMjc3ODc3MzUwNTczZS0wMSwgICA2LjIxODYwODEwODU0OTY1NGUtMDEsCisgIC03LjgzMDA4NTMzMDIyMDI5MWUtMDEsICAgNi4yMjAxMDk2MjI5NDYyODZlLTAxLAorICAtNy44Mjg4OTI0OTUyMDAxNTVlLTAxLCAgIDYuMjIxNjEwOTA4NjQ3MjY4ZS0wMSwKKyAgLTcuODI3Njk5MzcyMzM0MDIwZS0wMSwgICA2LjIyMzExMTk2NTU5NzQwM2UtMDEsCisgIC03LjgyNjUwNTk2MTY2NTc1N2UtMDEsICAgNi4yMjQ2MTI3OTM3NDE1MDBlLTAxLAorICAtNy44MjUzMTIyNjMyMzkyNDJlLTAxLCAgIDYuMjI2MTEzMzkzMDI0Mzc3ZS0wMSwKKyAgLTcuODI0MTE4Mjc3MDk4MzY1ZS0wMSwgICA2LjIyNzYxMzc2MzM5MDg2M2UtMDEsCisgIC03LjgyMjkyNDAwMzI4NzAyNGUtMDEsICAgNi4yMjkxMTM5MDQ3ODU3OTVlLTAxLAorICAtNy44MjE3Mjk0NDE4NDkxMzBlLTAxLCAgIDYuMjMwNjEzODE3MTU0MDEzZS0wMSwKKyAgLTcuODIwNTM0NTkyODI4NjAzZS0wMSwgICA2LjIzMjExMzUwMDQ0MDM3M2UtMDEsCisgIC03LjgxOTMzOTQ1NjI2OTM3NmUtMDEsICAgNi4yMzM2MTI5NTQ1ODk3MzJlLTAxLAorICAtNy44MTgxNDQwMzIyMTUzODhlLTAxLCAgIDYuMjM1MTEyMTc5NTQ2OTY0ZS0wMSwKKyAgLTcuODE2OTQ4MzIwNzEwNTk0ZS0wMSwgICA2LjIzNjYxMTE3NTI1Njk0NWUtMDEsCisgIC03LjgxNTc1MjMyMTc5ODk1NmUtMDEsICAgNi4yMzgxMDk5NDE2NjQ1NjFlLTAxLAorICAtNy44MTQ1NTYwMzU1MjQ0NDZlLTAxLCAgIDYuMjM5NjA4NDc4NzE0NzA3ZS0wMSwKKyAgLTcuODEzMzU5NDYxOTMxMDQ5ZS0wMSwgICA2LjI0MTEwNjc4NjM1MjI4NWUtMDEsCisgIC03LjgxMjE2MjYwMTA2Mjc2MWUtMDEsICAgNi4yNDI2MDQ4NjQ1MjIyMDdlLTAxLAorICAtNy44MTA5NjU0NTI5NjM1ODVlLTAxLCAgIDYuMjQ0MTAyNzEzMTY5MzkzZS0wMSwKKyAgLTcuODA5NzY4MDE3Njc3NTM3ZS0wMSwgICA2LjI0NTYwMDMzMjIzODc3MmUtMDEsCisgIC03LjgwODU3MDI5NTI0ODY0NmUtMDEsICAgNi4yNDcwOTc3MjE2NzUyODFlLTAxLAorICAtNy44MDczNzIyODU3MjA5NDVlLTAxLCAgIDYuMjQ4NTk0ODgxNDIzODYzZS0wMSwKKyAgLTcuODA2MTczOTg5MTM4NDg0ZS0wMSwgICA2LjI1MDA5MTgxMTQyOTQ3NWUtMDEsCisgIC03LjgwNDk3NTQwNTU0NTMxOWUtMDEsICAgNi4yNTE1ODg1MTE2MzcwNzZlLTAxLAorICAtNy44MDM3NzY1MzQ5ODU1MjBlLTAxLCAgIDYuMjUzMDg0OTgxOTkxNjQwZS0wMSwKKyAgLTcuODAyNTc3Mzc3NTAzMTY2ZS0wMSwgICA2LjI1NDU4MTIyMjQzODE0NGUtMDEsCisgIC03LjgwMTM3NzkzMzE0MjM0NmUtMDEsICAgNi4yNTYwNzcyMzI5MjE1NzRlLTAxLAorICAtNy44MDAxNzgyMDE5NDcxNjBlLTAxLCAgIDYuMjU3NTczMDEzMzg2OTI5ZS0wMSwKKyAgLTcuNzk4OTc4MTgzOTYxNzIwZS0wMSwgICA2LjI1OTA2ODU2Mzc3OTIxMWUtMDEsCisgIC03Ljc5Nzc3Nzg3OTIzMDE0NmUtMDEsICAgNi4yNjA1NjM4ODQwNDM0MzVlLTAxLAorICAtNy43OTY1NzcyODc3OTY1NjllLTAxLCAgIDYuMjYyMDU4OTc0MTI0NjIxZS0wMSwKKyAgLTcuNzk1Mzc2NDA5NzA1MTMzZS0wMSwgICA2LjI2MzU1MzgzMzk2NzgwMGUtMDEsCisgIC03Ljc5NDE3NTI0NDk5OTk4OWUtMDEsICAgNi4yNjUwNDg0NjM1MTgwMDhlLTAxLAorICAtNy43OTI5NzM3OTM3MjUzMDNlLTAxLCAgIDYuMjY2NTQyODYyNzIwMjkzZS0wMSwKKyAgLTcuNzkxNzcyMDU1OTI1MjQ3ZS0wMSwgICA2LjI2ODAzNzAzMTUxOTcxMmUtMDEsCisgIC03Ljc5MDU3MDAzMTY0NDAwNmUtMDEsICAgNi4yNjk1MzA5Njk4NjEzMjdlLTAxLAorICAtNy43ODkzNjc3MjA5MjU3NzVlLTAxLCAgIDYuMjcxMDI0Njc3NjkwMjA5ZS0wMSwKKyAgLTcuNzg4MTY1MTIzODE0NzYwZS0wMSwgICA2LjI3MjUxODE1NDk1MTQ0MWUtMDEsCisgIC03Ljc4Njk2MjI0MDM1NTE3NWUtMDEsICAgNi4yNzQwMTE0MDE1OTAxMTBlLTAxLAorICAtNy43ODU3NTkwNzA1OTEyNTBlLTAxLCAgIDYuMjc1NTA0NDE3NTUxMzE1ZS0wMSwKKyAgLTcuNzg0NTU1NjE0NTY3MjE5ZS0wMSwgICA2LjI3Njk5NzIwMjc4MDE2MmUtMDEsCisgIC03Ljc4MzM1MTg3MjMyNzMzMmUtMDEsICAgNi4yNzg0ODk3NTcyMjE3NjVlLTAxLAorICAtNy43ODIxNDc4NDM5MTU4NDVlLTAxLCAgIDYuMjc5OTgyMDgwODIxMjQ3ZS0wMSwKKyAgLTcuNzgwOTQzNTI5Mzc3MDI4ZS0wMSwgICA2LjI4MTQ3NDE3MzUyMzc0MGUtMDEsCisgIC03Ljc3OTczODkyODc1NTE2MWUtMDEsICAgNi4yODI5NjYwMzUyNzQzODNlLTAxLAorICAtNy43Nzg1MzQwNDIwOTQ1MzFlLTAxLCAgIDYuMjg0NDU3NjY2MDE4MzI3ZS0wMSwKKyAgLTcuNzc3MzI4ODY5NDM5NDQwZS0wMSwgICA2LjI4NTk0OTA2NTcwMDcyNmUtMDEsCisgIC03Ljc3NjEyMzQxMDgzNDIwMGUtMDEsICAgNi4yODc0NDAyMzQyNjY3NDdlLTAxLAorICAtNy43NzQ5MTc2NjYzMjMxMzBlLTAxLCAgIDYuMjg4OTMxMTcxNjYxNTY1ZS0wMSwKKyAgLTcuNzczNzExNjM1OTUwNTYzZS0wMSwgICA2LjI5MDQyMTg3NzgzMDM2MGUtMDEsCisgIC03Ljc3MjUwNTMxOTc2MDg0MWUtMDEsICAgNi4yOTE5MTIzNTI3MTgzMjNlLTAxLAorICAtNy43NzEyOTg3MTc3OTgzMTZlLTAxLCAgIDYuMjkzNDAyNTk2MjcwNjU2ZS0wMSwKKyAgLTcuNzcwMDkxODMwMTA3MzUzZS0wMSwgICA2LjI5NDg5MjYwODQzMjU2NmUtMDEsCisgIC03Ljc2ODg4NDY1NjczMjMyNGUtMDEsICAgNi4yOTYzODIzODkxNDkyNzBlLTAxLAorICAtNy43Njc2NzcxOTc3MTc2MTVlLTAxLCAgIDYuMjk3ODcxOTM4MzY1OTkyZS0wMSwKKyAgLTcuNzY2NDY5NDUzMTA3NjIxZS0wMSwgICA2LjI5OTM2MTI1NjAyNzk2NGUtMDEsCisgIC03Ljc2NTI2MTQyMjk0Njc0NGUtMDEsICAgNi4zMDA4NTAzNDIwODA0MzJlLTAxLAorICAtNy43NjQwNTMxMDcyNzk0MDRlLTAxLCAgIDYuMzAyMzM5MTk2NDY4NjQ0ZS0wMSwKKyAgLTcuNzYyODQ0NTA2MTUwMDI1ZS0wMSwgICA2LjMwMzgyNzgxOTEzNzg1OWUtMDEsCisgIC03Ljc2MTYzNTYxOTYwMzA0M2UtMDEsICAgNi4zMDUzMTYyMTAwMzMzNDZlLTAxLAorICAtNy43NjA0MjY0NDc2ODI5MDhlLTAxLCAgIDYuMzA2ODA0MzY5MTAwMzgwZS0wMSwKKyAgLTcuNzU5MjE2OTkwNDM0MDc3ZS0wMSwgICA2LjMwODI5MjI5NjI4NDI0NWUtMDEsCisgIC03Ljc1ODAwNzI0NzkwMTAxNmUtMDEsICAgNi4zMDk3Nzk5OTE1MzAyMzVlLTAxLAorICAtNy43NTY3OTcyMjAxMjgyMDZlLTAxLCAgIDYuMzExMjY3NDU0NzgzNjUzZS0wMSwKKyAgLTcuNzU1NTg2OTA3MTYwMTM2ZS0wMSwgICA2LjMxMjc1NDY4NTk4OTgwOGUtMDEsCisgIC03Ljc1NDM3NjMwOTA0MTMwNWUtMDEsICAgNi4zMTQyNDE2ODUwOTQwMTllLTAxLAorICAtNy43NTMxNjU0MjU4MTYyMjVlLTAxLCAgIDYuMzE1NzI4NDUyMDQxNjEwZS0wMSwKKyAgLTcuNzUxOTU0MjU3NTI5NDE0ZS0wMSwgICA2LjMxNzIxNDk4Njc3NzkyM2UtMDEsCisgIC03Ljc1MDc0MjgwNDIyNTQwNWUtMDEsICAgNi4zMTg3MDEyODkyNDgyOTllLTAxLAorICAtNy43NDk1MzEwNjU5NDg3MzllLTAxLCAgIDYuMzIwMTg3MzU5Mzk4MDkxZS0wMSwKKyAgLTcuNzQ4MzE5MDQyNzQzOTY5ZS0wMSwgICA2LjMyMTY3MzE5NzE3MjY1OWUtMDEsCisgIC03Ljc0NzEwNjczNDY1NTY1NWUtMDEsICAgNi4zMjMxNTg4MDI1MTczNzZlLTAxLAorICAtNy43NDU4OTQxNDE3MjgzNzZlLTAxLCAgIDYuMzI0NjQ0MTc1Mzc3NjE4ZS0wMSwKKyAgLTcuNzQ0NjgxMjY0MDA2NzA5ZS0wMSwgICA2LjMyNjEyOTMxNTY5ODc3NGUtMDEsCisgIC03Ljc0MzQ2ODEwMTUzNTI1MWUtMDEsICAgNi4zMjc2MTQyMjM0MjYyNDBlLTAxLAorICAtNy43NDIyNTQ2NTQzNTg2MDdlLTAxLCAgIDYuMzI5MDk4ODk4NTA1NDE4ZS0wMSwKKyAgLTcuNzQxMDQwOTIyNTIxMzkwZS0wMSwgICA2LjMzMDU4MzM0MDg4MTcyMWUtMDEsCisgIC03LjczOTgyNjkwNjA2ODIyOWUtMDEsICAgNi4zMzIwNjc1NTA1MDA1NzJlLTAxLAorICAtNy43Mzg2MTI2MDUwNDM3NTVlLTAxLCAgIDYuMzMzNTUxNTI3MzA3NDAwZS0wMSwKKyAgLTcuNzM3Mzk4MDE5NDkyNjE4ZS0wMSwgICA2LjMzNTAzNTI3MTI0NzY0M2UtMDEsCisgIC03LjczNjE4MzE0OTQ1OTQ3NWUtMDEsICAgNi4zMzY1MTg3ODIyNjY3NDllLTAxLAorICAtNy43MzQ5Njc5OTQ5ODg5OTBlLTAxLCAgIDYuMzM4MDAyMDYwMzEwMTczZS0wMSwKKyAgLTcuNzMzNzUyNTU2MTI1ODQ1ZS0wMSwgICA2LjMzOTQ4NTEwNTMyMzM3OGUtMDEsCisgIC03LjczMjUzNjgzMjkxNDcyNmUtMDEsICAgNi4zNDA5Njc5MTcyNTE4MzdlLTAxLAorICAtNy43MzEzMjA4MjU0MDAzMzFlLTAxLCAgIDYuMzQyNDUwNDk2MDQxMDMzZS0wMSwKKyAgLTcuNzMwMTA0NTMzNjI3MzcwZS0wMSwgICA2LjM0MzkzMjg0MTYzNjQ1NWUtMDEsCisgIC03LjcyODg4Nzk1NzY0MDU2MmUtMDEsICAgNi4zNDU0MTQ5NTM5ODM2MDBlLTAxLAorICAtNy43Mjc2NzEwOTc0ODQ2MzllLTAxLCAgIDYuMzQ2ODk2ODMzMDI3OTc3ZS0wMSwKKyAgLTcuNzI2NDUzOTUzMjA0MzM5ZS0wMSwgICA2LjM0ODM3ODQ3ODcxNTEwMGUtMDEsCisgIC03LjcyNTIzNjUyNDg0NDQxM2UtMDEsICAgNi4zNDk4NTk4OTA5OTA0OTVlLTAxLAorICAtNy43MjQwMTg4MTI0NDk2MjVlLTAxLCAgIDYuMzUxMzQxMDY5Nzk5NjkyZS0wMSwKKyAgLTcuNzIyODAwODE2MDY0NzQzZS0wMSwgICA2LjM1MjgyMjAxNTA4ODIzNGUtMDEsCisgIC03LjcyMTU4MjUzNTczNDU1MmUtMDEsICAgNi4zNTQzMDI3MjY4MDE2NzJlLTAxLAorICAtNy43MjAzNjM5NzE1MDM4NDVlLTAxLCAgIDYuMzU1NzgzMjA0ODg1NTYxZS0wMSwKKyAgLTcuNzE5MTQ1MTIzNDE3NDI0ZS0wMSwgICA2LjM1NzI2MzQ0OTI4NTQ3MWUtMDEsCisgIC03LjcxNzkyNTk5MTUyMDEwMmUtMDEsICAgNi4zNTg3NDM0NTk5NDY5NzdlLTAxLAorICAtNy43MTY3MDY1NzU4NTY3MDNlLTAxLCAgIDYuMzYwMjIzMjM2ODE1NjYzZS0wMSwKKyAgLTcuNzE1NDg2ODc2NDcyMDYzZS0wMSwgICA2LjM2MTcwMjc3OTgzNzEyMmUtMDEsCisgIC03LjcxNDI2Njg5MzQxMTAyNmUtMDEsICAgNi4zNjMxODIwODg5NTY5NTVlLTAxLAorICAtNy43MTMwNDY2MjY3MTg0NDhlLTAxLCAgIDYuMzY0NjYxMTY0MTIwNzcyZS0wMSwKKyAgLTcuNzExODI2MDc2NDM5MTkzZS0wMSwgICA2LjM2NjE0MDAwNTI3NDE5MWUtMDEsCisgIC03LjcxMDYwNTI0MjYxODEzOGUtMDEsICAgNi4zNjc2MTg2MTIzNjI4NDJlLTAxLAorICAtNy43MDkzODQxMjUzMDAxNjllLTAxLCAgIDYuMzY5MDk2OTg1MzMyMzU5ZS0wMSwKKyAgLTcuNzA4MTYyNzI0NTMwMTg1ZS0wMSwgICA2LjM3MDU3NTEyNDEyODM4NmUtMDEsCisgIC03LjcwNjk0MTA0MDM1MzA5MWUtMDEsICAgNi4zNzIwNTMwMjg2OTY1NzZlLTAxLAorICAtNy43MDU3MTkwNzI4MTM4MDhlLTAxLCAgIDYuMzczNTMwNjk4OTgyNTkxZS0wMSwKKyAgLTcuNzA0NDk2ODIxOTU3MjYwZS0wMSwgICA2LjM3NTAwODEzNDkzMjEwMmUtMDEsCisgIC03LjcwMzI3NDI4NzgyODM4OWUtMDEsICAgNi4zNzY0ODUzMzY0OTA3ODhlLTAxLAorICAtNy43MDIwNTE0NzA0NzIxNDJlLTAxLCAgIDYuMzc3OTYyMzAzNjA0MzM1ZS0wMSwKKyAgLTcuNzAwODI4MzY5OTMzNDc5ZS0wMSwgICA2LjM3OTQzOTAzNjIxODQ0MGUtMDEsCisgIC03LjY5OTYwNDk4NjI1NzM3MmUtMDEsICAgNi4zODA5MTU1MzQyNzg4MDhlLTAxLAorICAtNy42OTgzODEzMTk0ODg3OThlLTAxLCAgIDYuMzgyMzkxNzk3NzMxMTUzZS0wMSwKKyAgLTcuNjk3MTU3MzY5NjcyNzUxZS0wMSwgICA2LjM4Mzg2NzgyNjUyMTE5NmUtMDEsCisgIC03LjY5NTkzMzEzNjg1NDIyOWUtMDEsICAgNi4zODUzNDM2MjA1OTQ2NjhlLTAxLAorICAtNy42OTQ3MDg2MjEwNzgyNDdlLTAxLCAgIDYuMzg2ODE5MTc5ODk3MzA3ZS0wMSwKKyAgLTcuNjkzNDgzODIyMzg5ODIzZS0wMSwgICA2LjM4ODI5NDUwNDM3NDg2M2UtMDEsCisgIC03LjY5MjI1ODc0MDgzMzk5M2UtMDEsICAgNi4zODk3Njk1OTM5NzMwOTFlLTAxLAorICAtNy42OTEwMzMzNzY0NTU3OTdlLTAxLCAgIDYuMzkxMjQ0NDQ4NjM3NzU3ZS0wMSwKKyAgLTcuNjg5ODA3NzI5MzAwMjg5ZS0wMSwgICA2LjM5MjcxOTA2ODMxNDYzNWUtMDEsCisgIC03LjY4ODU4MTc5OTQxMjUzM2UtMDEsICAgNi4zOTQxOTM0NTI5NDk1MDdlLTAxLAorICAtNy42ODczNTU1ODY4Mzc2MDNlLTAxLCAgIDYuMzk1NjY3NjAyNDg4MTYzZS0wMSwKKyAgLTcuNjg2MTI5MDkxNjIwNTg0ZS0wMSwgICA2LjM5NzE0MTUxNjg3NjQwNWUtMDEsCisgIC03LjY4NDkwMjMxMzgwNjU2OWUtMDEsICAgNi4zOTg2MTUxOTYwNjAwMzllLTAxLAorICAtNy42ODM2NzUyNTM0NDA2NjNlLTAxLCAgIDYuNDAwMDg4NjM5OTg0ODg0ZS0wMSwKKyAgLTcuNjgyNDQ3OTEwNTY3OTgzZS0wMSwgICA2LjQwMTU2MTg0ODU5Njc2NWUtMDEsCisgIC03LjY4MTIyMDI4NTIzMzY1NGUtMDEsICAgNi40MDMwMzQ4MjE4NDE1MTdlLTAxLAorICAtNy42Nzk5OTIzNzc0ODI4MTNlLTAxLCAgIDYuNDA0NTA3NTU5NjY0OTgxZS0wMSwKKyAgLTcuNjc4NzY0MTg3MzYwNjA2ZS0wMSwgICA2LjQwNTk4MDA2MjAxMzAxMGUtMDEsCisgIC03LjY3NzUzNTcxNDkxMjE5MGUtMDEsICAgNi40MDc0NTIzMjg4MzE0NjRlLTAxLAorICAtNy42NzYzMDY5NjAxODI3MzRlLTAxLCAgIDYuNDA4OTI0MzYwMDY2MjE0ZS0wMSwKKyAgLTcuNjc1MDc3OTIzMjE3NDEzZS0wMSwgICA2LjQxMDM5NjE1NTY2MzEzNGUtMDEsCisgIC03LjY3Mzg0ODYwNDA2MTQxN2UtMDEsICAgNi40MTE4Njc3MTU1NjgxMTNlLTAxLAorICAtNy42NzI2MTkwMDI3NTk5NDVlLTAxLCAgIDYuNDEzMzM5MDM5NzI3MDQzZS0wMSwKKyAgLTcuNjcxMzg5MTE5MzU4MjA0ZS0wMSwgICA2LjQxNDgxMDEyODA4NTgzMmUtMDEsCisgIC03LjY3MDE1ODk1MzkwMTQxNWUtMDEsICAgNi40MTYyODA5ODA1OTAzODhlLTAxLAorICAtNy42Njg5Mjg1MDY0MzQ4MDdlLTAxLCAgIDYuNDE3NzUxNTk3MTg2NjM1ZS0wMSwKKyAgLTcuNjY3Njk3Nzc3MDAzNjE5ZS0wMSwgICA2LjQxOTIyMTk3NzgyMDUwMmUtMDEsCisgIC03LjY2NjQ2Njc2NTY1MzEwNGUtMDEsICAgNi40MjA2OTIxMjI0Mzc5MjVlLTAxLAorICAtNy42NjUyMzU0NzI0Mjg1MjJlLTAxLCAgIDYuNDIyMTYyMDMwOTg0ODU0ZS0wMSwKKyAgLTcuNjY0MDAzODk3Mzc1MTQyZS0wMSwgICA2LjQyMzYzMTcwMzQwNzI0M2UtMDEsCisgIC03LjY2Mjc3MjA0MDUzODI0N2UtMDEsICAgNi40MjUxMDExMzk2NTEwNTdlLTAxLAorICAtNy42NjE1Mzk5MDE5NjMxMjllLTAxLCAgIDYuNDI2NTcwMzM5NjYyMjY5ZS0wMSwKKyAgLTcuNjYwMzA3NDgxNjk1MDkwZS0wMSwgICA2LjQyODAzOTMwMzM4Njg2MGUtMDEsCisgIC03LjY1OTA3NDc3OTc3OTQ0M2UtMDEsICAgNi40Mjk1MDgwMzA3NzA4MjFlLTAxLAorICAtNy42NTc4NDE3OTYyNjE1MTBlLTAxLCAgIDYuNDMwOTc2NTIxNzYwMTUxZS0wMSwKKyAgLTcuNjU2NjA4NTMxMTg2NjI1ZS0wMSwgICA2LjQzMjQ0NDc3NjMwMDg1OWUtMDEsCisgIC03LjY1NTM3NDk4NDYwMDEzMWUtMDEsICAgNi40MzM5MTI3OTQzMzg5NThlLTAxLAorICAtNy42NTQxNDExNTY1NDczODNlLTAxLCAgIDYuNDM1MzgwNTc1ODIwNDc3ZS0wMSwKKyAgLTcuNjUyOTA3MDQ3MDczNzQ0ZS0wMSwgICA2LjQzNjg0ODEyMDY5MTQ0OWUtMDEsCisgIC03LjY1MTY3MjY1NjIyNDU5MGUtMDEsICAgNi40MzgzMTU0Mjg4OTc5MTRlLTAxLAorICAtNy42NTA0Mzc5ODQwNDUzMDVlLTAxLCAgIDYuNDM5NzgyNTAwMzg1OTI3ZS0wMSwKKyAgLTcuNjQ5MjAzMDMwNTgxMjg0ZS0wMSwgICA2LjQ0MTI0OTMzNTEwMTU0NWUtMDEsCisgIC03LjY0Nzk2Nzc5NTg3NzkzNWUtMDEsICAgNi40NDI3MTU5MzI5OTA4MzhlLTAxLAorICAtNy42NDY3MzIyNzk5ODA2NzFlLTAxLCAgIDYuNDQ0MTgyMjkzOTk5ODg0ZS0wMSwKKyAgLTcuNjQ1NDk2NDgyOTM0OTIxZS0wMSwgICA2LjQ0NTY0ODQxODA3NDc2NmUtMDEsCisgIC03LjY0NDI2MDQwNDc4NjEyMWUtMDEsICAgNi40NDcxMTQzMDUxNjE1ODNlLTAxLAorICAtNy42NDMwMjQwNDU1Nzk3MTdlLTAxLCAgIDYuNDQ4NTc5OTU1MjA2NDM3ZS0wMSwKKyAgLTcuNjQxNzg3NDA1MzYxMTY3ZS0wMSwgICA2LjQ1MDA0NTM2ODE1NTQzOWUtMDEsCisgIC03LjY0MDU1MDQ4NDE3NTk0MGUtMDEsICAgNi40NTE1MTA1NDM5NTQ3MTJlLTAxLAorICAtNy42MzkzMTMyODIwNjk1MTFlLTAxLCAgIDYuNDUyOTc1NDgyNTUwMzg0ZS0wMSwKKyAgLTcuNjM4MDc1Nzk5MDg3MzcyZS0wMSwgICA2LjQ1NDQ0MDE4Mzg4ODU5MmUtMDEsCisgIC03LjYzNjgzODAzNTI3NTAxOWUtMDEsICAgNi40NTU5MDQ2NDc5MTU0ODdlLTAxLAorICAtNy42MzU1OTk5OTA2Nzc5NjFlLTAxLCAgIDYuNDU3MzY4ODc0NTc3MjIzZS0wMSwKKyAgLTcuNjM0MzYxNjY1MzQxNzIwZS0wMSwgICA2LjQ1ODgzMjg2MzgxOTk2M2UtMDEsCisgIC03LjYzMzEyMzA1OTMxMTgyNGUtMDEsICAgNi40NjAyOTY2MTU1ODk4ODNlLTAxLAorICAtNy42MzE4ODQxNzI2MzM4MTNlLTAxLCAgIDYuNDYxNzYwMTI5ODMzMTYzZS0wMSwKKyAgLTcuNjMwNjQ1MDA1MzUzMjM3ZS0wMSwgICA2LjQ2MzIyMzQwNjQ5NTk5NWUtMDEsCisgIC03LjYyOTQwNTU1NzUxNTY1N2UtMDEsICAgNi40NjQ2ODY0NDU1MjQ1NzhlLTAxLAorICAtNy42MjgxNjU4MjkxNjY2NDRlLTAxLCAgIDYuNDY2MTQ5MjQ2ODY1MTIwZS0wMSwKKyAgLTcuNjI2OTI1ODIwMzUxNzgwZS0wMSwgICA2LjQ2NzYxMTgxMDQ2MzgzOWUtMDEsCisgIC03LjYyNTY4NTUzMTExNjY1NGUtMDEsICAgNi40NjkwNzQxMzYyNjY5NjBlLTAxLAorICAtNy42MjQ0NDQ5NjE1MDY4NzJlLTAxLCAgIDYuNDcwNTM2MjI0MjIwNzE1ZS0wMSwKKyAgLTcuNjIzMjA0MTExNTY4MDQzZS0wMSwgICA2LjQ3MTk5ODA3NDI3MTM1MmUtMDEsCisgIC03LjYyMTk2Mjk4MTM0NTc4OWUtMDEsICAgNi40NzM0NTk2ODYzNjUxMjFlLTAxLAorICAtNy42MjA3MjE1NzA4ODU3NDZlLTAxLCAgIDYuNDc0OTIxMDYwNDQ4MjgxZS0wMSwKKyAgLTcuNjE5NDc5ODgwMjMzNTU0ZS0wMSwgICA2LjQ3NjM4MjE5NjQ2NzEwM2UtMDEsCisgIC03LjYxODIzNzkwOTQzNDg3MGUtMDEsICAgNi40Nzc4NDMwOTQzNjc4NjRlLTAxLAorICAtNy42MTY5OTU2NTg1MzUzNTRlLTAxLCAgIDYuNDc5MzAzNzU0MDk2ODUzZS0wMSwKKyAgLTcuNjE1NzUzMTI3NTgwNjgwZS0wMSwgICA2LjQ4MDc2NDE3NTYwMDM2NWUtMDEsCisgIC03LjYxNDUxMDMxNjYxNjUzNmUtMDEsICAgNi40ODIyMjQzNTg4MjQ3MDRlLTAxLAorICAtNy42MTMyNjcyMjU2ODg2MTRlLTAxLCAgIDYuNDgzNjg0MzAzNzE2MTgzZS0wMSwKKyAgLTcuNjEyMDIzODU0ODQyNjE4ZS0wMSwgICA2LjQ4NTE0NDAxMDIyMTEyNGUtMDEsCisgIC03LjYxMDc4MDIwNDEyNDI2NmUtMDEsICAgNi40ODY2MDM0NzgyODU4NThlLTAxLAorICAtNy42MDk1MzYyNzM1NzkyODJlLTAxLCAgIDYuNDg4MDYyNzA3ODU2NzI1ZS0wMSwKKyAgLTcuNjA4MjkyMDYzMjUzNDAwZS0wMSwgICA2LjQ4OTUyMTY5ODg4MDA3M2UtMDEsCisgIC03LjYwNzA0NzU3MzE5MjM2OWUtMDEsICAgNi40OTA5ODA0NTEzMDIyNjBlLTAxLAorICAtNy42MDU4MDI4MDM0NDE5NDRlLTAxLCAgIDYuNDkyNDM4OTY1MDY5NjQ5ZS0wMSwKKyAgLTcuNjA0NTU3NzU0MDQ3ODkzZS0wMSwgICA2LjQ5Mzg5NzI0MDEyODYxN2UtMDEsCisgIC03LjYwMzMxMjQyNTA1NTk5MGUtMDEsICAgNi40OTUzNTUyNzY0MjU1NDdlLTAxLAorICAtNy42MDIwNjY4MTY1MTIwMjRlLTAxLCAgIDYuNDk2ODEzMDczOTA2ODMyZS0wMSwKKyAgLTcuNjAwODIwOTI4NDYxNzkzZS0wMSwgICA2LjQ5ODI3MDYzMjUxODg3MWUtMDEsCisgIC03LjU5OTU3NDc2MDk1MTEwM2UtMDEsICAgNi40OTk3Mjc5NTIyMDgwNzVlLTAxLAorICAtNy41OTgzMjgzMTQwMjU3NzRlLTAxLCAgIDYuNTAxMTg1MDMyOTIwODYyZS0wMSwKKyAgLTcuNTk3MDgxNTg3NzMxNjM0ZS0wMSwgICA2LjUwMjY0MTg3NDYwMzY1OWUtMDEsCisgIC03LjU5NTgzNDU4MjExNDUyMGUtMDEsICAgNi41MDQwOTg0NzcyMDI5MDNlLTAxLAorICAtNy41OTQ1ODcyOTcyMjAyODJlLTAxLCAgIDYuNTA1NTU0ODQwNjY1MDM5ZS0wMSwKKyAgLTcuNTkzMzM5NzMzMDk0Nzc5ZS0wMSwgICA2LjUwNzAxMDk2NDkzNjUyMGUtMDEsCisgIC03LjU5MjA5MTg4OTc4Mzg4MWUtMDEsICAgNi41MDg0NjY4NDk5NjM4MDllLTAxLAorICAtNy41OTA4NDM3NjczMzM0NjZlLTAxLCAgIDYuNTA5OTIyNDk1NjkzMzc3ZS0wMSwKKyAgLTcuNTg5NTk1MzY1Nzg5NDI0ZS0wMSwgICA2LjUxMTM3NzkwMjA3MTcwM2UtMDEsCisgIC03LjU4ODM0NjY4NTE5NzY1N2UtMDEsICAgNi41MTI4MzMwNjkwNDUyNzdlLTAxLAorICAtNy41ODcwOTc3MjU2MDQwNzRlLTAxLCAgIDYuNTE0Mjg3OTk2NTYwNTk4ZS0wMSwKKyAgLTcuNTg1ODQ4NDg3MDU0NTk2ZS0wMSwgICA2LjUxNTc0MjY4NDU2NDE3MGUtMDEsCisgIC03LjU4NDU5ODk2OTU5NTE1NGUtMDEsICAgNi41MTcxOTcxMzMwMDI1MDllLTAxLAorICAtNy41ODMzNDkxNzMyNzE2OTBlLTAxLCAgIDYuNTE4NjUxMzQxODIyMTM5ZS0wMSwKKyAgLTcuNTgyMDk5MDk4MTMwMTUzZS0wMSwgICA2LjUyMDEwNTMxMDk2OTU5NWUtMDEsCisgIC03LjU4MDg0ODc0NDIxNjUwN2UtMDEsICAgNi41MjE1NTkwNDAzOTE0MTZlLTAxLAorICAtNy41Nzk1OTgxMTE1NzY3MjNlLTAxLCAgIDYuNTIzMDEyNTMwMDM0MTU1ZS0wMSwKKyAgLTcuNTc4MzQ3MjAwMjU2NzgzZS0wMSwgICA2LjUyNDQ2NTc3OTg0NDM2N2UtMDEsCisgIC03LjU3NzA5NjAxMDMwMjY4MWUtMDEsICAgNi41MjU5MTg3ODk3Njg2MjRlLTAxLAorICAtNy41NzU4NDQ1NDE3NjA0MThlLTAxLCAgIDYuNTI3MzcxNTU5NzUzNTAzZS0wMSwKKyAgLTcuNTc0NTkyNzk0Njc2MDA3ZS0wMSwgICA2LjUyODgyNDA4OTc0NTU4OGUtMDEsCisgIC03LjU3MzM0MDc2OTA5NTQ3MWUtMDEsICAgNi41MzAyNzYzNzk2OTE0NzVlLTAxLAorICAtNy41NzIwODg0NjUwNjQ4NDZlLTAxLCAgIDYuNTMxNzI4NDI5NTM3NzY4ZS0wMSwKKyAgLTcuNTcwODM1ODgyNjMwMTcxZS0wMSwgICA2LjUzMzE4MDIzOTIzMTA3N2UtMDEsCisgIC03LjU2OTU4MzAyMTgzNzUwNWUtMDEsICAgNi41MzQ2MzE4MDg3MTgwMjNlLTAxLAorICAtNy41NjgzMjk4ODI3MzI5MDhlLTAxLCAgIDYuNTM2MDgzMTM3OTQ1MjM5ZS0wMSwKKyAgLTcuNTY3MDc2NDY1MzYyNDU3ZS0wMSwgICA2LjUzNzUzNDIyNjg1OTM2MWUtMDEsCisgIC03LjU2NTgyMjc2OTc3MjIzNWUtMDEsICAgNi41Mzg5ODUwNzU0MDcwMzhlLTAxLAorICAtNy41NjQ1Njg3OTYwMDgzMzdlLTAxLCAgIDYuNTQwNDM1NjgzNTM0OTI2ZS0wMSwKKyAgLTcuNTYzMzE0NTQ0MTE2ODY5ZS0wMSwgICA2LjU0MTg4NjA1MTE4OTY5MGUtMDEsCisgIC03LjU2MjA2MDAxNDE0Mzk0NWUtMDEsICAgNi41NDMzMzYxNzgzMTgwMDRlLTAxLAorICAtNy41NjA4MDUyMDYxMzU2OTFlLTAxLCAgIDYuNTQ0Nzg2MDY0ODY2NTUzZS0wMSwKKyAgLTcuNTU5NTUwMTIwMTM4MjQ0ZS0wMSwgICA2LjU0NjIzNTcxMDc4MjAyN2UtMDEsCisgIC03LjU1ODI5NDc1NjE5Nzc0OGUtMDEsICAgNi41NDc2ODUxMTYwMTExMjZlLTAxLAorICAtNy41NTcwMzkxMTQzNjAzNTllLTAxLCAgIDYuNTQ5MTM0MjgwNTAwNTYwZS0wMSwKKyAgLTcuNTU1NzgzMTk0NjcyMjQ1ZS0wMSwgICA2LjU1MDU4MzIwNDE5NzA0OWUtMDEsCisgIC03LjU1NDUyNjk5NzE3OTU4M2UtMDEsICAgNi41NTIwMzE4ODcwNDczMThlLTAxLAorICAtNy41NTMyNzA1MjE5Mjg1NTdlLTAxLCAgIDYuNTUzNDgwMzI4OTk4MTA1ZS0wMSwKKyAgLTcuNTUyMDEzNzY4OTY1MzY1ZS0wMSwgICA2LjU1NDkyODUyOTk5NjE1M2UtMDEsCisgIC03LjU1MDc1NjczODMzNjIxNmUtMDEsICAgNi41NTYzNzY0ODk5ODgyMThlLTAxLAorICAtNy41NDk0OTk0MzAwODczMjZlLTAxLCAgIDYuNTU3ODI0MjA4OTIxMDYwZS0wMSwKKyAgLTcuNTQ4MjQxODQ0MjY0OTI0ZS0wMSwgICA2LjU1OTI3MTY4Njc0MTQ1NGUtMDEsCisgIC03LjU0Njk4Mzk4MDkxNTI0NWUtMDEsICAgNi41NjA3MTg5MjMzOTYxNzZlLTAxLAorICAtNy41NDU3MjU4NDAwODQ1MzhlLTAxLCAgIDYuNTYyMTY1OTE4ODMyMDE5ZS0wMSwKKyAgLTcuNTQ0NDY3NDIxODE5MDY0ZS0wMSwgICA2LjU2MzYxMjY3Mjk5NTc4MGUtMDEsCisgIC03LjU0MzIwODcyNjE2NTA4OGUtMDEsICAgNi41NjUwNTkxODU4MzQyNjZlLTAxLAorICAtNy41NDE5NDk3NTMxNjg4OTJlLTAxLCAgIDYuNTY2NTA1NDU3Mjk0Mjg5ZS0wMSwKKyAgLTcuNTQwNjkwNTAyODc2NzYxZS0wMSwgICA2LjU2Nzk1MTQ4NzMyMjY4MWUtMDEsCisgIC03LjUzOTQzMDk3NTMzNDk5NmUtMDEsICAgNi41NjkzOTcyNzU4NjYyNzFlLTAxLAorICAtNy41MzgxNzExNzA1ODk5MDhlLTAxLCAgIDYuNTcwODQyODIyODcxOTAyZS0wMSwKKyAgLTcuNTM2OTExMDg4Njg3ODEyZS0wMSwgICA2LjU3MjI4ODEyODI4NjQyNWUtMDEsCisgIC03LjUzNTY1MDcyOTY3NTA0M2UtMDEsICAgNi41NzM3MzMxOTIwNTY3MDJlLTAxLAorICAtNy41MzQzOTAwOTM1OTc5MzZlLTAxLCAgIDYuNTc1MTc4MDE0MTI5NjAxZS0wMSwKKyAgLTcuNTMzMTI5MTgwNTAyODQzZS0wMSwgICA2LjU3NjYyMjU5NDQ1MjAwMWUtMDEsCisgIC03LjUzMTg2Nzk5MDQzNjEyNWUtMDEsICAgNi41NzgwNjY5MzI5NzA3ODZlLTAxLAorICAtNy41MzA2MDY1MjM0NDQxNTFlLTAxLCAgIDYuNTc5NTExMDI5NjMyODU1ZS0wMSwKKyAgLTcuNTI5MzQ0Nzc5NTczMzAyZS0wMSwgICA2LjU4MDk1NDg4NDM4NTExMmUtMDEsCisgIC03LjUyODA4Mjc1ODg2OTk3MGUtMDEsICAgNi41ODIzOTg0OTcxNzQ0NjllLTAxLAorICAtNy41MjY4MjA0NjEzODA1NTNlLTAxLCAgIDYuNTgzODQxODY3OTQ3ODUwZS0wMSwKKyAgLTcuNTI1NTU3ODg3MTUxNDY0ZS0wMSwgICA2LjU4NTI4NDk5NjY1MjE4NmUtMDEsCisgIC03LjUyNDI5NTAzNjIyOTEyNGUtMDEsICAgNi41ODY3Mjc4ODMyMzQ0MTllLTAxLAorICAtNy41MjMwMzE5MDg2NTk5NjRlLTAxLCAgIDYuNTg4MTcwNTI3NjQxNDk1ZS0wMSwKKyAgLTcuNTIxNzY4NTA0NDkwNDI4ZS0wMSwgICA2LjU4OTYxMjkyOTgyMDM3M2UtMDEsCisgIC03LjUyMDUwNDgyMzc2Njk2NGUtMDEsICAgNi41OTEwNTUwODk3MTgwMjFlLTAxLAorICAtNy41MTkyNDA4NjY1MzYwMzZlLTAxLCAgIDYuNTkyNDk3MDA3MjgxNDE1ZS0wMSwKKyAgLTcuNTE3OTc2NjMyODQ0MTE2ZS0wMSwgICA2LjU5MzkzODY4MjQ1NzUzOWUtMDEsCisgIC03LjUxNjcxMjEyMjczNzY4NGUtMDEsICAgNi41OTUzODAxMTUxOTMzODdlLTAxLAorICAtNy41MTU0NDczMzYyNjMyMzdlLTAxLCAgIDYuNTk2ODIxMzA1NDM1OTYxZS0wMSwKKyAgLTcuNTE0MTgyMjczNDY3Mjc1ZS0wMSwgICA2LjU5ODI2MjI1MzEzMjI3M2UtMDEsCisgIC03LjUxMjkxNjkzNDM5NjMwOWUtMDEsICAgNi41OTk3MDI5NTgyMjkzNDVlLTAxLAorICAtNy41MTE2NTEzMTkwOTY4NjVlLTAxLCAgIDYuNjAxMTQzNDIwNjc0MjA1ZS0wMSwKKyAgLTcuNTEwMzg1NDI3NjE1NDc0ZS0wMSwgICA2LjYwMjU4MzY0MDQxMzg5MGUtMDEsCisgIC03LjUwOTExOTI1OTk5ODY3OWUtMDEsICAgNi42MDQwMjM2MTczOTU0NTBlLTAxLAorICAtNy41MDc4NTI4MTYyOTMwMzdlLTAxLCAgIDYuNjA1NDYzMzUxNTY1OTM5ZS0wMSwKKyAgLTcuNTA2NTg2MDk2NTQ1MTA3ZS0wMSwgICA2LjYwNjkwMjg0Mjg3MjQyM2UtMDEsCisgIC03LjUwNTMxOTEwMDgwMTQ2NGUtMDEsICAgNi42MDgzNDIwOTEyNjE5NzZlLTAxLAorICAtNy41MDQwNTE4MjkxMDg2OTNlLTAxLCAgIDYuNjA5NzgxMDk2NjgxNjgxZS0wMSwKKyAgLTcuNTAyNzg0MjgxNTEzMzg3ZS0wMSwgICA2LjYxMTIxOTg1OTA3ODYyOWUtMDEsCisgIC03LjUwMTUxNjQ1ODA2MjE1MWUtMDEsICAgNi42MTI2NTgzNzgzOTk5MjNlLTAxLAorICAtNy41MDAyNDgzNTg4MDE1OThlLTAxLCAgIDYuNjE0MDk2NjU0NTkyNjY5ZS0wMSwKKyAgLTcuNDk4OTc5OTgzNzc4MzUzZS0wMSwgICA2LjYxNTUzNDY4NzYwMzk4OWUtMDEsCisgIC03LjQ5NzcxMTMzMzAzOTA1MWUtMDEsICAgNi42MTY5NzI0NzczODEwMTBlLTAxLAorICAtNy40OTY0NDI0MDY2MzAzMzVlLTAxLCAgIDYuNjE4NDEwMDIzODcwODY5ZS0wMSwKKyAgLTcuNDk1MTczMjA0NTk4ODYyZS0wMSwgICA2LjYxOTg0NzMyNzAyMDcwOWUtMDEsCisgIC03LjQ5MzkwMzcyNjk5MTI5NmUtMDEsICAgNi42MjEyODQzODY3Nzc2ODdlLTAxLAorICAtNy40OTI2MzM5NzM4NTQzMTFlLTAxLCAgIDYuNjIyNzIxMjAzMDg4OTY2ZS0wMSwKKyAgLTcuNDkxMzYzOTQ1MjM0NTk0ZS0wMSwgICA2LjYyNDE1Nzc3NTkwMTcxOGUtMDEsCisgIC03LjQ5MDA5MzY0MTE3ODgzOWUtMDEsICAgNi42MjU1OTQxMDUxNjMxMjNlLTAxLAorICAtNy40ODg4MjMwNjE3MzM3NTFlLTAxLCAgIDYuNjI3MDMwMTkwODIwMzc0ZS0wMSwKKyAgLTcuNDg3NTUyMjA2OTQ2MDQ4ZS0wMSwgICA2LjYyODQ2NjAzMjgyMDY2OWUtMDEsCisgIC03LjQ4NjI4MTA3Njg2MjQ1NGUtMDEsICAgNi42Mjk5MDE2MzExMTEyMTVlLTAxLAorICAtNy40ODUwMDk2NzE1Mjk3MDRlLTAxLCAgIDYuNjMxMzM2OTg1NjM5MjMwZS0wMSwKKyAgLTcuNDgzNzM3OTkwOTk0NTQ2ZS0wMSwgICA2LjYzMjc3MjA5NjM1MTk0MWUtMDEsCisgIC03LjQ4MjQ2NjAzNTMwMzczNGUtMDEsICAgNi42MzQyMDY5NjMxOTY1ODNlLTAxLAorICAtNy40ODExOTM4MDQ1MDQwMzZlLTAxLCAgIDYuNjM1NjQxNTg2MTIwMzk4ZS0wMSwKKyAgLTcuNDc5OTIxMjk4NjQyMjI3ZS0wMSwgICA2LjYzNzA3NTk2NTA3MDY0MGUtMDEsCisgIC03LjQ3ODY0ODUxNzc2NTA5NGUtMDEsICAgNi42Mzg1MTAwOTk5OTQ1NzNlLTAxLAorICAtNy40NzczNzU0NjE5MTk0MzNlLTAxLCAgIDYuNjM5OTQzOTkwODM5NDY2ZS0wMSwKKyAgLTcuNDc2MTAyMTMxMTUyMDUxZS0wMSwgICA2LjY0MTM3NzYzNzU1MjYwMGUtMDEsCisgIC03LjQ3NDgyODUyNTUwOTc2NmUtMDEsICAgNi42NDI4MTEwNDAwODEyNjJlLTAxLAorICAtNy40NzM1NTQ2NDUwMzk0MDJlLTAxLCAgIDYuNjQ0MjQ0MTk4MzcyNzUyZS0wMSwKKyAgLTcuNDcyMjgwNDg5Nzg3Nzk5ZS0wMSwgICA2LjY0NTY3NzExMjM3NDM3NWUtMDEsCisgIC03LjQ3MTAwNjA1OTgwMTgwMWUtMDEsICAgNi42NDcxMDk3ODIwMzM0NDhlLTAxLAorICAtNy40Njk3MzEzNTUxMjgyNjhlLTAxLCAgIDYuNjQ4NTQyMjA3Mjk3Mjk3ZS0wMSwKKyAgLTcuNDY4NDU2Mzc1ODE0MDY1ZS0wMSwgICA2LjY0OTk3NDM4ODExMzI1M2UtMDEsCisgIC03LjQ2NzE4MTEyMTkwNjA3MWUtMDEsICAgNi42NTE0MDYzMjQ0Mjg2NjFlLTAxLAorICAtNy40NjU5MDU1OTM0NTExNzNlLTAxLCAgIDYuNjUyODM4MDE2MTkwODcyZS0wMSwKKyAgLTcuNDY0NjI5NzkwNDk2MjY4ZS0wMSwgICA2LjY1NDI2OTQ2MzM0NzI0N2UtMDEsCisgIC03LjQ2MzM1MzcxMzA4ODI2M2UtMDEsICAgNi42NTU3MDA2NjU4NDUxNTVlLTAxLAorICAtNy40NjIwNzczNjEyNzQwNzhlLTAxLCAgIDYuNjU3MTMxNjIzNjMxOTc2ZS0wMSwKKyAgLTcuNDYwODAwNzM1MTAwNjM4ZS0wMSwgICA2LjY1ODU2MjMzNjY1NTA5N2UtMDEsCisgIC03LjQ1OTUyMzgzNDYxNDg4M2UtMDEsICAgNi42NTk5OTI4MDQ4NjE5MTVlLTAxLAorICAtNy40NTgyNDY2NTk4NjM3NjFlLTAxLCAgIDYuNjYxNDIzMDI4MTk5ODM1ZS0wMSwKKyAgLTcuNDU2OTY5MjEwODk0MjI4ZS0wMSwgICA2LjY2Mjg1MzAwNjYxNjI3M2UtMDEsCisgIC03LjQ1NTY5MTQ4Nzc1MzI1NGUtMDEsICAgNi42NjQyODI3NDAwNTg2NTJlLTAxLAorICAtNy40NTQ0MTM0OTA0ODc4MTdlLTAxLCAgIDYuNjY1NzEyMjI4NDc0NDA2ZS0wMSwKKyAgLTcuNDUzMTM1MjE5MTQ0OTA1ZS0wMSwgICA2LjY2NzE0MTQ3MTgxMDk3N2UtMDEsCisgIC03LjQ1MTg1NjY3Mzc3MTUxNmUtMDEsICAgNi42Njg1NzA0NzAwMTU4MTJlLTAxLAorICAtNy40NTA1Nzc4NTQ0MTQ2NjFlLTAxLCAgIDYuNjY5OTk5MjIzMDM2Mzc1ZS0wMSwKKyAgLTcuNDQ5Mjk4NzYxMTIxMzUzZS0wMSwgICA2LjY3MTQyNzczMDgyMDEzM2UtMDEsCisgIC03LjQ0ODAxOTM5MzkzODYyNmUtMDEsICAgNi42NzI4NTU5OTMzMTQ1NjRlLTAxLAorICAtNy40NDY3Mzk3NTI5MTM1MTdlLTAxLCAgIDYuNjc0Mjg0MDEwNDY3MTU1ZS0wMSwKKyAgLTcuNDQ1NDU5ODM4MDkzMDc0ZS0wMSwgICA2LjY3NTcxMTc4MjIyNTQwM2UtMDEsCisgIC03LjQ0NDE3OTY0OTUyNDM1NmUtMDEsICAgNi42NzcxMzkzMDg1MzY4MTBlLTAxLAorICAtNy40NDI4OTkxODcyNTQ0MzNlLTAxLCAgIDYuNjc4NTY2NTg5MzQ4ODkzZS0wMSwKKyAgLTcuNDQxNjE4NDUxMzMwMzgyZS0wMSwgICA2LjY3OTk5MzYyNDYwOTE3NGUtMDEsCisgIC03LjQ0MDMzNzQ0MTc5OTI5M2UtMDEsICAgNi42ODE0MjA0MTQyNjUxODVlLTAxLAorICAtNy40MzkwNTYxNTg3MDgyNjVlLTAxLCAgIDYuNjgyODQ2OTU4MjY0NDY3ZS0wMSwKKyAgLTcuNDM3Nzc0NjAyMTA0NDA5ZS0wMSwgICA2LjY4NDI3MzI1NjU1NDU2OGUtMDEsCisgIC03LjQzNjQ5Mjc3MjAzNDg0MWUtMDEsICAgNi42ODU2OTkzMDkwODMwNTBlLTAxLAorICAtNy40MzUyMTA2Njg1NDY2OTFlLTAxLCAgIDYuNjg3MTI1MTE1Nzk3NDgwZS0wMSwKKyAgLTcuNDMzOTI4MjkxNjg3MTAwZS0wMSwgICA2LjY4ODU1MDY3NjY0NTQzNmUtMDEsCisgIC03LjQzMjY0NTY0MTUwMzIxNmUtMDEsICAgNi42ODk5NzU5OTE1NzQ1MDNlLTAxLAorICAtNy40MzEzNjI3MTgwNDIxOThlLTAxLCAgIDYuNjkxNDAxMDYwNTMyMjc2ZS0wMSwKKyAgLTcuNDMwMDc5NTIxMzUxMjE3ZS0wMSwgICA2LjY5MjgyNTg4MzQ2NjM2MGUtMDEsCisgIC03LjQyODc5NjA1MTQ3NzQ1MmUtMDEsICAgNi42OTQyNTA0NjAzMjQzNjllLTAxLAorICAtNy40Mjc1MTIzMDg0NjgwOTBlLTAxLCAgIDYuNjk1Njc0NzkxMDUzOTI1ZS0wMSwKKyAgLTcuNDI2MjI4MjkyMzcwMzM1ZS0wMSwgICA2LjY5NzA5ODg3NTYwMjY1OGUtMDEsCisgIC03LjQyNDk0NDAwMzIzMTM5MmUtMDEsICAgNi42OTg1MjI3MTM5MTgyMTBlLTAxLAorICAtNy40MjM2NTk0NDEwOTg0ODVlLTAxLCAgIDYuNjk5OTQ2MzA1OTQ4MjMwZS0wMSwKKyAgLTcuNDIyMzc0NjA2MDE4ODQwZS0wMSwgICA2LjcwMTM2OTY1MTY0MDM3NmUtMDEsCisgIC03LjQyMTA4OTQ5ODAzOTY5OWUtMDEsICAgNi43MDI3OTI3NTA5NDIzMThlLTAxLAorICAtNy40MTk4MDQxMTcyMDgzMTFlLTAxLCAgIDYuNzA0MjE1NjAzODAxNzMxZS0wMSwKKyAgLTcuNDE4NTE4NDYzNTcxOTM1ZS0wMSwgICA2LjcwNTYzODIxMDE2NjMwMGUtMDEsCisgIC03LjQxNzIzMjUzNzE3Nzg0MWUtMDEsICAgNi43MDcwNjA1Njk5ODM3MjJlLTAxLAorICAtNy40MTU5NDYzMzgwNzMzMTFlLTAxLCAgIDYuNzA4NDgyNjgzMjAxNjk2ZS0wMSwKKyAgLTcuNDE0NjU5ODY2MzA1NjMzZS0wMSwgICA2LjcwOTkwNDU0OTc2Nzk0MmUtMDEsCisgIC03LjQxMzM3MzEyMTkyMjEwN2UtMDEsICAgNi43MTEzMjYxNjk2MzAxNzdlLTAxLAorICAtNy40MTIwODYxMDQ5NzAwNDNlLTAxLCAgIDYuNzEyNzQ3NTQyNzM2MTM1ZS0wMSwKKyAgLTcuNDEwNzk4ODE1NDk2NzYxZS0wMSwgICA2LjcxNDE2ODY2OTAzMzU1NGUtMDEsCisgIC03LjQwOTUxMTI1MzU0OTU5MWUtMDEsICAgNi43MTU1ODk1NDg0NzAxODNlLTAxLAorICAtNy40MDgyMjM0MTkxNzU4NzNlLTAxLCAgIDYuNzE3MDEwMTgwOTkzNzgzZS0wMSwKKyAgLTcuNDA2OTM1MzEyNDIyOTU4ZS0wMSwgICA2LjcxODQzMDU2NjU1MjExOWUtMDEsCisgIC03LjQwNTY0NjkzMzMzODIwMmUtMDEsICAgNi43MTk4NTA3MDUwOTI5NjllLTAxLAorICAtNy40MDQzNTgyODE5Njg5ODBlLTAxLCAgIDYuNzIxMjcwNTk2NTY0MTE3ZS0wMSwKKyAgLTcuNDAzMDY5MzU4MzYyNjY5ZS0wMSwgICA2LjcyMjY5MDI0MDkxMzM1OWUtMDEsCisgIC03LjQwMTc4MDE2MjU2NjY2MmUtMDEsICAgNi43MjQxMDk2MzgwODg0OThlLTAxLAorICAtNy40MDA0OTA2OTQ2MjgzNTZlLTAxLCAgIDYuNzI1NTI4Nzg4MDM3MzQ3ZS0wMSwKKyAgLTcuMzk5MjAwOTU0NTk1MTYyZS0wMSwgICA2LjcyNjk0NzY5MDcwNzcyOWUtMDEsCisgIC03LjM5NzkxMDk0MjUxNDUwMGUtMDEsICAgNi43MjgzNjYzNDYwNDc0NzNlLTAxLAorICAtNy4zOTY2MjA2NTg0MzM4MDBlLTAxLCAgIDYuNzI5Nzg0NzU0MDA0NDIxZS0wMSwKKyAgLTcuMzk1MzMwMTAyNDAwNTAyZS0wMSwgICA2LjczMTIwMjkxNDUyNjQyMWUtMDEsCisgIC03LjM5NDAzOTI3NDQ2MjA1OGUtMDEsICAgNi43MzI2MjA4Mjc1NjEzMzBlLTAxLAorICAtNy4zOTI3NDgxNzQ2NjU5MjVlLTAxLCAgIDYuNzM0MDM4NDkzMDU3MDE3ZS0wMSwKKyAgLTcuMzkxNDU2ODAzMDU5NTc1ZS0wMSwgICA2LjczNTQ1NTkxMDk2MTM2MWUtMDEsCisgIC03LjM5MDE2NTE1OTY5MDQ4N2UtMDEsICAgNi43MzY4NzMwODEyMjIyNDNlLTAxLAorICAtNy4zODg4NzMyNDQ2MDYxNTFlLTAxLCAgIDYuNzM4MjkwMDAzNzg3NTYwZS0wMSwKKyAgLTcuMzg3NTgxMDU3ODU0MDY5ZS0wMSwgICA2LjczOTcwNjY3ODYwNTIxNmUtMDEsCisgIC03LjM4NjI4ODU5OTQ4MTc0OGUtMDEsICAgNi43NDExMjMxMDU2MjMxMjRlLTAxLAorICAtNy4zODQ5OTU4Njk1MzY3MTFlLTAxLCAgIDYuNzQyNTM5Mjg0Nzg5MjA0ZS0wMSwKKyAgLTcuMzgzNzAyODY4MDY2NDg2ZS0wMSwgICA2Ljc0Mzk1NTIxNjA1MTM5MGUtMDEsCisgIC03LjM4MjQwOTU5NTExODYxM2UtMDEsICAgNi43NDUzNzA4OTkzNTc2MjBlLTAxLAorICAtNy4zODExMTYwNTA3NDA2NDNlLTAxLCAgIDYuNzQ2Nzg2MzM0NjU1ODQ1ZS0wMSwKKyAgLTcuMzc5ODIyMjM0OTgwMTM2ZS0wMSwgICA2Ljc0ODIwMTUyMTg5NDAyMmUtMDEsCisgIC03LjM3ODUyODE0Nzg4NDY2MGUtMDEsICAgNi43NDk2MTY0NjEwMjAxMTllLTAxLAorICAtNy4zNzcyMzM3ODk1MDE3OTdlLTAxLCAgIDYuNzUxMDMxMTUxOTgyMTE0ZS0wMSwKKyAgLTcuMzc1OTM5MTU5ODc5MTM2ZS0wMSwgICA2Ljc1MjQ0NTU5NDcyNzk5M2UtMDEsCisgIC03LjM3NDY0NDI1OTA2NDI3NmUtMDEsICAgNi43NTM4NTk3ODkyMDU3NDhlLTAxLAorICAtNy4zNzMzNDkwODcxMDQ4MjllLTAxLCAgIDYuNzU1MjczNzM1MzYzMzg1ZS0wMSwKKyAgLTcuMzcyMDUzNjQ0MDQ4NDEyZS0wMSwgICA2Ljc1NjY4NzQzMzE0ODkxOWUtMDEsCisgIC03LjM3MDc1NzkyOTk0MjY1N2UtMDEsICAgNi43NTgxMDA4ODI1MTAzNjllLTAxLAorICAtNy4zNjk0NjE5NDQ4MzUyMDNlLTAxLCAgIDYuNzU5NTE0MDgzMzk1NzcwZS0wMSwKKyAgLTcuMzY4MTY1Njg4NzczNjk5ZS0wMSwgICA2Ljc2MDkyNzAzNTc1MzE1OWUtMDEsCisgIC03LjM2Njg2OTE2MTgwNTgwNWUtMDEsICAgNi43NjIzMzk3Mzk1MzA1OTBlLTAxLAorICAtNy4zNjU1NzIzNjM5NzkxOTFlLTAxLCAgIDYuNzYzNzUyMTk0Njc2MTE2ZS0wMSwKKyAgLTcuMzY0Mjc1Mjk1MzQxNTM3ZS0wMSwgICA2Ljc2NTE2NDQwMTEzNzgxMWUtMDEsCisgIC03LjM2Mjk3Nzk1NTk0MDUzMmUtMDEsICAgNi43NjY1NzYzNTg4NjM3NTBlLTAxLAorICAtNy4zNjE2ODAzNDU4MjM4NzRlLTAxLCAgIDYuNzY3OTg4MDY3ODAyMDE4ZS0wMSwKKyAgLTcuMzYwMzgyNDY1MDM5Mjc0ZS0wMSwgICA2Ljc2OTM5OTUyNzkwMDcxMWUtMDEsCisgIC03LjM1OTA4NDMxMzYzNDQ1MmUtMDEsICAgNi43NzA4MTA3MzkxMDc5MzVlLTAxLAorICAtNy4zNTc3ODU4OTE2NTcxMzZlLTAxLCAgIDYuNzcyMjIxNzAxMzcxODAzZS0wMSwKKyAgLTcuMzU2NDg3MTk5MTU1MDY1ZS0wMSwgICA2Ljc3MzYzMjQxNDY0MDQzOWUtMDEsCisgIC03LjM1NTE4ODIzNjE3NTk4OWUtMDEsICAgNi43NzUwNDI4Nzg4NjE5NzRlLTAxLAorICAtNy4zNTM4ODkwMDI3Njc2NjdlLTAxLCAgIDYuNzc2NDUzMDkzOTg0NTQ5ZS0wMSwKKyAgLTcuMzUyNTg5NDk4OTc3ODY4ZS0wMSwgICA2Ljc3Nzg2MzA1OTk1NjMxNWUtMDEsCisgIC03LjM1MTI4OTcyNDg1NDM3MmUtMDEsICAgNi43NzkyNzI3NzY3MjU0MzBlLTAxLAorICAtNy4zNDk5ODk2ODA0NDQ5NjdlLTAxLCAgIDYuNzgwNjgyMjQ0MjQwMDY2ZS0wMSwKKyAgLTcuMzQ4Njg5MzY1Nzk3NDUyZS0wMSwgICA2Ljc4MjA5MTQ2MjQ0ODM5OWUtMDEsCisgIC03LjM0NzM4ODc4MDk1OTYzNWUtMDEsICAgNi43ODM1MDA0MzEyOTg2MTVlLTAxLAorICAtNy4zNDYwODc5MjU5NzkzMzVlLTAxLCAgIDYuNzg0OTA5MTUwNzM4OTExZS0wMSwKKyAgLTcuMzQ0Nzg2ODAwOTA0Mzg0ZS0wMSwgICA2Ljc4NjMxNzYyMDcxNzQ5NGUtMDEsCisgIC03LjM0MzQ4NTQwNTc4MjYxNmUtMDEsICAgNi43ODc3MjU4NDExODI1NzdlLTAxLAorICAtNy4zNDIxODM3NDA2NjE4ODNlLTAxLCAgIDYuNzg5MTMzODEyMDgyMzg0ZS0wMSwKKyAgLTcuMzQwODgxODA1NTkwMDQwZS0wMSwgICA2Ljc5MDU0MTUzMzM2NTE0OWUtMDEsCisgIC03LjMzOTU3OTYwMDYxNDk1OWUtMDEsICAgNi43OTE5NDkwMDQ5NzkxMTJlLTAxLAorICAtNy4zMzgyNzcxMjU3ODQ1MTdlLTAxLCAgIDYuNzkzMzU2MjI2ODcyNTI2ZS0wMSwKKyAgLTcuMzM2OTc0MzgxMTQ2NjA0ZS0wMSwgICA2Ljc5NDc2MzE5ODk5MzY1MGUtMDEsCisgIC03LjMzNTY3MTM2Njc0OTExNGUtMDEsICAgNi43OTYxNjk5MjEyOTA3NTZlLTAxLAorICAtNy4zMzQzNjgwODI2Mzk5NTdlLTAxLCAgIDYuNzk3NTc2MzkzNzEyMTIwZS0wMSwKKyAgLTcuMzMzMDY0NTI4ODY3MDUzZS0wMSwgICA2Ljc5ODk4MjYxNjIwNjAzM2UtMDEsCisgIC03LjMzMTc2MDcwNTQ3ODMyN2UtMDEsICAgNi44MDAzODg1ODg3MjA3ODllLTAxLAorICAtNy4zMzA0NTY2MTI1MjE3MjFlLTAxLCAgIDYuODAxNzk0MzExMjA0Njk3ZS0wMSwKKyAgLTcuMzI5MTUyMjUwMDQ1MTc4ZS0wMSwgICA2LjgwMzE5OTc4MzYwNjA3MmUtMDEsCisgIC03LjMyNzg0NzYxODA5NjY1OGUtMDEsICAgNi44MDQ2MDUwMDU4NzMyMzllLTAxLAorICAtNy4zMjY1NDI3MTY3MjQxMjhlLTAxLCAgIDYuODA2MDA5OTc3OTU0NTMwZS0wMSwKKyAgLTcuMzI1MjM3NTQ1OTc1NTY3ZS0wMSwgICA2LjgwNzQxNDY5OTc5ODI5MWUtMDEsCisgIC03LjMyMzkzMjEwNTg5ODk2MGUtMDEsICAgNi44MDg4MTkxNzEzNTI4NzJlLTAxLAorICAtNy4zMjI2MjYzOTY1NDIzMDhlLTAxLCAgIDYuODEwMjIzMzkyNTY2NjM3ZS0wMSwKKyAgLTcuMzIxMzIwNDE3OTUzNjEzZS0wMSwgICA2LjgxMTYyNzM2MzM4Nzk1NGUtMDEsCisgIC03LjMyMDAxNDE3MDE4MDg5NmUtMDEsICAgNi44MTMwMzEwODM3NjUyMDVlLTAxLAorICAtNy4zMTg3MDc2NTMyNzIxODNlLTAxLCAgIDYuODE0NDM0NTUzNjQ2Nzc5ZS0wMSwKKyAgLTcuMzE3NDAwODY3Mjc1NTEwZS0wMSwgICA2LjgxNTgzNzc3Mjk4MTA3NWUtMDEsCisgIC03LjMxNjA5MzgxMjIzODkyNmUtMDEsICAgNi44MTcyNDA3NDE3MTY0OTdlLTAxLAorICAtNy4zMTQ3ODY0ODgyMTA0ODVlLTAxLCAgIDYuODE4NjQzNDU5ODAxNDY3ZS0wMSwKKyAgLTcuMzEzNDc4ODk1MjM4MjU2ZS0wMSwgICA2LjgyMDA0NTkyNzE4NDQwOGUtMDEsCisgIC03LjMxMjE3MTAzMzM3MDMxM2UtMDEsICAgNi44MjE0NDgxNDM4MTM3NTZlLTAxLAorICAtNy4zMTA4NjI5MDI2NTQ3NDNlLTAxLCAgIDYuODIyODUwMTA5NjM3OTU2ZS0wMSwKKyAgLTcuMzA5NTU0NTAzMTM5NjQ0ZS0wMSwgICA2LjgyNDI1MTgyNDYwNTQ2MWUtMDEsCisgIC03LjMwODI0NTgzNDg3MzEyMmUtMDEsICAgNi44MjU2NTMyODg2NjQ3MzNlLTAxLAorICAtNy4zMDY5MzY4OTc5MDMyOTBlLTAxLCAgIDYuODI3MDU0NTAxNzY0MjQ2ZS0wMSwKKyAgLTcuMzA1NjI3NjkyMjc4Mjc2ZS0wMSwgICA2LjgyODQ1NTQ2Mzg1MjQ4MWUtMDEsCisgIC03LjMwNDMxODIxODA0NjIxNWUtMDEsICAgNi44Mjk4NTYxNzQ4Nzc5MjdlLTAxLAorICAtNy4zMDMwMDg0NzUyNTUyNTVlLTAxLCAgIDYuODMxMjU2NjM0Nzg5MDg3ZS0wMSwKKyAgLTcuMzAxNjk4NDYzOTUzNTQ5ZS0wMSwgICA2LjgzMjY1Njg0MzUzNDQ2N2UtMDEsCisgIC03LjMwMDM4ODE4NDE4OTI2M2UtMDEsICAgNi44MzQwNTY4MDEwNjI1ODdlLTAxLAorICAtNy4yOTkwNzc2MzYwMTA1NzFlLTAxLCAgIDYuODM1NDU2NTA3MzIxOTc1ZS0wMSwKKyAgLTcuMjk3NzY2ODE5NDY1NjYxZS0wMSwgICA2LjgzNjg1NTk2MjI2MTE2NmUtMDEsCisgIC03LjI5NjQ1NTczNDYwMjcyNWUtMDEsICAgNi44MzgyNTUxNjU4Mjg3MDdlLTAxLAorICAtNy4yOTUxNDQzODE0Njk5NzBlLTAxLCAgIDYuODM5NjU0MTE3OTczMTU0ZS0wMSwKKyAgLTcuMjkzODMyNzYwMTE1NjEwZS0wMSwgICA2Ljg0MTA1MjgxODY0MzA3MWUtMDEsCisgIC03LjI5MjUyMDg3MDU4Nzg3MGUtMDEsICAgNi44NDI0NTEyNjc3ODcwMzFlLTAxLAorICAtNy4yOTEyMDg3MTI5MzQ5ODJlLTAxLCAgIDYuODQzODQ5NDY1MzUzNjE3ZS0wMSwKKyAgLTcuMjg5ODk2Mjg3MjA1MTk0ZS0wMSwgICA2Ljg0NTI0NzQxMTI5MTQyM2UtMDEsCisgIC03LjI4ODU4MzU5MzQ0Njc1OGUtMDEsICAgNi44NDY2NDUxMDU1NDkwNTBlLTAxLAorICAtNy4yODcyNzA2MzE3MDc5MzhlLTAxLCAgIDYuODQ4MDQyNTQ4MDc1MTA2ZS0wMSwKKyAgLTcuMjg1OTU3NDAyMDM3MDA5ZS0wMSwgICA2Ljg0OTQzOTczODgxODIxNWUtMDEsCisgIC03LjI4NDY0MzkwNDQ4MjI1MmUtMDEsICAgNi44NTA4MzY2Nzc3MjcwMDRlLTAxLAorICAtNy4yODMzMzAxMzkwOTE5NjRlLTAxLCAgIDYuODUyMjMzMzY0NzUwMTEyZS0wMSwKKyAgLTcuMjgyMDE2MTA1OTE0NDQ2ZS0wMSwgICA2Ljg1MzYyOTc5OTgzNjE4N2UtMDEsCisgIC03LjI4MDcwMTgwNDk5ODAxMmUtMDEsICAgNi44NTUwMjU5ODI5MzM4ODZlLTAxLAorICAtNy4yNzkzODcyMzYzOTA5ODZlLTAxLCAgIDYuODU2NDIxOTEzOTkxODc1ZS0wMSwKKyAgLTcuMjc4MDcyNDAwMTQxNzAwZS0wMSwgICA2Ljg1NzgxNzU5Mjk1ODgzMGUtMDEsCisgIC03LjI3Njc1NzI5NjI5ODQ5NmUtMDEsICAgNi44NTkyMTMwMTk3ODM0MzZlLTAxLAorICAtNy4yNzU0NDE5MjQ5MDk3MjhlLTAxLCAgIDYuODYwNjA4MTk0NDE0Mzg3ZS0wMSwKKyAgLTcuMjc0MTI2Mjg2MDIzNzU4ZS0wMSwgICA2Ljg2MjAwMzExNjgwMDM4NmUtMDEsCisgIC03LjI3MjgxMDM3OTY4ODk1OWUtMDEsICAgNi44NjMzOTc3ODY4OTAxNDVlLTAxLAorICAtNy4yNzE0OTQyMDU5NTM3MTBlLTAxLCAgIDYuODY0NzkyMjA0NjMyMzkwZS0wMSwKKyAgLTcuMjcwMTc3NzY0ODY2NDA3ZS0wMSwgICA2Ljg2NjE4NjM2OTk3NTg0NmUtMDEsCisgIC03LjI2ODg2MTA1NjQ3NTQ1MGUtMDEsICAgNi44Njc1ODAyODI4NjkyNTllLTAxLAorICAtNy4yNjc1NDQwODA4MjkyNTBlLTAxLCAgIDYuODY4OTczOTQzMjYxMzc2ZS0wMSwKKyAgLTcuMjY2MjI2ODM3OTc2MjI4ZS0wMSwgICA2Ljg3MDM2NzM1MTEwMDk1N2UtMDEsCisgIC03LjI2NDkwOTMyNzk2NDgxOWUtMDEsICAgNi44NzE3NjA1MDYzMzY3NjhlLTAxLAorICAtNy4yNjM1OTE1NTA4NDM0NjBlLTAxLCAgIDYuODczMTUzNDA4OTE3NTkwZS0wMSwKKyAgLTcuMjYyMjczNTA2NjYwNjA0ZS0wMSwgICA2Ljg3NDU0NjA1ODc5MjIxMGUtMDEsCisgIC03LjI2MDk1NTE5NTQ2NDcxMGUtMDEsICAgNi44NzU5Mzg0NTU5MDk0MjJlLTAxLAorICAtNy4yNTk2MzY2MTczMDQyNDllLTAxLCAgIDYuODc3MzMwNjAwMjE4MDMyZS0wMSwKKyAgLTcuMjU4MzE3NzcyMjI3NzA0ZS0wMSwgICA2Ljg3ODcyMjQ5MTY2Njg1NWUtMDEsCisgIC03LjI1Njk5ODY2MDI4MzU2MWUtMDEsICAgNi44ODAxMTQxMzAyMDQ3MTZlLTAxLAorICAtNy4yNTU2NzkyODE1MjAzMjNlLTAxLCAgIDYuODgxNTA1NTE1NzgwNDQ4ZS0wMSwKKyAgLTcuMjU0MzU5NjM1OTg2NDk4ZS0wMSwgICA2Ljg4Mjg5NjY0ODM0Mjg5M2UtMDEsCisgIC03LjI1MzAzOTcyMzczMDYwOGUtMDEsICAgNi44ODQyODc1Mjc4NDA5MDRlLTAxLAorICAtNy4yNTE3MTk1NDQ4MDExODBlLTAxLCAgIDYuODg1Njc4MTU0MjIzMzQzZS0wMSwKKyAgLTcuMjUwMzk5MDk5MjQ2NzU0ZS0wMSwgICA2Ljg4NzA2ODUyNzQzOTA3N2UtMDEsCisgIC03LjI0OTA3ODM4NzExNTg3OGUtMDEsICAgNi44ODg0NTg2NDc0MzY5OTBlLTAxLAorICAtNy4yNDc3NTc0MDg0NTcxMTNlLTAxLCAgIDYuODg5ODQ4NTE0MTY1OTcwZS0wMSwKKyAgLTcuMjQ2NDM2MTYzMzE5MDI2ZS0wMSwgICA2Ljg5MTIzODEyNzU3NDkxNmUtMDEsCisgIC03LjI0NTExNDY1MTc1MDE5NmUtMDEsICAgNi44OTI2Mjc0ODc2MTI3MzVlLTAxLAorICAtNy4yNDM3OTI4NzM3OTkyMTJlLTAxLCAgIDYuODk0MDE2NTk0MjI4MzQzZS0wMSwKKyAgLTcuMjQyNDcwODI5NTE0NjcwZS0wMSwgICA2Ljg5NTQwNTQ0NzM3MDY2OGUtMDEsCisgIC03LjI0MTE0ODUxODk0NTE3OWUtMDEsICAgNi44OTY3OTQwNDY5ODg2NDhlLTAxLAorICAtNy4yMzk4MjU5NDIxMzkzNTVlLTAxLCAgIDYuODk4MTgyMzkzMDMxMjI1ZS0wMSwKKyAgLTcuMjM4NTAzMDk5MTQ1ODI5ZS0wMSwgICA2Ljg5OTU3MDQ4NTQ0NzM1NGUtMDEsCisgIC03LjIzNzE3OTk5MDAxMzIzNWUtMDEsICAgNi45MDA5NTgzMjQxODYwMDBlLTAxLAorICAtNy4yMzU4NTY2MTQ3OTAyMjFlLTAxLCAgIDYuOTAyMzQ1OTA5MTk2MTM0ZS0wMSwKKyAgLTcuMjM0NTMyOTczNTI1NDQ0ZS0wMSwgICA2LjkwMzczMzI0MDQyNjc0MGUtMDEsCisgIC03LjIzMzIwOTA2NjI2NzU3MGUtMDEsICAgNi45MDUxMjAzMTc4MjY4MTFlLTAxLAorICAtNy4yMzE4ODQ4OTMwNjUyNzVlLTAxLCAgIDYuOTA2NTA3MTQxMzQ1MzQ2ZS0wMSwKKyAgLTcuMjMwNTYwNDUzOTY3MjQ0ZS0wMSwgICA2LjkwNzg5MzcxMDkzMTM1N2UtMDEsCisgIC03LjIyOTIzNTc0OTAyMjE3N2UtMDEsICAgNi45MDkyODAwMjY1MzM4NjJlLTAxLAorICAtNy4yMjc5MTA3NzgyNzg3NzVlLTAxLCAgIDYuOTEwNjY2MDg4MTAxODkyZS0wMSwKKyAgLTcuMjI2NTg1NTQxNzg1NzU2ZS0wMSwgICA2LjkxMjA1MTg5NTU4NDQ4NWUtMDEsCisgIC03LjIyNTI2MDAzOTU5MTg0NWUtMDEsICAgNi45MTM0Mzc0NDg5MzA2ODdlLTAxLAorICAtNy4yMjM5MzQyNzE3NDU3NzZlLTAxLCAgIDYuOTE0ODIyNzQ4MDg5NTU5ZS0wMSwKKyAgLTcuMjIyNjA4MjM4Mjk2MjkzZS0wMSwgICA2LjkxNjIwNzc5MzAxMDE2M2UtMDEsCisgIC03LjIyMTI4MTkzOTI5MjE1M2UtMDEsICAgNi45MTc1OTI1ODM2NDE1NzdlLTAxLAorICAtNy4yMTk5NTUzNzQ3ODIxMTllLTAxLCAgIDYuOTE4OTc3MTE5OTMyODg4ZS0wMSwKKyAgLTcuMjE4NjI4NTQ0ODE0OTYzZS0wMSwgICA2LjkyMDM2MTQwMTgzMzE4N2UtMDEsCisgIC03LjIxNzMwMTQ0OTQzOTQ3MmUtMDEsICAgNi45MjE3NDU0MjkyOTE1ODFlLTAxLAorICAtNy4yMTU5NzQwODg3MDQ0MzhlLTAxLCAgIDYuOTIzMTI5MjAyMjU3MTgyZS0wMSwKKyAgLTcuMjE0NjQ2NDYyNjU4NjY0ZS0wMSwgICA2LjkyNDUxMjcyMDY3OTExMWUtMDEsCisgIC03LjIxMzMxODU3MTM1MDk2M2UtMDEsICAgNi45MjU4OTU5ODQ1MDY1MDRlLTAxLAorICAtNy4yMTE5OTA0MTQ4MzAxNTdlLTAxLCAgIDYuOTI3Mjc4OTkzNjg4NDk4ZS0wMSwKKyAgLTcuMjEwNjYxOTkzMTQ1MDgxZS0wMSwgICA2LjkyODY2MTc0ODE3NDI0NmUtMDEsCisgIC03LjIwOTMzMzMwNjM0NDU3NWUtMDEsICAgNi45MzAwNDQyNDc5MTI5MDllLTAxLAorICAtNy4yMDgwMDQzNTQ0Nzc0OTJlLTAxLCAgIDYuOTMxNDI2NDkyODUzNjU0ZS0wMSwKKyAgLTcuMjA2Njc1MTM3NTkyNjk1ZS0wMSwgICA2LjkzMjgwODQ4Mjk0NTY2MGUtMDEsCisgIC03LjIwNTM0NTY1NTczOTA1M2UtMDEsICAgNi45MzQxOTAyMTgxMzgxMThlLTAxLAorICAtNy4yMDQwMTU5MDg5NjU0NDhlLTAxLCAgIDYuOTM1NTcxNjk4MzgwMjIzZS0wMSwKKyAgLTcuMjAyNjg1ODk3MzIwNzcyZS0wMSwgICA2LjkzNjk1MjkyMzYyMTE4MmUtMDEsCisgIC03LjIwMTM1NTYyMDg1MzkyNGUtMDEsICAgNi45MzgzMzM4OTM4MTAyMTNlLTAxLAorICAtNy4yMDAwMjUwNzk2MTM4MTdlLTAxLCAgIDYuOTM5NzE0NjA4ODk2NTQwZS0wMSwKKyAgLTcuMTk4Njk0MjczNjQ5MzY5ZS0wMSwgICA2Ljk0MTA5NTA2ODgyOTM5OGUtMDEsCisgIC03LjE5NzM2MzIwMzAwOTUxMGUtMDEsICAgNi45NDI0NzUyNzM1NTgwMzNlLTAxLAorICAtNy4xOTYwMzE4Njc3NDMxODFlLTAxLCAgIDYuOTQzODU1MjIzMDMxNjk3ZS0wMSwKKyAgLTcuMTk0NzAwMjY3ODk5MzMwZS0wMSwgICA2Ljk0NTIzNDkxNzE5OTY1NWUtMDEsCisgIC03LjE5MzM2ODQwMzUyNjkxN2UtMDEsICAgNi45NDY2MTQzNTYwMTExNzhlLTAxLAorICAtNy4xOTIwMzYyNzQ2NzQ5MTJlLTAxLCAgIDYuOTQ3OTkzNTM5NDE1NTQ5ZS0wMSwKKyAgLTcuMTkwNzAzODgxMzkyMjkyZS0wMSwgICA2Ljk0OTM3MjQ2NzM2MjA1OGUtMDEsCisgIC03LjE4OTM3MTIyMzcyODA0NWUtMDEsICAgNi45NTA3NTExMzk4MDAwMDllLTAxLAorICAtNy4xODgwMzgzMDE3MzExNjllLTAxLCAgIDYuOTUyMTI5NTU2Njc4NzA4ZS0wMSwKKyAgLTcuMTg2NzA1MTE1NDUwNjcyZS0wMSwgICA2Ljk1MzUwNzcxNzk0NzQ3N2UtMDEsCisgIC03LjE4NTM3MTY2NDkzNTU3NGUtMDEsICAgNi45NTQ4ODU2MjM1NTU2NDRlLTAxLAorICAtNy4xODQwMzc5NTAyMzQ4OThlLTAxLCAgIDYuOTU2MjYzMjczNDUyNTQ5ZS0wMSwKKyAgLTcuMTgyNzAzOTcxMzk3NjgzZS0wMSwgICA2Ljk1NzY0MDY2NzU4NzUzN2UtMDEsCisgIC03LjE4MTM2OTcyODQ3Mjk3NWUtMDEsICAgNi45NTkwMTc4MDU5MDk5NjhlLTAxLAorICAtNy4xODAwMzUyMjE1MDk4MzJlLTAxLCAgIDYuOTYwMzk0Njg4MzY5MjA3ZS0wMSwKKyAgLTcuMTc4NzAwNDUwNTU3MzE3ZS0wMSwgICA2Ljk2MTc3MTMxNDkxNDYzMGUtMDEsCisgIC03LjE3NzM2NTQxNTY2NDUxMGUtMDEsICAgNi45NjMxNDc2ODU0OTU2MjFlLTAxLAorICAtNy4xNzYwMzAxMTY4ODA0OTFlLTAxLCAgIDYuOTY0NTIzODAwMDYxNTc4ZS0wMSwKKyAgLTcuMTc0Njk0NTU0MjU0MzU4ZS0wMSwgICA2Ljk2NTg5OTY1ODU2MTkwNGUtMDEsCisgIC03LjE3MzM1ODcyNzgzNTIxN2UtMDEsICAgNi45NjcyNzUyNjA5NDYwMTJlLTAxLAorICAtNy4xNzIwMjI2Mzc2NzIxODFlLTAxLCAgIDYuOTY4NjUwNjA3MTYzMzI1ZS0wMSwKKyAgLTcuMTcwNjg2MjgzODE0Mzc1ZS0wMSwgICA2Ljk3MDAyNTY5NzE2MzI3NWUtMDEsCisgIC03LjE2OTM0OTY2NjMxMDkzMWUtMDEsICAgNi45NzE0MDA1MzA4OTUzMDRlLTAxLAorICAtNy4xNjgwMTI3ODUyMTA5OTVlLTAxLCAgIDYuOTcyNzc1MTA4MzA4ODY1ZS0wMSwKKyAgLTcuMTY2Njc1NjQwNTYzNzE5ZS0wMSwgICA2Ljk3NDE0OTQyOTM1MzQxOGUtMDEsCisgIC03LjE2NTMzODIzMjQxODI2N2UtMDEsICAgNi45NzU1MjM0OTM5Nzg0MzJlLTAxLAorICAtNy4xNjQwMDA1NjA4MjM4MTBlLTAxLCAgIDYuOTc2ODk3MzAyMTMzMzg4ZS0wMSwKKyAgLTcuMTYyNjYyNjI1ODI5NTMxZS0wMSwgICA2Ljk3ODI3MDg1Mzc2Nzc3M2UtMDEsCisgIC03LjE2MTMyNDQyNzQ4NDYyM2UtMDEsICAgNi45Nzk2NDQxNDg4MzEwODdlLTAxLAorICAtNy4xNTk5ODU5NjU4MzgyODdlLTAxLCAgIDYuOTgxMDE3MTg3MjcyODM4ZS0wMSwKKyAgLTcuMTU4NjQ3MjQwOTM5NzM1ZS0wMSwgICA2Ljk4MjM4OTk2OTA0MjU0M2UtMDEsCisgIC03LjE1NzMwODI1MjgzODE4NmUtMDEsICAgNi45ODM3NjI0OTQwODk3MjllLTAxLAorICAtNy4xNTU5NjkwMDE1ODI4NzVlLTAxLCAgIDYuOTg1MTM0NzYyMzYzOTMwZS0wMSwKKyAgLTcuMTU0NjI5NDg3MjIzMDM4ZS0wMSwgICA2Ljk4NjUwNjc3MzgxNDY5NWUtMDEsCisgIC03LjE1MzI4OTcwOTgwNzkyNmUtMDEsICAgNi45ODc4Nzg1MjgzOTE1NzdlLTAxLAorICAtNy4xNTE5NDk2NjkzODY4MDFlLTAxLCAgIDYuOTg5MjUwMDI2MDQ0MTQxZS0wMSwKKyAgLTcuMTUwNjA5MzY2MDA4OTMxZS0wMSwgICA2Ljk5MDYyMTI2NjcyMTk2MWUtMDEsCisgIC03LjE0OTI2ODc5OTcyMzU5NWUtMDEsICAgNi45OTE5OTIyNTAzNzQ2MjFlLTAxLAorICAtNy4xNDc5Mjc5NzA1ODAwODJlLTAxLCAgIDYuOTkzMzYyOTc2OTUxNzExZS0wMSwKKyAgLTcuMTQ2NTg2ODc4NjI3NjkxZS0wMSwgICA2Ljk5NDczMzQ0NjQwMjgzOGUtMDEsCisgIC03LjE0NTI0NTUyMzkxNTcyOWUtMDEsICAgNi45OTYxMDM2NTg2Nzc2MTBlLTAxLAorICAtNy4xNDM5MDM5MDY0OTM1MTRlLTAxLCAgIDYuOTk3NDczNjEzNzI1NjUwZS0wMSwKKyAgLTcuMTQyNTYyMDI2NDEwMzc1ZS0wMSwgICA2Ljk5ODg0MzMxMTQ5NjU4OGUtMDEsCisgIC03LjE0MTIxOTg4MzcxNTY0OGUtMDEsICAgNy4wMDAyMTI3NTE5NDAwNjNlLTAxLAorICAtNy4xMzk4Nzc0Nzg0NTg2NzhlLTAxLCAgIDcuMDAxNTgxOTM1MDA1NzI3ZS0wMSwKKyAgLTcuMTM4NTM0ODEwNjg4ODI1ZS0wMSwgICA3LjAwMjk1MDg2MDY0MzIzOGUtMDEsCisgIC03LjEzNzE5MTg4MDQ1NTQ1MmUtMDEsICAgNy4wMDQzMTk1Mjg4MDIyNjRlLTAxLAorICAtNy4xMzU4NDg2ODc4MDc5MzZlLTAxLCAgIDcuMDA1Njg3OTM5NDMyNDgzZS0wMSwKKyAgLTcuMTM0NTA1MjMyNzk1NjYzZS0wMSwgICA3LjAwNzA1NjA5MjQ4MzU4NWUtMDEsCisgIC03LjEzMzE2MTUxNTQ2ODAyNmUtMDEsICAgNy4wMDg0MjM5ODc5MDUyNjFlLTAxLAorICAtNy4xMzE4MTc1MzU4NzQ0MzJlLTAxLCAgIDcuMDA5NzkxNjI1NjQ3MjI0ZS0wMSwKKyAgLTcuMTMwNDczMjk0MDY0MjkzZS0wMSwgICA3LjAxMTE1OTAwNTY1OTE4N2UtMDEsCisgIC03LjEyOTEyODc5MDA4NzAzNWUtMDEsICAgNy4wMTI1MjYxMjc4OTA4NzVlLTAxLAorICAtNy4xMjc3ODQwMjM5OTIwOTBlLTAxLCAgIDcuMDEzODkyOTkyMjkyMDIyZS0wMSwKKyAgLTcuMTI2NDM4OTk1ODI4OTAyZS0wMSwgICA3LjAxNTI1OTU5ODgxMjM3M2UtMDEsCisgIC03LjEyNTA5MzcwNTY0NjkyM2UtMDEsICAgNy4wMTY2MjU5NDc0MDE2ODVlLTAxLAorICAtNy4xMjM3NDgxNTM0OTU2MTdlLTAxLCAgIDcuMDE3OTkyMDM4MDA5NzE3ZS0wMSwKKyAgLTcuMTIyNDAyMzM5NDI0NDU1ZS0wMSwgICA3LjAxOTM1Nzg3MDU4NjI0NGUtMDEsCisgIC03LjEyMTA1NjI2MzQ4MjkxOWUtMDEsICAgNy4wMjA3MjM0NDUwODEwNDZlLTAxLAorICAtNy4xMTk3MDk5MjU3MjA1MDFlLTAxLCAgIDcuMDIyMDg4NzYxNDQzOTE5ZS0wMSwKKyAgLTcuMTE4MzYzMzI2MTg2NzAxZS0wMSwgICA3LjAyMzQ1MzgxOTYyNDY1OWUtMDEsCisgIC03LjExNzAxNjQ2NDkzMTAzMGUtMDEsICAgNy4wMjQ4MTg2MTk1NzMwODBlLTAxLAorICAtNy4xMTU2NjkzNDIwMDMwMDdlLTAxLCAgIDcuMDI2MTgzMTYxMjM5MDAxZS0wMSwKKyAgLTcuMTE0MzIxOTU3NDUyMTY0ZS0wMSwgICA3LjAyNzU0NzQ0NDU3MjI1M2UtMDEsCisgIC03LjExMjk3NDMxMTMyODA0MGUtMDEsICAgNy4wMjg5MTE0Njk1MjI2NzRlLTAxLAorICAtNy4xMTE2MjY0MDM2ODAxODRlLTAxLCAgIDcuMDMwMjc1MjM2MDQwMTEyZS0wMSwKKyAgLTcuMTEwMjc4MjM0NTU4MTUzZS0wMSwgICA3LjAzMTYzODc0NDA3NDQyOGUtMDEsCisgIC03LjEwODkyOTgwNDAxMTUxN2UtMDEsICAgNy4wMzMwMDE5OTM1NzU0ODdlLTAxLAorICAtNy4xMDc1ODExMTIwODk4NTRlLTAxLCAgIDcuMDM0MzY0OTg0NDkzMTY3ZS0wMSwKKyAgLTcuMTA2MjMyMTU4ODQyNzUwZS0wMSwgICA3LjAzNTcyNzcxNjc3NzM1NmUtMDEsCisgIC03LjEwNDg4Mjk0NDMxOTgwNWUtMDEsICAgNy4wMzcwOTAxOTAzNzc5NDhlLTAxLAorICAtNy4xMDM1MzM0Njg1NzA2MjRlLTAxLCAgIDcuMDM4NDUyNDA1MjQ0ODQ5ZS0wMSwKKyAgLTcuMTAyMTgzNzMxNjQ0ODIyZS0wMSwgICA3LjAzOTgxNDM2MTMyNzk3NmUtMDEsCisgIC03LjEwMDgzMzczMzU5MjAyOGUtMDEsICAgNy4wNDExNzYwNTg1NzcyNTNlLTAxLAorICAtNy4wOTk0ODM0NzQ0NjE4NzRlLTAxLCAgIDcuMDQyNTM3NDk2OTQyNjE1ZS0wMSwKKyAgLTcuMDk4MTMyOTU0MzA0MDA4ZS0wMSwgICA3LjA0Mzg5ODY3NjM3NDAwNGUtMDEsCisgIC03LjA5Njc4MjE3MzE2ODA4NmUtMDEsICAgNy4wNDUyNTk1OTY4MjEzNzRlLTAxLAorICAtNy4wOTU0MzExMzExMDM3NjhlLTAxLCAgIDcuMDQ2NjIwMjU4MjM0Njg4ZS0wMSwKKyAgLTcuMDk0MDc5ODI4MTYwNzMwZS0wMSwgICA3LjA0Nzk4MDY2MDU2MzkyMGUtMDEsCisgIC03LjA5MjcyODI2NDM4ODY1N2UtMDEsICAgNy4wNDkzNDA4MDM3NTkwNDllLTAxLAorICAtNy4wOTEzNzY0Mzk4MzcyNDBlLTAxLCAgIDcuMDUwNzAwNjg3NzcwMDY4ZS0wMSwKKyAgLTcuMDkwMDI0MzU0NTU2MTgzZS0wMSwgICA3LjA1MjA2MDMxMjU0Njk3OGUtMDEsCisgIC03LjA4ODY3MjAwODU5NTE5OGUtMDEsICAgNy4wNTM0MTk2NzgwMzk3ODhlLTAxLAorICAtNy4wODczMTk0MDIwMDQwMDZlLTAxLCAgIDcuMDU0Nzc4Nzg0MTk4NTIxZS0wMSwKKyAgLTcuMDg1OTY2NTM0ODMyMzQxZS0wMSwgICA3LjA1NjEzNzYzMDk3MzIwNWUtMDEsCisgIC03LjA4NDYxMzQwNzEyOTk0MmUtMDEsICAgNy4wNTc0OTYyMTgzMTM4NzhlLTAxLAorICAtNy4wODMyNjAwMTg5NDY1NTllLTAxLCAgIDcuMDU4ODU0NTQ2MTcwNTkwZS0wMSwKKyAgLTcuMDgxOTA2MzcwMzMxOTU0ZS0wMSwgICA3LjA2MDIxMjYxNDQ5MzM5N2UtMDEsCisgIC03LjA4MDU1MjQ2MTMzNTg5NWUtMDEsICAgNy4wNjE1NzA0MjMyMzIzNzFlLTAxLAorICAtNy4wNzkxOTgyOTIwMDgxNjNlLTAxLCAgIDcuMDYyOTI3OTcyMzM3NTg1ZS0wMSwKKyAgLTcuMDc3ODQzODYyMzk4NTQ2ZS0wMSwgICA3LjA2NDI4NTI2MTc1OTEyOGUtMDEsCisgIC03LjA3NjQ4OTE3MjU1Njg0NGUtMDEsICAgNy4wNjU2NDIyOTE0NDcwOTVlLTAxLAorICAtNy4wNzUxMzQyMjI1MzI4NjNlLTAxLCAgIDcuMDY2OTk5MDYxMzUxNTk0ZS0wMSwKKyAgLTcuMDczNzc5MDEyMzc2NDIxZS0wMSwgICA3LjA2ODM1NTU3MTQyMjczOGUtMDEsCisgIC03LjA3MjQyMzU0MjEzNzM0N2UtMDEsICAgNy4wNjk3MTE4MjE2MTA2NTRlLTAxLAorICAtNy4wNzEwNjc4MTE4NjU0NzZlLTAxLCAgIDcuMDcxMDY3ODExODY1NDc1ZS0wMSwKKyNlbGlmIFRXSURETEVfVEFCTEVfT1JERVIgPT0gMTIKKyAgLTEuMDAwMDAwMDAwMDAwMDAwZSswMCwgICAwLjAwMDAwMDAwMDAwMDAwMGUrMDAsCisgIC05Ljk5OTk4ODIzNDUxNzAxOWUtMDEsICAgMS41MzM5ODAxODYyODQ3NjZlLTAzLAorICAtOS45OTk5NTI5MzgwOTU3NjJlLTAxLCAgIDMuMDY3OTU2NzYyOTY1OTc2ZS0wMywKKyAgLTkuOTk5ODk0MTEwODE5Mjg0ZS0wMSwgICA0LjYwMTkyNjEyMDQ0ODU3MGUtMDMsCisgIC05Ljk5OTgxMTc1MjgyNjAxMWUtMDEsICAgNi4xMzU4ODQ2NDkxNTQ0NzVlLTAzLAorICAtOS45OTk3MDU4NjQzMDk3NDFlLTAxLCAgIDcuNjY5ODI4NzM5NTMxMDk3ZS0wMywKKyAgLTkuOTk5NTc2NDQ1NTE5NjM5ZS0wMSwgICA5LjIwMzc1NDc4MjA1OTgyMGUtMDMsCisgIC05Ljk5OTQyMzQ5Njc2MDIzOWUtMDEsICAgMS4wNzM3NjU5MTY3MjY0NDllLTAyLAorICAtOS45OTkyNDcwMTgzOTE0NDVlLTAxLCAgIDEuMjI3MTUzODI4NTcxOTkzZS0wMiwKKyAgLTkuOTk5MDQ3MDEwODI4NTI5ZS0wMSwgICAxLjM4MDUzODg1MjgwNjAzOWUtMDIsCisgIC05Ljk5ODgyMzQ3NDU0MjEyNmUtMDEsICAgMS41MzM5MjA2Mjg0OTg4MTBlLTAyLAorICAtOS45OTg1NzY0MTAwNTgyMzllLTAxLCAgIDEuNjg3Mjk4Nzk0NzI4MTcxZS0wMiwKKyAgLTkuOTk4MzA1ODE3OTU4MjM0ZS0wMSwgICAxLjg0MDY3Mjk5MDU4MDQ4MmUtMDIsCisgIC05Ljk5ODAxMTY5ODg3ODg0M2UtMDEsICAgMS45OTQwNDI4NTUxNTE0NDRlLTAyLAorICAtOS45OTc2OTQwNTM1MTIxNTNlLTAxLCAgIDIuMTQ3NDA4MDI3NTQ2OTUxZS0wMiwKKyAgLTkuOTk3MzUyODgyNjA1NjE3ZS0wMSwgICAyLjMwMDc2ODE0Njg4MzkzN2UtMDIsCisgIC05Ljk5Njk4ODE4Njk2MjA0MmUtMDEsICAgMi40NTQxMjI4NTIyOTEyMjllLTAyLAorICAtOS45OTY1OTk5Njc0Mzk1OTJlLTAxLCAgIDIuNjA3NDcxNzgyOTEwMzkwZS0wMiwKKyAgLTkuOTk2MTg4MjI0OTUxNzg2ZS0wMSwgICAyLjc2MDgxNDU3Nzg5NjU3NGUtMDIsCisgIC05Ljk5NTc1Mjk2MDQ2NzQ5MmUtMDEsICAgMi45MTQxNTA4NzY0MTkzNzJlLTAyLAorICAtOS45OTUyOTQxNzUwMTA5MzFlLTAxLCAgIDMuMDY3NDgwMzE3NjYzNjYzZS0wMiwKKyAgLTkuOTk0ODExODY5NjYxNjcwZS0wMSwgICAzLjIyMDgwMjU0MDgzMDQ1OWUtMDIsCisgIC05Ljk5NDMwNjA0NTU1NDYxN2UtMDEsICAgMy4zNzQxMTcxODUxMzc3NThlLTAyLAorICAtOS45OTM3NzY3MDM4ODAwMjhlLTAxLCAgIDMuNTI3NDIzODg5ODIxMzk1ZS0wMiwKKyAgLTkuOTkzMjIzODQ1ODgzNDk1ZS0wMSwgICAzLjY4MDcyMjI5NDEzNTg4M2UtMDIsCisgIC05Ljk5MjY0NzQ3Mjg2NTk0NGUtMDEsICAgMy44MzQwMTIwMzczNTUyNjllLTAyLAorICAtOS45OTIwNDc1ODYxODM2MzllLTAxLCAgIDMuOTg3MjkyNzU4NzczOTgxZS0wMiwKKyAgLTkuOTkxNDI0MTg3MjQ4MTY5ZS0wMSwgICA0LjE0MDU2NDA5NzcwNzY3NGUtMDIsCisgIC05Ljk5MDc3NzI3NzUyNjQ1NGUtMDEsICAgNC4yOTM4MjU2OTM0OTQwODJlLTAyLAorICAtOS45OTAxMDY4NTg1NDA3MzRlLTAxLCAgIDQuNDQ3MDc3MTg1NDkzODY3ZS0wMiwKKyAgLTkuOTg5NDEyOTMxODY4NTY5ZS0wMSwgICA0LjYwMDMxODIxMzA5MTQ2MmUtMDIsCisgIC05Ljk4ODY5NTQ5OTE0MjgzNmUtMDEsICAgNC43NTM1NDg0MTU2OTU5MzBlLTAyLAorICAtOS45ODc5NTQ1NjIwNTE3MjRlLTAxLCAgIDQuOTA2NzY3NDMyNzQxODAxZS0wMiwKKyAgLTkuOTg3MTkwMTIyMzM4NzI5ZS0wMSwgICA1LjA1OTk3NDkwMzY4OTkyOGUtMDIsCisgIC05Ljk4NjQwMjE4MTgwMjY1M2UtMDEsICAgNS4yMTMxNzA0NjgwMjgzMzJlLTAyLAorICAtOS45ODU1OTA3NDIyOTc1OTNlLTAxLCAgIDUuMzY2MzUzNzY1MjczMDUyZS0wMiwKKyAgLTkuOTg0NzU1ODA1NzMyOTQ4ZS0wMSwgICA1LjUxOTUyNDQzNDk2ODk5M2UtMDIsCisgIC05Ljk4Mzg5NzM3NDA3MzQwMmUtMDEsICAgNS42NzI2ODIxMTY2OTA3NzVlLTAyLAorICAtOS45ODMwMTU0NDkzMzg5MjllLTAxLCAgIDUuODI1ODI2NDUwMDQzNTc1ZS0wMiwKKyAgLTkuOTgyMTEwMDMzNjA0NzgyZS0wMSwgICA1Ljk3ODk1NzA3NDY2Mzk4N2UtMDIsCisgIC05Ljk4MTE4MTEyOTAwMTQ5MmUtMDEsICAgNi4xMzIwNzM2MzAyMjA4NThlLTAyLAorICAtOS45ODAyMjg3Mzc3MTQ4NjJlLTAxLCAgIDYuMjg1MTc1NzU2NDE2MTQwZS0wMiwKKyAgLTkuOTc5MjUyODYxOTg1OTYwZS0wMSwgICA2LjQzODI2MzA5Mjk4NTc0N2UtMDIsCisgIC05Ljk3ODI1MzUwNDExMTExNmUtMDEsICAgNi41OTEzMzUyNzk3MDAzODBlLTAyLAorICAtOS45NzcyMzA2NjY0NDE5MTZlLTAxLCAgIDYuNzQ0MzkxOTU2MzY2NDA1ZS0wMiwKKyAgLTkuOTc2MTg0MzUxMzg1MTk2ZS0wMSwgICA2Ljg5NzQzMjc2MjgyNjY3NWUtMDIsCisgIC05Ljk3NTExNDU2MTQwMzAzNWUtMDEsICAgNy4wNTA0NTczMzg5NjEzODZlLTAyLAorICAtOS45NzQwMjEyOTkwMTI3NTNlLTAxLCAgIDcuMjAzNDY1MzI0Njg4OTMzZS0wMiwKKyAgLTkuOTcyOTA0NTY2Nzg2OTAyZS0wMSwgICA3LjM1NjQ1NjM1OTk2Njc0M2UtMDIsCisgIC05Ljk3MTc2NDM2NzM1MzI2MmUtMDEsICAgNy41MDk0MzAwODQ3OTIxMzBlLTAyLAorICAtOS45NzA2MDA3MDMzOTQ4MzBlLTAxLCAgIDcuNjYyMzg2MTM5MjAzMTQ5ZS0wMiwKKyAgLTkuOTY5NDEzNTc3NjQ5ODIyZS0wMSwgICA3LjgxNTMyNDE2MzI3OTQyM2UtMDIsCisgIC05Ljk2ODIwMjk5MjkxMTY1N2UtMDEsICAgNy45NjgyNDM3OTcxNDMwMTNlLTAyLAorICAtOS45NjY5Njg5NTIwMjg5NjFlLTAxLCAgIDguMTIxMTQ0NjgwOTU5MjQ0ZS0wMiwKKyAgLTkuOTY1NzExNDU3OTA1NTQ4ZS0wMSwgICA4LjI3NDAyNjQ1NDkzNzU2OWUtMDIsCisgIC05Ljk2NDQzMDUxMzUwMDQyNmUtMDEsICAgOC40MjY4ODg3NTkzMzI0MDdlLTAyLAorICAtOS45NjMxMjYxMjE4Mjc3ODBlLTAxLCAgIDguNTc5NzMxMjM0NDQzOTkwZS0wMiwKKyAgLTkuOTYxNzk4Mjg1OTU2OTcwZS0wMSwgICA4LjczMjU1MzUyMDYxOTIwNmUtMDIsCisgIC05Ljk2MDQ0NzAwOTAxMjUyMGUtMDEsICAgOC44ODUzNTUyNTgyNTI0NjBlLTAyLAorICAtOS45NTkwNzIyOTQxNzQxMTdlLTAxLCAgIDkuMDM4MTM2MDg3Nzg2NDk4ZS0wMiwKKyAgLTkuOTU3Njc0MTQ0Njc2NTk4ZS0wMSwgICA5LjE5MDg5NTY0OTcxMzI3MmUtMDIsCisgIC05Ljk1NjI1MjU2MzgwOTk0M2UtMDEsICAgOS4zNDM2MzM1ODQ1NzQ3NzllLTAyLAorICAtOS45NTQ4MDc1NTQ5MTkyNjllLTAxLCAgIDkuNDk2MzQ5NTMyOTYzODk5ZS0wMiwKKyAgLTkuOTUzMzM5MTIxNDA0ODIzZS0wMSwgICA5LjY0OTA0MzEzNTUyNTI1OWUtMDIsCisgIC05Ljk1MTg0NzI2NjcyMTk2OWUtMDEsICAgOS44MDE3MTQwMzI5NTYwNjBlLTAyLAorICAtOS45NTAzMzE5OTQzODExODZlLTAxLCAgIDkuOTU0MzYxODY2MDA2OTMyZS0wMiwKKyAgLTkuOTQ4NzkzMzA3OTQ4MDU2ZS0wMSwgICAxLjAxMDY5ODYyNzU0ODI3OGUtMDEsCisgIC05Ljk0NzIzMTIxMTA0MzI1N2UtMDEsICAgMS4wMjU5NTg2OTAyMjQzNjNlLTAxLAorICAtOS45NDU2NDU3MDczNDI1NTRlLTAxLCAgIDEuMDQxMjE2MzM4NzIwNTQ2ZS0wMSwKKyAgLTkuOTQ0MDM2ODAwNTc2NzkxZS0wMSwgICAxLjA1NjQ3MTUzNzEzNDEwNmUtMDEsCisgIC05Ljk0MjQwNDQ5NDUzMTg3OWUtMDEsICAgMS4wNzE3MjQyNDk1NjgwODhlLTAxLAorICAtOS45NDA3NDg3OTMwNDg3OTRlLTAxLCAgIDEuMDg2OTc0NDQwMTMxMzg3ZS0wMSwKKyAgLTkuOTM5MDY5NzAwMDIzNTYxZS0wMSwgICAxLjEwMjIyMjA3MjkzODgzMWUtMDEsCisgIC05LjkzNzM2NzIxOTQwNzI0NmUtMDEsICAgMS4xMTc0NjcxMTIxMTEyNjZlLTAxLAorICAtOS45MzU2NDEzNTUyMDU5NTNlLTAxLCAgIDEuMTMyNzA5NTIxNzc1NjQzZS0wMSwKKyAgLTkuOTMzODkyMTExNDgwODA3ZS0wMSwgICAxLjE0Nzk0OTI2NjA2NTEwMWUtMDEsCisgIC05LjkzMjExOTQ5MjM0Nzk0NWUtMDEsICAgMS4xNjMxODYzMDkxMTkwNDhlLTAxLAorICAtOS45MzAzMjM1MDE5Nzg1MTRlLTAxLCAgIDEuMTc4NDIwNjE1MDgzMjUwZS0wMSwKKyAgLTkuOTI4NTA0MTQ0NTk4NjUxZS0wMSwgICAxLjE5MzY1MjE0ODEwOTkxNGUtMDEsCisgIC05LjkyNjY2MTQyNDQ4OTQ4MGUtMDEsICAgMS4yMDg4ODA4NzIzNTc3NzFlLTAxLAorICAtOS45MjQ3OTUzNDU5ODcxMDBlLTAxLCAgIDEuMjI0MTA2NzUxOTkyMTYyZS0wMSwKKyAgLTkuOTIyOTA1OTEzNDgyNTc0ZS0wMSwgICAxLjIzOTMyOTc1MTE4NTEyMmUtMDEsCisgIC05LjkyMDk5MzEzMTQyMTkxOGUtMDEsICAgMS4yNTQ1NDk4MzQxMTU0NjJlLTAxLAorICAtOS45MTkwNTcwMDQzMDYwOTNlLTAxLCAgIDEuMjY5NzY2OTY0OTY4ODU5ZS0wMSwKKyAgLTkuOTE3MDk3NTM2NjkwOTk1ZS0wMSwgICAxLjI4NDk4MTEwNzkzNzkzMmUtMDEsCisgIC05LjkxNTExNDczMzE4NzQzOWUtMDEsICAgMS4zMDAxOTIyMjcyMjIzMzNlLTAxLAorICAtOS45MTMxMDg1OTg0NjExNTRlLTAxLCAgIDEuMzE1NDAwMjg3MDI4ODMxZS0wMSwKKyAgLTkuOTExMDc5MTM3MjMyNzY5ZS0wMSwgICAxLjMzMDYwNTI1MTU3MTM5MWUtMDEsCisgIC05LjkwOTAyNjM1NDI3NzgwMGUtMDEsICAgMS4zNDU4MDcwODUwNzEyNjJlLTAxLAorICAtOS45MDY5NTAyNTQ0MjY2NDZlLTAxLCAgIDEuMzYxMDA1NzUxNzU3MDYyZS0wMSwKKyAgLTkuOTA0ODUwODQyNTY0NTcxZS0wMSwgICAxLjM3NjIwMTIxNTg2NDg2MGUtMDEsCisgIC05LjkwMjcyODEyMzYzMTY5MWUtMDEsICAgMS4zOTEzOTM0NDE2MzgyNjJlLTAxLAorICAtOS45MDA1ODIxMDI2MjI5NzFlLTAxLCAgIDEuNDA2NTgyMzkzMzI4NDkyZS0wMSwKKyAgLTkuODk4NDEyNzg0NTg4MjA1ZS0wMSwgICAxLjQyMTc2ODAzNTE5NDQ4MGUtMDEsCisgIC05Ljg5NjIyMDE3NDYzMjAwOWUtMDEsICAgMS40MzY5NTAzMzE1MDI5NDVlLTAxLAorICAtOS44OTQwMDQyNzc5MTM4MDRlLTAxLCAgIDEuNDUyMTI5MjQ2NTI4NDc1ZS0wMSwKKyAgLTkuODkxNzY1MDk5NjQ3ODEwZS0wMSwgICAxLjQ2NzMwNDc0NDU1MzYxN2UtMDEsCisgIC05Ljg4OTUwMjY0NTEwMzAzMGUtMDEsICAgMS40ODI0NzY3ODk4Njg5NjBlLTAxLAorICAtOS44ODcyMTY5MTk2MDMyMzhlLTAxLCAgIDEuNDk3NjQ1MzQ2NzczMjE1ZS0wMSwKKyAgLTkuODg0OTA3OTI4NTI2OTY2ZS0wMSwgICAxLjUxMjgxMDM3OTU3MzMwMmUtMDEsCisgIC05Ljg4MjU3NTY3NzMwNzQ5NWUtMDEsICAgMS41Mjc5NzE4NTI1ODQ0MzRlLTAxLAorICAtOS44ODAyMjAxNzE0MzI4MzVlLTAxLCAgIDEuNTQzMTI5NzMwMTMwMjAxZS0wMSwKKyAgLTkuODc3ODQxNDE2NDQ1NzIyZS0wMSwgICAxLjU1ODI4Mzk3NjU0MjY1MmUtMDEsCisgIC05Ljg3NTQzOTQxNzk0MzU5MmUtMDEsICAgMS41NzM0MzQ1NTYxNjIzODJlLTAxLAorICAtOS44NzMwMTQxODE1Nzg1ODRlLTAxLCAgIDEuNTg4NTgxNDMzMzM4NjE0ZS0wMSwKKyAgLTkuODcwNTY1NzEzMDU3NTEwZS0wMSwgICAxLjYwMzcyNDU3MjQyOTI4M2UtMDEsCisgIC05Ljg2ODA5NDAxODE0MTg1NWUtMDEsICAgMS42MTg4NjM5Mzc4MDExMThlLTAxLAorICAtOS44NjU1OTkxMDI2NDc3NTRlLTAxLCAgIDEuNjMzOTk5NDkzODI5NzMyZS0wMSwKKyAgLTkuODYzMDgwOTcyNDQ1OTg3ZS0wMSwgICAxLjY0OTEzMTIwNDg5OTY5OWUtMDEsCisgIC05Ljg2MDUzOTYzMzQ2MTk1NGUtMDEsICAgMS42NjQyNTkwMzU0MDQ2NDFlLTAxLAorICAtOS44NTc5NzUwOTE2NzU2NzVlLTAxLCAgIDEuNjc5MzgyOTQ5NzQ3MzEyZS0wMSwKKyAgLTkuODU1Mzg3MzUzMTIxNzYxZS0wMSwgICAxLjY5NDUwMjkxMjMzOTY4MGUtMDEsCisgIC05Ljg1Mjc3NjQyMzg4OTQxMmUtMDEsICAgMS43MDk2MTg4ODc2MDMwMTJlLTAxLAorICAtOS44NTAxNDIzMTAxMjIzOThlLTAxLCAgIDEuNzI0NzMwODM5OTY3OTYwZS0wMSwKKyAgLTkuODQ3NDg1MDE4MDE5MDQyZS0wMSwgICAxLjczOTgzODczMzg3NDYzOGUtMDEsCisgIC05Ljg0NDgwNDU1MzgzMjIwOWUtMDEsICAgMS43NTQ5NDI1MzM3NzI3MTRlLTAxLAorICAtOS44NDIxMDA5MjM4NjkyOTBlLTAxLCAgIDEuNzcwMDQyMjA0MTIxNDg3ZS0wMSwKKyAgLTkuODM5Mzc0MTM0NDkyMTg5ZS0wMSwgICAxLjc4NTEzNzcwOTM4OTk3NWUtMDEsCisgIC05LjgzNjYyNDE5MjExNzMwM2UtMDEsICAgMS44MDAyMjkwMTQwNTY5OTVlLTAxLAorICAtOS44MzM4NTExMDMyMTU1MTJlLTAxLCAgIDEuODE1MzE2MDgyNjExMjUwZS0wMSwKKyAgLTkuODMxMDU0ODc0MzEyMTYzZS0wMSwgICAxLjgzMDM5ODg3OTU1MTQxMGUtMDEsCisgIC05LjgyODIzNTUxMTk4NzA1MmUtMDEsICAgMS44NDU0NzczNjkzODYxOTZlLTAxLAorICAtOS44MjUzOTMwMjI4NzQ0MTJlLTAxLCAgIDEuODYwNTUxNTE2NjM0NDY2ZS0wMSwKKyAgLTkuODIyNTI3NDEzNjYyODk0ZS0wMSwgICAxLjg3NTYyMTI4NTgyNTI5NmUtMDEsCisgIC05LjgxOTYzODY5MTA5NTU1MmUtMDEsICAgMS44OTA2ODY2NDE0OTgwNjJlLTAxLAorICAtOS44MTY3MjY4NjE5Njk4MzFlLTAxLCAgIDEuOTA1NzQ3NTQ4MjAyNTI3ZS0wMSwKKyAgLTkuODEzNzkxOTMzMTM3NTQ2ZS0wMSwgICAxLjkyMDgwMzk3MDQ5ODkyNGUtMDEsCisgIC05LjgxMDgzMzkxMTUwNDg2N2UtMDEsICAgMS45MzU4NTU4NzI5NTgwMzZlLTAxLAorICAtOS44MDc4NTI4MDQwMzIzMDRlLTAxLCAgIDEuOTUwOTAzMjIwMTYxMjgyZS0wMSwKKyAgLTkuODA0ODQ4NjE3NzM0Njk0ZS0wMSwgICAxLjk2NTk0NTk3NjcwMDgwMmUtMDEsCisgIC05LjgwMTgyMTM1OTY4MTE3NGUtMDEsICAgMS45ODA5ODQxMDcxNzk1MzZlLTAxLAorICAtOS43OTg3NzEwMzY5OTUxNzZlLTAxLCAgIDEuOTk2MDE3NTc2MjExMzEwZS0wMSwKKyAgLTkuNzk1Njk3NjU2ODU0NDA1ZS0wMSwgICAyLjAxMTA0NjM0ODQyMDkxOWUtMDEsCisgIC05Ljc5MjYwMTIyNjQ5MDgyMGUtMDEsICAgMi4wMjYwNzAzODg0NDQyMTFlLTAxLAorICAtOS43ODk0ODE3NTMxOTA2MjJlLTAxLCAgIDIuMDQxMDg5NjYwOTI4MTY5ZS0wMSwKKyAgLTkuNzg2MzM5MjQ0Mjk0MjMyZS0wMSwgICAyLjA1NjEwNDEzMDUzMDk5MmUtMDEsCisgIC05Ljc4MzE3MzcwNzE5NjI3N2UtMDEsICAgMi4wNzExMTM3NjE5MjIxODZlLTAxLAorICAtOS43Nzk5ODUxNDkzNDU1NzFlLTAxLCAgIDIuMDg2MTE4NTE5NzgyNjM1ZS0wMSwKKyAgLTkuNzc2NzczNTc4MjQ1MDk5ZS0wMSwgICAyLjEwMTExODM2ODgwNDY5NmUtMDEsCisgIC05Ljc3MzUzOTAwMTQ1MjAwMGUtMDEsICAgMi4xMTYxMTMyNzM2OTIyNzZlLTAxLAorICAtOS43NzAyODE0MjY1Nzc1NDRlLTAxLCAgIDIuMTMxMTAzMTk5MTYwOTE0ZS0wMSwKKyAgLTkuNzY3MDAwODYxMjg3MTE4ZS0wMSwgICAyLjE0NjA4ODEwOTkzNzg2OGUtMDEsCisgIC05Ljc2MzY5NzMxMzMwMDIxMWUtMDEsICAgMi4xNjEwNjc5NzA3NjIxOTVlLTAxLAorICAtOS43NjAzNzA3OTAzOTAzOTBlLTAxLCAgIDIuMTc2MDQyNzQ2Mzg0ODM2ZS0wMSwKKyAgLTkuNzU3MDIxMzAwMzg1Mjg2ZS0wMSwgICAyLjE5MTAxMjQwMTU2ODY5OGUtMDEsCisgIC05Ljc1MzY0ODg1MTE2NjU3MGUtMDEsICAgMi4yMDU5NzY5MDEwODg3MzVlLTAxLAorICAtOS43NTAyNTM0NTA2Njk5NDFlLTAxLCAgIDIuMjIwOTM2MjA5NzMyMDM1ZS0wMSwKKyAgLTkuNzQ2ODM1MTA2ODg1MTA3ZS0wMSwgICAyLjIzNTg5MDI5MjI5NzkwMGUtMDEsCisgIC05Ljc0MzM5MzgyNzg1NTc1OWUtMDEsICAgMi4yNTA4MzkxMTM1OTc5MjhlLTAxLAorICAtOS43Mzk5Mjk2MjE2Nzk1NThlLTAxLCAgIDIuMjY1NzgyNjM4NDU2MTAwZS0wMSwKKyAgLTkuNzM2NDQyNDk2NTA4MTIwZS0wMSwgICAyLjI4MDcyMDgzMTcwODg1N2UtMDEsCisgIC05LjczMjkzMjQ2MDU0Njk4MmUtMDEsICAgMi4yOTU2NTM2NTgyMDUxODllLTAxLAorICAtOS43MjkzOTk1MjIwNTU2MDJlLTAxLCAgIDIuMzEwNTgxMDgyODA2NzExZS0wMSwKKyAgLTkuNzI1ODQzNjg5MzQ3MzIyZS0wMSwgICAyLjMyNTUwMzA3MDM4Nzc1MmUtMDEsCisgIC05LjcyMjI2NDk3MDc4OTM2M2UtMDEsICAgMi4zNDA0MTk1ODU4MzU0MzRlLTAxLAorICAtOS43MTg2NjMzNzQ4MDI3OTRlLTAxLCAgIDIuMzU1MzMwNTk0MDQ5NzU1ZS0wMSwKKyAgLTkuNzE1MDM4OTA5ODYyNTE4ZS0wMSwgICAyLjM3MDIzNjA1OTk0MzY3MmUtMDEsCisgIC05LjcxMTM5MTU4NDQ5NzI1MWUtMDEsICAgMi4zODUxMzU5NDg0NDMxODRlLTAxLAorICAtOS43MDc3MjE0MDcyODk1MDRlLTAxLCAgIDIuNDAwMDMwMjI0NDg3NDE1ZS0wMSwKKyAgLTkuNzA0MDI4Mzg2ODc1NTU1ZS0wMSwgICAyLjQxNDkxODg1MzAyODY5M2UtMDEsCisgIC05LjcwMDMxMjUzMTk0NTQ0MGUtMDEsICAgMi40Mjk4MDE3OTkwMzI2MzllLTAxLAorICAtOS42OTY1NzM4NTEyNDI5MjRlLTAxLCAgIDIuNDQ0Njc5MDI3NDc4MjQyZS0wMSwKKyAgLTkuNjkyODEyMzUzNTY1NDg1ZS0wMSwgICAyLjQ1OTU1MDUwMzM1Nzk0NmUtMDEsCisgIC05LjY4OTAyODA0Nzc2NDI4OWUtMDEsICAgMi40NzQ0MTYxOTE2Nzc3MzNlLTAxLAorICAtOS42ODUyMjA5NDI3NDQxNzRlLTAxLCAgIDIuNDg5Mjc2MDU3NDU3MjAxZS0wMSwKKyAgLTkuNjgxMzkxMDQ3NDYzNjI0ZS0wMSwgICAyLjUwNDEzMDA2NTcyOTY1MmUtMDEsCisgIC05LjY3NzUzODM3MDkzNDc1NWUtMDEsICAgMi41MTg5NzgxODE1NDIxNzBlLTAxLAorICAtOS42NzM2NjI5MjIyMjMyODVlLTAxLCAgIDIuNTMzODIwMzY5OTU1NzAyZS0wMSwKKyAgLTkuNjY5NzY0NzEwNDQ4NTIxZS0wMSwgICAyLjU0ODY1NjU5NjA0NTE0NmUtMDEsCisgIC05LjY2NTg0Mzc0NDc4MzMzMWUtMDEsICAgMi41NjM0ODY4MjQ4OTk0MjllLTAxLAorICAtOS42NjE5MDAwMzQ0NTQxMjVlLTAxLCAgIDIuNTc4MzExMDIxNjIxNTkwZS0wMSwKKyAgLTkuNjU3OTMzNTg4NzQwODM3ZS0wMSwgICAyLjU5MzEyOTE1MTMyODg2MmUtMDEsCisgIC05LjY1Mzk0NDQxNjk3Njg5NGUtMDEsICAgMi42MDc5NDExNzkxNTI3NTVlLTAxLAorICAtOS42NDk5MzI1Mjg1NDkyMDNlLTAxLCAgIDIuNjIyNzQ3MDcwMjM5MTM2ZS0wMSwKKyAgLTkuNjQ1ODk3OTMyODk4MTI4ZS0wMSwgICAyLjYzNzU0Njc4OTc0ODMxM2UtMDEsCisgIC05LjY0MTg0MDYzOTUxNzQ1OGUtMDEsICAgMi42NTIzNDAzMDI4NTUxMThlLTAxLAorICAtOS42Mzc3NjA2NTc5NTQzOThlLTAxLCAgIDIuNjY3MTI3NTc0NzQ4OTg0ZS0wMSwKKyAgLTkuNjMzNjU3OTk3ODA5NTQwZS0wMSwgICAyLjY4MTkwODU3MDYzNDAzMmUtMDEsCisgIC05LjYyOTUzMjY2ODczNjgzOWUtMDEsICAgMi42OTY2ODMyNTU3MjkxNTFlLTAxLAorICAtOS42MjUzODQ2ODA0NDM1OTJlLTAxLCAgIDIuNzExNDUxNTk1MjY4MDgwZS0wMSwKKyAgLTkuNjIxMjE0MDQyNjkwNDE2ZS0wMSwgICAyLjcyNjIxMzU1NDQ5OTQ5MGUtMDEsCisgIC05LjYxNzAyMDc2NTI5MTIyNWUtMDEsICAgMi43NDA5NjkwOTg2ODcwNjRlLTAxLAorICAtOS42MTI4MDQ4NTgxMTMyMDZlLTAxLCAgIDIuNzU1NzE4MTkzMTA5NTgxZS0wMSwKKyAgLTkuNjA4NTY2MzMxMDc2Nzk3ZS0wMSwgICAyLjc3MDQ2MDgwMzA2MDk5OWUtMDEsCisgIC05LjYwNDMwNTE5NDE1NTY1OGUtMDEsICAgMi43ODUxOTY4OTM4NTA1MzFlLTAxLAorICAtOS42MDAwMjE0NTczNzY2NjBlLTAxLCAgIDIuNzk5OTI2NDMwODAyNzMyZS0wMSwKKyAgLTkuNTk1NzE1MTMwODE5ODQ1ZS0wMSwgICAyLjgxNDY0OTM3OTI1NzU3OWUtMDEsCisgIC05LjU5MTM4NjIyNDYxODQxOWUtMDEsICAgMi44MjkzNjU3MDQ1NzA1NTRlLTAxLAorICAtOS41ODcwMzQ3NDg5NTg3MTZlLTAxLCAgIDIuODQ0MDc1MzcyMTEyNzE5ZS0wMSwKKyAgLTkuNTgyNjYwNzE0MDgwMTc3ZS0wMSwgICAyLjg1ODc3ODM0NzI3MDgwNmUtMDEsCisgIC05LjU3ODI2NDEzMDI3NTMyOWUtMDEsICAgMi44NzM0NzQ1OTU0NDcyOTVlLTAxLAorICAtOS41NzM4NDUwMDc4ODk3NTllLTAxLCAgIDIuODg4MTY0MDgyMDYwNDk1ZS0wMSwKKyAgLTkuNTY5NDAzMzU3MzIyMDg4ZS0wMSwgICAyLjkwMjg0Njc3MjU0NDYyM2UtMDEsCisgIC05LjU2NDkzOTE4OTAyMzk1MWUtMDEsICAgMi45MTc1MjI2MzIzNDk4OTNlLTAxLAorICAtOS41NjA0NTI1MTM0OTk5NjRlLTAxLCAgIDIuOTMyMTkxNjI2OTQyNTg2ZS0wMSwKKyAgLTkuNTU1OTQzMzQxMzA3NzExZS0wMSwgICAyLjk0Njg1MzcyMTgwNTE0M2UtMDEsCisgIC05LjU1MTQxMTY4MzA1NzcwOGUtMDEsICAgMi45NjE1MDg4ODI0MzYyMzhlLTAxLAorICAtOS41NDY4NTc1NDk0MTMzODNlLTAxLCAgIDIuOTc2MTU3MDc0MzUwODYyZS0wMSwKKyAgLTkuNTQyMjgwOTUxMDkxMDU3ZS0wMSwgICAyLjk5MDc5ODI2MzA4MDQwNWUtMDEsCisgIC05LjUzNzY4MTg5ODg1OTkwM2UtMDEsICAgMy4wMDU0MzI0MTQxNzI3MzVlLTAxLAorICAtOS41MzMwNjA0MDM1NDE5MzllLTAxLCAgIDMuMDIwMDU5NDkzMTkyMjgxZS0wMSwKKyAgLTkuNTI4NDE2NDc2MDExOTg3ZS0wMSwgICAzLjAzNDY3OTQ2NTcyMDExM2UtMDEsCisgIC05LjUyMzc1MDEyNzE5NzY1OWUtMDEsICAgMy4wNDkyOTIyOTczNTQwMjRlLTAxLAorICAtOS41MTkwNjEzNjgwNzkzMjNlLTAxLCAgIDMuMDYzODk3OTUzNzA4NjA5ZS0wMSwKKyAgLTkuNTE0MzUwMjA5NjkwMDgzZS0wMSwgICAzLjA3ODQ5NjQwMDQxNTM0OWUtMDEsCisgIC05LjUwOTYxNjY2MzExNTc1MWUtMDEsICAgMy4wOTMwODc2MDMxMjI2ODdlLTAxLAorICAtOS41MDQ4NjA3Mzk0OTQ4MTdlLTAxLCAgIDMuMTA3NjcxNTI3NDk2MTE1ZS0wMSwKKyAgLTkuNTAwMDgyNDUwMDE4NDMwZS0wMSwgICAzLjEyMjI0ODEzOTIxODI0OWUtMDEsCisgIC05LjQ5NTI4MTgwNTkzMDM2N2UtMDEsICAgMy4xMzY4MTc0MDM5ODg5MTVlLTAxLAorICAtOS40OTA0NTg4MTg1MjcwMDZlLTAxLCAgIDMuMTUxMzc5Mjg3NTI1MjI0ZS0wMSwKKyAgLTkuNDg1NjEzNDk5MTU3MzAzZS0wMSwgICAzLjE2NTkzMzc1NTU2MTY1OGUtMDEsCisgIC05LjQ4MDc0NTg1OTIyMjc2MmUtMDEsICAgMy4xODA0ODA3NzM4NTAxNDllLTAxLAorICAtOS40NzU4NTU5MTAxNzc0MTFlLTAxLCAgIDMuMTk1MDIwMzA4MTYwMTU3ZS0wMSwKKyAgLTkuNDcwOTQzNjYzNTI3NzcyZS0wMSwgICAzLjIwOTU1MjMyNDI3ODc1MmUtMDEsCisgIC05LjQ2NjAwOTEzMDgzMjgzNWUtMDEsICAgMy4yMjQwNzY3ODgwMTA2OTllLTAxLAorICAtOS40NjEwNTIzMjM3MDQwMzRlLTAxLCAgIDMuMjM4NTkzNjY1MTc4NTI5ZS0wMSwKKyAgLTkuNDU2MDczMjUzODA1MjEzZS0wMSwgICAzLjI1MzEwMjkyMTYyMjYyOWUtMDEsCisgIC05LjQ1MTA3MTkzMjg1MjYwNmUtMDEsICAgMy4yNjc2MDQ1MjMyMDEzMTdlLTAxLAorICAtOS40NDYwNDgzNzI2MTQ4MDNlLTAxLCAgIDMuMjgyMDk4NDM1NzkwOTI1ZS0wMSwKKyAgLTkuNDQxMDAyNTg0OTEyNzI3ZS0wMSwgICAzLjI5NjU4NDYyNTI4NTg3NWUtMDEsCisgIC05LjQzNTkzNDU4MTYxOTYwNGUtMDEsICAgMy4zMTEwNjMwNTc1OTg3NjRlLTAxLAorICAtOS40MzA4NDQzNzQ2NjA5MzVlLTAxLCAgIDMuMzI1NTMzNjk4NjYwNDQyZS0wMSwKKyAgLTkuNDI1NzMxOTc2MDE0NDY5ZS0wMSwgICAzLjMzOTk5NjUxNDQyMDA5NGUtMDEsCisgIC05LjQyMDU5NzM5NzcxMDE3M2UtMDEsICAgMy4zNTQ0NTE0NzA4NDUzMTZlLTAxLAorICAtOS40MTU0NDA2NTE4MzAyMDhlLTAxLCAgIDMuMzY4ODk4NTMzOTIyMjAxZS0wMSwKKyAgLTkuNDEwMjYxNzUwNTA4ODkzZS0wMSwgICAzLjM4MzMzNzY2OTY1NTQxMWUtMDEsCisgIC05LjQwNTA2MDcwNTkzMjY4M2UtMDEsICAgMy4zOTc3Njg4NDQwNjgyNjllLTAxLAorICAtOS4zOTk4Mzc1MzAzNDAxNDBlLTAxLCAgIDMuNDEyMTkyMDIzMjAyODI0ZS0wMSwKKyAgLTkuMzk0NTkyMjM2MDIxODk5ZS0wMSwgICAzLjQyNjYwNzE3MzExOTk0NGUtMDEsCisgIC05LjM4OTMyNDgzNTMyMDY0NmUtMDEsICAgMy40NDEwMTQyNTk4OTkzODhlLTAxLAorICAtOS4zODQwMzUzNDA2MzEwODFlLTAxLCAgIDMuNDU1NDEzMjQ5NjM5ODkxZS0wMSwKKyAgLTkuMzc4NzIzNzY0Mzk5ODk5ZS0wMSwgICAzLjQ2OTgwNDEwODQ1OTIzN2UtMDEsCisgIC05LjM3MzM5MDExOTEyNTc1MGUtMDEsICAgMy40ODQxODY4MDI0OTQzNDZlLTAxLAorICAtOS4zNjgwMzQ0MTczNTkyMTZlLTAxLCAgIDMuNDk4NTYxMjk3OTAxMzQ5ZS0wMSwKKyAgLTkuMzYyNjU2NjcxNzAyNzgzZS0wMSwgICAzLjUxMjkyNzU2MDg1NTY3MWUtMDEsCisgIC05LjM1NzI1Njg5NDgxMDgwNGUtMDEsICAgMy41MjcyODU1NTc1NTIxMDdlLTAxLAorICAtOS4zNTE4MzUwOTkzODk0NzZlLTAxLCAgIDMuNTQxNjM1MjU0MjA0OTAzZS0wMSwKKyAgLTkuMzQ2MzkxMjk4MTk2ODA4ZS0wMSwgICAzLjU1NTk3NjYxNzA0NzgzOWUtMDEsCisgIC05LjM0MDkyNTUwNDA0MjU5MGUtMDEsICAgMy41NzAzMDk2MTIzMzQzMDBlLTAxLAorICAtOS4zMzU0Mzc3Mjk3ODgzNjJlLTAxLCAgIDMuNTg0NjM0MjA2MzM3MzY1ZS0wMSwKKyAgLTkuMzI5OTI3OTg4MzQ3MzkwZS0wMSwgICAzLjU5ODk1MDM2NTM0OTg4MWUtMDEsCisgIC05LjMyNDM5NjI5MjY4NDYyNGUtMDEsICAgMy42MTMyNTgwNTU2ODQ1NDNlLTAxLAorICAtOS4zMTg4NDI2NTU4MTY2ODFlLTAxLCAgIDMuNjI3NTU3MjQzNjczOTcyZS0wMSwKKyAgLTkuMzEzMjY3MDkwODExODA0ZS0wMSwgICAzLjY0MTg0Nzg5NTY3MDc5OWUtMDEsCisgIC05LjMwNzY2OTYxMDc4OTgzN2UtMDEsICAgMy42NTYxMjk5NzgwNDc3MzllLTAxLAorICAtOS4zMDIwNTAyMjg5MjIxOTFlLTAxLCAgIDMuNjcwNDAzNDU3MTk3NjcyZS0wMSwKKyAgLTkuMjk2NDA4OTU4NDMxODEzZS0wMSwgICAzLjY4NDY2ODI5OTUzMzcyM2UtMDEsCisgIC05LjI5MDc0NTgxMjU5MzE1OWUtMDEsICAgMy42OTg5MjQ0NzE0ODkzNDFlLTAxLAorICAtOS4yODUwNjA4MDQ3MzIxNTZlLTAxLCAgIDMuNzEzMTcxOTM5NTE4Mzc1ZS0wMSwKKyAgLTkuMjc5MzUzOTQ4MjI2MTc5ZS0wMSwgICAzLjcyNzQxMDY3MDA5NTE1OGUtMDEsCisgIC05LjI3MzYyNTI1NjUwNDAxMWUtMDEsICAgMy43NDE2NDA2Mjk3MTQ1NzllLTAxLAorICAtOS4yNjc4NzQ3NDMwNDU4MTdlLTAxLCAgIDMuNzU1ODYxNzg0ODkyMTcyZS0wMSwKKyAgLTkuMjYyMTAyNDIxMzgzMTE0ZS0wMSwgICAzLjc3MDA3NDEwMjE2NDE4M2UtMDEsCisgIC05LjI1NjMwODMwNTA5ODcyN2UtMDEsICAgMy43ODQyNzc1NDgwODc2NTZlLTAxLAorICAtOS4yNTA0OTI0MDc4MjY3NzZlLTAxLCAgIDMuNzk4NDcyMDg5MjQwNTEyZS0wMSwKKyAgLTkuMjQ0NjU0NzQzMjUyNjI2ZS0wMSwgICAzLjgxMjY1NzY5MjIyMTYyNGUtMDEsCisgIC05LjIzODc5NTMyNTExMjg2N2UtMDEsICAgMy44MjY4MzQzMjM2NTA4OThlLTAxLAorICAtOS4yMzI5MTQxNjcxOTUyNzZlLTAxLCAgIDMuODQxMDAxOTUwMTY5MzUwZS0wMSwKKyAgLTkuMjI3MDExMjgzMzM4Nzg2ZS0wMSwgICAzLjg1NTE2MDUzODQzOTE4OGUtMDEsCisgIC05LjIyMTA4NjY4NzQzMzQ1MmUtMDEsICAgMy44NjkzMTAwNTUxNDM4ODZlLTAxLAorICAtOS4yMTUxNDAzOTM0MjA0MjBlLTAxLCAgIDMuODgzNDUwNDY2OTg4MjYyZS0wMSwKKyAgLTkuMjA5MTcyNDE1MjkxODk1ZS0wMSwgICAzLjg5NzU4MTc0MDY5ODU2NGUtMDEsCisgIC05LjIwMzE4Mjc2NzA5MTEwNmUtMDEsICAgMy45MTE3MDM4NDMwMjI1MzllLTAxLAorICAtOS4xOTcxNzE0NjI5MTIyNzRlLTAxLCAgIDMuOTI1ODE2NzQwNzI5NTE1ZS0wMSwKKyAgLTkuMTkxMTM4NTE2OTAwNTc4ZS0wMSwgICAzLjkzOTkyMDQwMDYxMDQ4MWUtMDEsCisgIC05LjE4NTA4Mzk0MzI1MjEyM2UtMDEsICAgMy45NTQwMTQ3ODk0NzgxNjRlLTAxLAorICAtOS4xNzkwMDc3NTYyMTM5MDVlLTAxLCAgIDMuOTY4MDk5ODc0MTY3MTAzZS0wMSwKKyAgLTkuMTcyOTA5OTcwMDgzNzc5ZS0wMSwgICAzLjk4MjE3NTYyMTUzMzczNmUtMDEsCisgIC05LjE2Njc5MDU5OTIxMDQyN2UtMDEsICAgMy45OTYyNDE5OTg0NTY0NjhlLTAxLAorICAtOS4xNjA2NDk2NTc5OTMzMTdlLTAxLCAgIDQuMDEwMjk4OTcxODM1NzU2ZS0wMSwKKyAgLTkuMTU0NDg3MTYwODgyNjc4ZS0wMSwgICA0LjAyNDM0NjUwODU5NDE4NGUtMDEsCisgIC05LjE0ODMwMzEyMjM3OTQ2MmUtMDEsICAgNC4wMzgzODQ1NzU2NzY1NDFlLTAxLAorICAtOS4xNDIwOTc1NTcwMzUzMDdlLTAxLCAgIDQuMDUyNDEzMTQwMDQ5ODk5ZS0wMSwKKyAgLTkuMTM1ODcwNDc5NDUyNTA4ZS0wMSwgICA0LjA2NjQzMjE2ODcwMzY5MGUtMDEsCisgIC05LjEyOTYyMTkwNDI4Mzk4MmUtMDEsICAgNC4wODA0NDE2Mjg2NDk3ODdlLTAxLAorICAtOS4xMjMzNTE4NDYyMzMyMjdlLTAxLCAgIDQuMDk0NDQxNDg2OTIyNTc2ZS0wMSwKKyAgLTkuMTE3MDYwMzIwMDU0Mjk5ZS0wMSwgICA0LjEwODQzMTcxMDU3OTAzOWUtMDEsCisgIC05LjExMDc0NzM0MDU1MTc2NGUtMDEsICAgNC4xMjI0MTIyNjY2OTg4MjllLTAxLAorICAtOS4xMDQ0MTI5MjI1ODA2NzJlLTAxLCAgIDQuMTM2MzgzMTIyMzg0MzQ1ZS0wMSwKKyAgLTkuMDk4MDU3MDgxMDQ2NTIyZS0wMSwgICA0LjE1MDM0NDI0NDc2MDgxNmUtMDEsCisgIC05LjA5MTY3OTgzMDkwNTIyNGUtMDEsICAgNC4xNjQyOTU2MDA5NzYzNzJlLTAxLAorICAtOS4wODUyODExODcxNjMwNjFlLTAxLCAgIDQuMTc4MjM3MTU4MjAyMTIzZS0wMSwKKyAgLTkuMDc4ODYxMTY0ODc2NjYzZS0wMSwgICA0LjE5MjE2ODg4MzYzMjIzOWUtMDEsCisgIC05LjA3MjQxOTc3OTE1Mjk1OGUtMDEsICAgNC4yMDYwOTA3NDQ0ODQwMjVlLTAxLAorICAtOS4wNjU5NTcwNDUxNDkxNTNlLTAxLCAgIDQuMjIwMDAyNzA3OTk3OTk3ZS0wMSwKKyAgLTkuMDU5NDcyOTc4MDcyNjg1ZS0wMSwgICA0LjIzMzkwNDc0MTQzNzk2MGUtMDEsCisgIC05LjA1Mjk2NzU5MzE4MTE4OGUtMDEsICAgNC4yNDc3OTY4MTIwOTEwODhlLTAxLAorICAtOS4wNDY0NDA5MDU3ODI0NjJlLTAxLCAgIDQuMjYxNjc4ODg3MjY3OTk2ZS0wMSwKKyAgLTkuMDM5ODkyOTMxMjM0NDMzZS0wMSwgICA0LjI3NTU1MDkzNDMwMjgyMWUtMDEsCisgIC05LjAzMzMyMzY4NDk0NTExOGUtMDEsICAgNC4yODk0MTI5MjA1NTMyOTVlLTAxLAorICAtOS4wMjY3MzMxODIzNzI1ODhlLTAxLCAgIDQuMzAzMjY0ODEzNDAwODI2ZS0wMSwKKyAgLTkuMDIwMTIxNDM5MDI0OTMyZS0wMSwgICA0LjMxNzEwNjU4MDI1MDU3M2UtMDEsCisgIC05LjAxMzQ4ODQ3MDQ2MDIyMGUtMDEsICAgNC4zMzA5MzgxODg1MzE1MjBlLTAxLAorICAtOS4wMDY4MzQyOTIyODY0NzBlLTAxLCAgIDQuMzQ0NzU5NjA1Njk2NTU3ZS0wMSwKKyAgLTkuMDAwMTU4OTIwMTYxNjAzZS0wMSwgICA0LjM1ODU3MDc5OTIyMjU1NWUtMDEsCisgIC04Ljk5MzQ2MjM2OTc5MzQxNmUtMDEsICAgNC4zNzIzNzE3MzY2MTA0NDFlLTAxLAorICAtOC45ODY3NDQ2NTY5Mzk1MzhlLTAxLCAgIDQuMzg2MTYyMzg1Mzg1Mjc3ZS0wMSwKKyAgLTguOTgwMDA1Nzk3NDA3Mzk5ZS0wMSwgICA0LjM5OTk0MjcxMzA5NjMzM2UtMDEsCisgIC04Ljk3MzI0NTgwNzA1NDE4M2UtMDEsICAgNC40MTM3MTI2ODczMTcxNjdlLTAxLAorICAtOC45NjY0NjQ3MDE3ODY4MDJlLTAxLCAgIDQuNDI3NDcyMjc1NjQ1NzAwZS0wMSwKKyAgLTguOTU5NjYyNDk3NTYxODUyZS0wMSwgICA0LjQ0MTIyMTQ0NTcwNDI5MmUtMDEsCisgIC04Ljk1MjgzOTIxMDM4NTU3NmUtMDEsICAgNC40NTQ5NjAxNjUxMzk4MTdlLTAxLAorICAtOC45NDU5OTQ4NTYzMTM4MjdlLTAxLCAgIDQuNDY4Njg4NDAxNjIzNzQyZS0wMSwKKyAgLTguOTM5MTI5NDUxNDUyMDMzZS0wMSwgICA0LjQ4MjQwNjEyMjg1MjE5OWUtMDEsCisgIC04LjkzMjI0MzAxMTk1NTE1M2UtMDEsICAgNC40OTYxMTMyOTY1NDYwNjVlLTAxLAorICAtOC45MjUzMzU1NTQwMjc2NDZlLTAxLCAgIDQuNTA5ODA5ODkwNDUxMDM5ZS0wMSwKKyAgLTguOTE4NDA3MDkzOTIzNDI3ZS0wMSwgICA0LjUyMzQ5NTg3MjMzNzcwOWUtMDEsCisgIC04LjkxMTQ1NzY0Nzk0NTgzMmUtMDEsICAgNC41MzcxNzEyMTAwMDE2MzllLTAxLAorICAtOC45MDQ0ODcyMzI0NDc1NzllLTAxLCAgIDQuNTUwODM1ODcxMjYzNDM4ZS0wMSwKKyAgLTguODk3NDk1ODYzODMwNzI4ZS0wMSwgICA0LjU2NDQ4OTgyMzk2ODgzOWUtMDEsCisgIC04Ljg5MDQ4MzU1ODU0NjY0NmUtMDEsICAgNC41NzgxMzMwMzU5ODg3NzJlLTAxLAorICAtOC44ODM0NTAzMzMwOTU5NjRlLTAxLCAgIDQuNTkxNzY1NDc1MjE5NDQxZS0wMSwKKyAgLTguODc2Mzk2MjA0MDI4NTM5ZS0wMSwgICA0LjYwNTM4NzEwOTU4MjQwMGUtMDEsCisgIC04Ljg2OTMyMTE4Nzk0MzQyMmUtMDEsICAgNC42MTg5OTc5MDcwMjQ2MjdlLTAxLAorICAtOC44NjIyMjUzMDE0ODg4MDZlLTAxLCAgIDQuNjMyNTk3ODM1NTE4NjAxZS0wMSwKKyAgLTguODU1MTA4NTYxMzYyMDAwZS0wMSwgICA0LjY0NjE4Njg2MzA2MjM3OGUtMDEsCisgIC04Ljg0Nzk3MDk4NDMwOTM3OGUtMDEsICAgNC42NTk3NjQ5NTc2Nzk2NjJlLTAxLAorICAtOC44NDA4MTI1ODcxMjYzNTBlLTAxLCAgIDQuNjczMzMyMDg3NDE5ODg0ZS0wMSwKKyAgLTguODMzNjMzMzg2NjU3MzE2ZS0wMSwgICA0LjY4Njg4ODIyMDM1ODI3OWUtMDEsCisgIC04LjgyNjQzMzM5OTc5NTYyOGUtMDEsICAgNC43MDA0MzMzMjQ1OTU5NTZlLTAxLAorICAtOC44MTkyMTI2NDM0ODM1NTBlLTAxLCAgIDQuNzEzOTY3MzY4MjU5OTc2ZS0wMSwKKyAgLTguODExOTcxMTM0NzEyMjIxZS0wMSwgICA0LjcyNzQ5MDMxOTUwMzQyOGUtMDEsCisgIC04LjgwNDcwODg5MDUyMTYwOGUtMDEsICAgNC43NDEwMDIxNDY1MDU1MDBlLTAxLAorICAtOC43OTc0MjU5MjgwMDA0NzRlLTAxLCAgIDQuNzU0NTAyODE3NDcxNTU5ZS0wMSwKKyAgLTguNzkwMTIyMjY0Mjg2MzM1ZS0wMSwgICA0Ljc2Nzk5MjMwMDYzMzIyMWUtMDEsCisgIC04Ljc4Mjc5NzkxNjU2NTQxNmUtMDEsICAgNC43ODE0NzA1NjQyNDg0MzBlLTAxLAorICAtOC43NzU0NTI5MDIwNzI2MTRlLTAxLCAgIDQuNzk0OTM3NTc2NjAxNTMwZS0wMSwKKyAgLTguNzY4MDg3MjM4MDkxNDU3ZS0wMSwgICA0LjgwODM5MzMwNjAwMzM0MGUtMDEsCisgIC04Ljc2MDcwMDk0MTk1NDA2NmUtMDEsICAgNC44MjE4Mzc3MjA3OTEyMjdlLTAxLAorICAtOC43NTMyOTQwMzEwNDExMDllLTAxLCAgIDQuODM1MjcwNzg5MzI5MTg3ZS0wMSwKKyAgLTguNzQ1ODY2NTIyNzgxNzYxZS0wMSwgICA0Ljg0ODY5MjQ4MDAwNzkxMWUtMDEsCisgIC04LjczODQxODQzNDY1MzY2OWUtMDEsICAgNC44NjIxMDI3NjEyNDQ4NjRlLTAxLAorICAtOC43MzA5NDk3ODQxODI5MDFlLTAxLCAgIDQuODc1NTAxNjAxNDg0MzYwZS0wMSwKKyAgLTguNzIzNDYwNTg4OTQzOTE1ZS0wMSwgICA0Ljg4ODg4ODk2OTE5NzYzMmUtMDEsCisgIC04LjcxNTk1MDg2NjU1OTUxMGUtMDEsICAgNC45MDIyNjQ4MzI4ODI5MTJlLTAxLAorICAtOC43MDg0MjA2MzQ3MDA3OTBlLTAxLCAgIDQuOTE1NjI5MTYxMDY1NDk5ZS0wMSwKKyAgLTguNzAwODY5OTExMDg3MTE1ZS0wMSwgICA0LjkyODk4MTkyMjI5Nzg0MGUtMDEsCisgIC04LjY5MzI5ODcxMzQ4NjA2OGUtMDEsICAgNC45NDIzMjMwODUxNTk1OTdlLTAxLAorICAtOC42ODU3MDcwNTk3MTM0MDllLTAxLCAgIDQuOTU1NjUyNjE4MjU3NzI1ZS0wMSwKKyAgLTguNjc4MDk0OTY3NjMzMDMzZS0wMSwgICA0Ljk2ODk3MDQ5MDIyNjU0NWUtMDEsCisgIC04LjY3MDQ2MjQ1NTE1NjkyNmUtMDEsICAgNC45ODIyNzY2Njk3Mjc4MTllLTAxLAorICAtOC42NjI4MDk1NDAyNDUxMzBlLTAxLCAgIDQuOTk1NTcxMTI1NDUwODE4ZS0wMSwKKyAgLTguNjU1MTM2MjQwOTA1NjkxZS0wMSwgICA1LjAwODg1MzgyNjExMjQwN2UtMDEsCisgIC04LjY0NzQ0MjU3NTE5NDYyNGUtMDEsICAgNS4wMjIxMjQ3NDA0NTcxMDhlLTAxLAorICAtOC42Mzk3Mjg1NjEyMTU4NjhlLTAxLCAgIDUuMDM1MzgzODM3MjU3MTc2ZS0wMSwKKyAgLTguNjMxOTk0MjE3MTIxMjQyZS0wMSwgICA1LjA0ODYzMTA4NTMxMjY3NmUtMDEsCisgIC04LjYyNDIzOTU2MTExMDQwNmUtMDEsICAgNS4wNjE4NjY0NTM0NTE1NTJlLTAxLAorICAtOC42MTY0NjQ2MTE0MzA4MTNlLTAxLCAgIDUuMDc1MDg5OTEwNTI5NzA5ZS0wMSwKKyAgLTguNjA4NjY5Mzg2Mzc3NjczZS0wMSwgICA1LjA4ODMwMTQyNTQzMTA3MGUtMDEsCisgIC04LjYwMDg1MzkwNDI5MzkwMWUtMDEsICAgNS4xMDE1MDA5NjcwNjc2NjhlLTAxLAorICAtOC41OTMwMTgxODM1NzAwODVlLTAxLCAgIDUuMTE0Njg4NTA0Mzc5NzAzZS0wMSwKKyAgLTguNTg1MTYyMjQyNjQ0NDI3ZS0wMSwgICA1LjEyNzg2NDAwNjMzNTYzMGUtMDEsCisgIC04LjU3NzI4NjEwMDAwMjcyMWUtMDEsICAgNS4xNDEwMjc0NDE5MzIyMTdlLTAxLAorICAtOC41NjkzODk3NzQxNzgyODhlLTAxLCAgIDUuMTU0MTc4NzgwMTk0NjI5ZS0wMSwKKyAgLTguNTYxNDczMjgzNzUxOTQ1ZS0wMSwgICA1LjE2NzMxNzk5MDE3NjQ5OWUtMDEsCisgIC04LjU1MzUzNjY0NzM1MTk2MGUtMDEsICAgNS4xODA0NDUwNDA5NTk5OTNlLTAxLAorICAtOC41NDU1Nzk4ODM2NTQwMDVlLTAxLCAgIDUuMTkzNTU5OTAxNjU1ODk2ZS0wMSwKKyAgLTguNTM3NjAzMDExMzgxMTE0ZS0wMSwgICA1LjIwNjY2MjU0MTQwMzY3MmUtMDEsCisgIC04LjUyOTYwNjA0OTMwMzYzNmUtMDEsICAgNS4yMTk3NTI5MjkzNzE1NDRlLTAxLAorICAtOC41MjE1ODkwMTYyMzkxOThlLTAxLCAgIDUuMjMyODMxMDM0NzU2NTY0ZS0wMSwKKyAgLTguNTEzNTUxOTMxMDUyNjUyZS0wMSwgICA1LjI0NTg5NjgyNjc4NDY5MGUtMDEsCisgIC04LjUwNTQ5NDgxMjY1NjAzNWUtMDEsICAgNS4yNTg5NTAyNzQ3MTA4NDZlLTAxLAorICAtOC40OTc0MTc2ODAwMDg1MjVlLTAxLCAgIDUuMjcxOTkxMzQ3ODE5MDEzZS0wMSwKKyAgLTguNDg5MzIwNTUyMTE2Mzk2ZS0wMSwgICA1LjI4NTAyMDAxNTQyMjI4NWUtMDEsCisgIC04LjQ4MTIwMzQ0ODAzMjk3MmUtMDEsICAgNS4yOTgwMzYyNDY4NjI5NDZlLTAxLAorICAtOC40NzMwNjYzODY4NTg1ODNlLTAxLCAgIDUuMzExMDQwMDExNTEyNTUwZS0wMSwKKyAgLTguNDY0OTA5Mzg3NzQwNTIxZS0wMSwgICA1LjMyNDAzMTI3ODc3MTk3OWUtMDEsCisgIC04LjQ1NjczMjQ2OTg3Mjk5MWUtMDEsICAgNS4zMzcwMTAwMTgwNzE1MzBlLTAxLAorICAtOC40NDg1MzU2NTI0OTcwNzFlLTAxLCAgIDUuMzQ5OTc2MTk4ODcwOTcyZS0wMSwKKyAgLTguNDQwMzE4OTU0OTAwNjY0ZS0wMSwgICA1LjM2MjkyOTc5MDY1OTYzMmUtMDEsCisgIC04LjQzMjA4MjM5NjQxODQ1NGUtMDEsICAgNS4zNzU4NzA3NjI5NTY0NTRlLTAxLAorICAtOC40MjM4MjU5OTY0MzE4NThlLTAxLCAgIDUuMzg4Nzk5MDg1MzEwMDg0ZS0wMSwKKyAgLTguNDE1NTQ5Nzc0MzY4OTg0ZS0wMSwgICA1LjQwMTcxNDcyNzI5ODkyOWUtMDEsCisgIC04LjQwNzI1Mzc0OTcwNDU4MWUtMDEsICAgNS40MTQ2MTc2NTg1MzEyMzRlLTAxLAorICAtOC4zOTg5Mzc5NDE5NTk5OTVlLTAxLCAgIDUuNDI3NTA3ODQ4NjQ1MTU5ZS0wMSwKKyAgLTguMzkwNjAyMzcwNzAzMTI3ZS0wMSwgICA1LjQ0MDM4NTI2NzMwODgzOGUtMDEsCisgIC04LjM4MjI0NzA1NTU0ODM4MWUtMDEsICAgNS40NTMyNDk4ODQyMjA0NjVlLTAxLAorICAtOC4zNzM4NzIwMTYxNTY2MTllLTAxLCAgIDUuNDY2MTAxNjY5MTA4MzQ5ZS0wMSwKKyAgLTguMzY1NDc3MjcyMjM1MTIwZS0wMSwgICA1LjQ3ODk0MDU5MTczMTAwMmUtMDEsCisgIC04LjM1NzA2Mjg0MzUzNzUyNmUtMDEsICAgNS40OTE3NjY2MjE4NzcxOTdlLTAxLAorICAtOC4zNDg2Mjg3NDk4NjM4MDBlLTAxLCAgIDUuNTA0NTc5NzI5MzY2MDQ4ZS0wMSwKKyAgLTguMzQwMTc1MDExMDYwMTgxZS0wMSwgICA1LjUxNzM3OTg4NDA0NzA3M2UtMDEsCisgIC04LjMzMTcwMTY0NzAxOTEzMmUtMDEsICAgNS41MzAxNjcwNTU4MDAyNzVlLTAxLAorICAtOC4zMjMyMDg2Nzc2NzkyOTdlLTAxLCAgIDUuNTQyOTQxMjE0NTM2MjAwZS0wMSwKKyAgLTguMzE0Njk2MTIzMDI1NDUyZS0wMSwgICA1LjU1NTcwMjMzMDE5NjAyMmUtMDEsCisgIC04LjMwNjE2NDAwMzA4ODQ2M2UtMDEsICAgNS41Njg0NTAzNzI3NTE2MDFlLTAxLAorICAtOC4yOTc2MTIzMzc5NDUyMzBlLTAxLCAgIDUuNTgxMTg1MzEyMjA1NTYxZS0wMSwKKyAgLTguMjg5MDQxMTQ3NzE4NjQ5ZS0wMSwgICA1LjU5MzkwNzExODU5MTM2MWUtMDEsCisgIC04LjI4MDQ1MDQ1MjU3NzU1OGUtMDEsICAgNS42MDY2MTU3NjE5NzMzNjBlLTAxLAorICAtOC4yNzE4NDAyNzI3MzY2OTFlLTAxLCAgIDUuNjE5MzExMjEyNDQ2ODk1ZS0wMSwKKyAgLTguMjYzMjEwNjI4NDU2NjM1ZS0wMSwgICA1LjYzMTk5MzQ0MDEzODM0MWUtMDEsCisgIC04LjI1NDU2MTU0MDA0Mzc3NmUtMDEsICAgNS42NDQ2NjI0MTUyMDUxOTVlLTAxLAorICAtOC4yNDU4OTMwMjc4NTAyNTNlLTAxLCAgIDUuNjU3MzE4MTA3ODM2MTMxZS0wMSwKKyAgLTguMjM3MjA1MTEyMjczOTE0ZS0wMSwgICA1LjY2OTk2MDQ4ODI1MTA4N2UtMDEsCisgIC04LjIyODQ5NzgxMzc1ODI2NGUtMDEsICAgNS42ODI1ODk1MjY3MDEzMTVlLTAxLAorICAtOC4yMTk3NzExNTI3OTI0MTZlLTAxLCAgIDUuNjk1MjA1MTkzNDY5NDcxZS0wMSwKKyAgLTguMjExMDI1MTQ5OTExMDQ2ZS0wMSwgICA1LjcwNzgwNzQ1ODg2OTY3M2UtMDEsCisgIC04LjIwMjI1OTgyNTY5NDM0N2UtMDEsICAgNS43MjAzOTYyOTMyNDc1NzBlLTAxLAorICAtOC4xOTM0NzUyMDA3Njc5NjllLTAxLCAgIDUuNzMyOTcxNjY2OTgwNDIyZS0wMSwKKyAgLTguMTg0NjcxMjk1ODAyOTg3ZS0wMSwgICA1Ljc0NTUzMzU1MDQ3NzE1OGUtMDEsCisgIC04LjE3NTg0ODEzMTUxNTgzN2UtMDEsICAgNS43NTgwODE5MTQxNzg0NTNlLTAxLAorICAtOC4xNjcwMDU3Mjg2NjgyNzhlLTAxLCAgIDUuNzcwNjE2NzI4NTU2Nzk0ZS0wMSwKKyAgLTguMTU4MTQ0MTA4MDY3MzM4ZS0wMSwgICA1Ljc4MzEzNzk2NDExNjU1NmUtMDEsCisgIC04LjE0OTI2MzI5MDU2NTI2NmUtMDEsICAgNS43OTU2NDU1OTEzOTQwNTZlLTAxLAorICAtOC4xNDAzNjMyOTcwNTk0ODRlLTAxLCAgIDUuODA4MTM5NTgwOTU3NjQ1ZS0wMSwKKyAgLTguMTMxNDQ0MTQ4NDkyNTM2ZS0wMSwgICA1LjgyMDYxOTkwMzQwNzc1NGUtMDEsCisgIC04LjEyMjUwNTg2NTg1MjAzOWUtMDEsICAgNS44MzMwODY1MjkzNzY5ODNlLTAxLAorICAtOC4xMTM1NDg0NzAxNzA2MzdlLTAxLCAgIDUuODQ1NTM5NDI5NTMwMTUzZS0wMSwKKyAgLTguMTA0NTcxOTgyNTI1OTQ4ZS0wMSwgICA1Ljg1Nzk3ODU3NDU2NDM4OWUtMDEsCisgIC04LjA5NTU3NjQyNDA0MDUxM2UtMDEsICAgNS44NzA0MDM5MzUyMDkxODBlLTAxLAorICAtOC4wODY1NjE4MTU4ODE3NTBlLTAxLCAgIDUuODgyODE1NDgyMjI2NDUyZS0wMSwKKyAgLTguMDc3NTI4MTc5MjYxOTA0ZS0wMSwgICA1Ljg5NTIxMzE4NjQxMDYzOWUtMDEsCisgIC04LjA2ODQ3NTUzNTQzNzk5M2UtMDEsICAgNS45MDc1OTcwMTg1ODg3NDJlLTAxLAorICAtOC4wNTk0MDM5MDU3MTE3NjNlLTAxLCAgIDUuOTE5OTY2OTQ5NjIwNDEwZS0wMSwKKyAgLTguMDUwMzEzMzExNDI5NjM3ZS0wMSwgICA1LjkzMjMyMjk1MDM5Nzk5OGUtMDEsCisgIC04LjA0MTIwMzc3Mzk4MjY1OGUtMDEsICAgNS45NDQ2NjQ5OTE4NDY2NDRlLTAxLAorICAtOC4wMzIwNzUzMTQ4MDY0NDllLTAxLCAgIDUuOTU2OTkzMDQ0OTI0MzM0ZS0wMSwKKyAgLTguMDIyOTI3OTU1MzgxMTU3ZS0wMSwgICA1Ljk2OTMwNzA4MDYyMTk2NWUtMDEsCisgIC04LjAxMzc2MTcxNzIzMTQwMmUtMDEsICAgNS45ODE2MDcwNjk5NjM0MjNlLTAxLAorICAtOC4wMDQ1NzY2MjE5MjYyMjhlLTAxLCAgIDUuOTkzODkyOTg0MDA1NjQ1ZS0wMSwKKyAgLTcuOTk1MzcyNjkxMDc5MDUwZS0wMSwgICA2LjAwNjE2NDc5MzgzODY5MGUtMDEsCisgIC03Ljk4NjE0OTk0NjM0NzYwOGUtMDEsICAgNi4wMTg0MjI0NzA1ODU4MDBlLTAxLAorICAtNy45NzY5MDg0MDk0MzM5MTJlLTAxLCAgIDYuMDMwNjY1OTg1NDAzNDgyZS0wMSwKKyAgLTcuOTY3NjQ4MTAyMDg0MTg4ZS0wMSwgICA2LjA0Mjg5NTMwOTQ4MTU2MGUtMDEsCisgIC03Ljk1ODM2OTA0NjA4ODgzNmUtMDEsICAgNi4wNTUxMTA0MTQwNDMyNTVlLTAxLAorICAtNy45NDkwNzEyNjMyODIzNzBlLTAxLCAgIDYuMDY3MzExMjcwMzQ1MjQ1ZS0wMSwKKyAgLTcuOTM5NzU0Nzc1NTQzMzcyZS0wMSwgICA2LjA3OTQ5Nzg0OTY3NzczNmUtMDEsCisgIC03LjkzMDQxOTYwNDc5NDQzNmUtMDEsICAgNi4wOTE2NzAxMjMzNjQ1MzJlLTAxLAorICAtNy45MjEwNjU3NzMwMDIxMjRlLTAxLCAgIDYuMTAzODI4MDYyNzYzMDk1ZS0wMSwKKyAgLTcuOTExNjkzMzAyMTc2OTAyZS0wMSwgICA2LjExNTk3MTYzOTI2NDYxOWUtMDEsCisgIC03LjkwMjMwMjIxNDM3MzEwMGUtMDEsICAgNi4xMjgxMDA4MjQyOTQwOTdlLTAxLAorICAtNy44OTI4OTI1MzE2ODg4NTdlLTAxLCAgIDYuMTQwMjE1NTg5MzEwMzg0ZS0wMSwKKyAgLTcuODgzNDY0Mjc2MjY2MDYzZS0wMSwgICA2LjE1MjMxNTkwNTgwNjI2OGUtMDEsCisgIC03Ljg3NDAxNzQ3MDI5MDMxNGUtMDEsICAgNi4xNjQ0MDE3NDUzMDg1MzZlLTAxLAorICAtNy44NjQ1NTIxMzU5OTA4NThlLTAxLCAgIDYuMTc2NDczMDc5Mzc4MDM5ZS0wMSwKKyAgLTcuODU1MDY4Mjk1NjQwNTM5ZS0wMSwgICA2LjE4ODUyOTg3OTYwOTc2M2UtMDEsCisgIC03Ljg0NTU2NTk3MTU1NTc1MmUtMDEsICAgNi4yMDA1NzIxMTc2MzI4OTFlLTAxLAorICAtNy44MzYwNDUxODYwOTYzODJlLTAxLCAgIDYuMjEyNTk5NzY1MTEwODc2ZS0wMSwKKyAgLTcuODI2NTA1OTYxNjY1NzU3ZS0wMSwgICA2LjIyNDYxMjc5Mzc0MTUwMGUtMDEsCisgIC03LjgxNjk0ODMyMDcxMDU5NGUtMDEsICAgNi4yMzY2MTExNzUyNTY5NDVlLTAxLAorICAtNy44MDczNzIyODU3MjA5NDVlLTAxLCAgIDYuMjQ4NTk0ODgxNDIzODYzZS0wMSwKKyAgLTcuNzk3Nzc3ODc5MjMwMTQ2ZS0wMSwgICA2LjI2MDU2Mzg4NDA0MzQzNWUtMDEsCisgIC03Ljc4ODE2NTEyMzgxNDc2MGUtMDEsICAgNi4yNzI1MTgxNTQ5NTE0NDFlLTAxLAorICAtNy43Nzg1MzQwNDIwOTQ1MzFlLTAxLCAgIDYuMjg0NDU3NjY2MDE4MzI3ZS0wMSwKKyAgLTcuNzY4ODg0NjU2NzMyMzI0ZS0wMSwgICA2LjI5NjM4MjM4OTE0OTI3MGUtMDEsCisgIC03Ljc1OTIxNjk5MDQzNDA3N2UtMDEsICAgNi4zMDgyOTIyOTYyODQyNDVlLTAxLAorICAtNy43NDk1MzEwNjU5NDg3MzllLTAxLCAgIDYuMzIwMTg3MzU5Mzk4MDkxZS0wMSwKKyAgLTcuNzM5ODI2OTA2MDY4MjI5ZS0wMSwgICA2LjMzMjA2NzU1MDUwMDU3MmUtMDEsCisgIC03LjczMDEwNDUzMzYyNzM3MGUtMDEsICAgNi4zNDM5MzI4NDE2MzY0NTVlLTAxLAorICAtNy43MjAzNjM5NzE1MDM4NDVlLTAxLCAgIDYuMzU1NzgzMjA0ODg1NTYxZS0wMSwKKyAgLTcuNzEwNjA1MjQyNjE4MTM4ZS0wMSwgICA2LjM2NzYxODYxMjM2Mjg0MmUtMDEsCisgIC03LjcwMDgyODM2OTkzMzQ3OWUtMDEsICAgNi4zNzk0MzkwMzYyMTg0NDBlLTAxLAorICAtNy42OTEwMzMzNzY0NTU3OTdlLTAxLCAgIDYuMzkxMjQ0NDQ4NjM3NzU3ZS0wMSwKKyAgLTcuNjgxMjIwMjg1MjMzNjU0ZS0wMSwgICA2LjQwMzAzNDgyMTg0MTUxN2UtMDEsCisgIC03LjY3MTM4OTExOTM1ODIwNGUtMDEsICAgNi40MTQ4MTAxMjgwODU4MzJlLTAxLAorICAtNy42NjE1Mzk5MDE5NjMxMjllLTAxLCAgIDYuNDI2NTcwMzM5NjYyMjY5ZS0wMSwKKyAgLTcuNjUxNjcyNjU2MjI0NTkwZS0wMSwgICA2LjQzODMxNTQyODg5NzkxNGUtMDEsCisgIC03LjY0MTc4NzQwNTM2MTE2N2UtMDEsICAgNi40NTAwNDUzNjgxNTU0MzllLTAxLAorICAtNy42MzE4ODQxNzI2MzM4MTNlLTAxLCAgIDYuNDYxNzYwMTI5ODMzMTYzZS0wMSwKKyAgLTcuNjIxOTYyOTgxMzQ1Nzg5ZS0wMSwgICA2LjQ3MzQ1OTY4NjM2NTEyMWUtMDEsCisgIC03LjYxMjAyMzg1NDg0MjYxOGUtMDEsICAgNi40ODUxNDQwMTAyMjExMjRlLTAxLAorICAtNy42MDIwNjY4MTY1MTIwMjRlLTAxLCAgIDYuNDk2ODEzMDczOTA2ODMyZS0wMSwKKyAgLTcuNTkyMDkxODg5NzgzODgxZS0wMSwgICA2LjUwODQ2Njg0OTk2MzgwOWUtMDEsCisgIC03LjU4MjA5OTA5ODEzMDE1M2UtMDEsICAgNi41MjAxMDUzMTA5Njk1OTVlLTAxLAorICAtNy41NzIwODg0NjUwNjQ4NDZlLTAxLCAgIDYuNTMxNzI4NDI5NTM3NzY4ZS0wMSwKKyAgLTcuNTYyMDYwMDE0MTQzOTQ1ZS0wMSwgICA2LjU0MzMzNjE3ODMxODAwNGUtMDEsCisgIC03LjU1MjAxMzc2ODk2NTM2NWUtMDEsICAgNi41NTQ5Mjg1Mjk5OTYxNTNlLTAxLAorICAtNy41NDE5NDk3NTMxNjg4OTJlLTAxLCAgIDYuNTY2NTA1NDU3Mjk0Mjg5ZS0wMSwKKyAgLTcuNTMxODY3OTkwNDM2MTI1ZS0wMSwgICA2LjU3ODA2NjkzMjk3MDc4NmUtMDEsCisgIC03LjUyMTc2ODUwNDQ5MDQyOGUtMDEsICAgNi41ODk2MTI5Mjk4MjAzNzNlLTAxLAorICAtNy41MTE2NTEzMTkwOTY4NjVlLTAxLCAgIDYuNjAxMTQzNDIwNjc0MjA1ZS0wMSwKKyAgLTcuNTAxNTE2NDU4MDYyMTUxZS0wMSwgICA2LjYxMjY1ODM3ODM5OTkyM2UtMDEsCisgIC03LjQ5MTM2Mzk0NTIzNDU5NGUtMDEsICAgNi42MjQxNTc3NzU5MDE3MThlLTAxLAorICAtNy40ODExOTM4MDQ1MDQwMzZlLTAxLCAgIDYuNjM1NjQxNTg2MTIwMzk4ZS0wMSwKKyAgLTcuNDcxMDA2MDU5ODAxODAxZS0wMSwgICA2LjY0NzEwOTc4MjAzMzQ0OGUtMDEsCisgIC03LjQ2MDgwMDczNTEwMDYzOGUtMDEsICAgNi42NTg1NjIzMzY2NTUwOTdlLTAxLAorICAtNy40NTA1Nzc4NTQ0MTQ2NjFlLTAxLCAgIDYuNjY5OTk5MjIzMDM2Mzc1ZS0wMSwKKyAgLTcuNDQwMzM3NDQxNzk5MjkzZS0wMSwgICA2LjY4MTQyMDQxNDI2NTE4NWUtMDEsCisgIC03LjQzMDA3OTUyMTM1MTIxN2UtMDEsICAgNi42OTI4MjU4ODM0NjYzNjBlLTAxLAorICAtNy40MTk4MDQxMTcyMDgzMTFlLTAxLCAgIDYuNzA0MjE1NjAzODAxNzMxZS0wMSwKKyAgLTcuNDA5NTExMjUzNTQ5NTkxZS0wMSwgICA2LjcxNTU4OTU0ODQ3MDE4M2UtMDEsCisgIC03LjM5OTIwMDk1NDU5NTE2MmUtMDEsICAgNi43MjY5NDc2OTA3MDc3MjllLTAxLAorICAtNy4zODg4NzMyNDQ2MDYxNTFlLTAxLCAgIDYuNzM4MjkwMDAzNzg3NTYwZS0wMSwKKyAgLTcuMzc4NTI4MTQ3ODg0NjYwZS0wMSwgICA2Ljc0OTYxNjQ2MTAyMDExOWUtMDEsCisgIC03LjM2ODE2NTY4ODc3MzY5OWUtMDEsICAgNi43NjA5MjcwMzU3NTMxNTllLTAxLAorICAtNy4zNTc3ODU4OTE2NTcxMzZlLTAxLCAgIDYuNzcyMjIxNzAxMzcxODAzZS0wMSwKKyAgLTcuMzQ3Mzg4NzgwOTU5NjM1ZS0wMSwgICA2Ljc4MzUwMDQzMTI5ODYxNWUtMDEsCisgIC03LjMzNjk3NDM4MTE0NjYwNGUtMDEsICAgNi43OTQ3NjMxOTg5OTM2NTBlLTAxLAorICAtNy4zMjY1NDI3MTY3MjQxMjhlLTAxLCAgIDYuODA2MDA5OTc3OTU0NTMwZS0wMSwKKyAgLTcuMzE2MDkzODEyMjM4OTI2ZS0wMSwgICA2LjgxNzI0MDc0MTcxNjQ5N2UtMDEsCisgIC03LjMwNTYyNzY5MjI3ODI3NmUtMDEsICAgNi44Mjg0NTU0NjM4NTI0ODFlLTAxLAorICAtNy4yOTUxNDQzODE0Njk5NzBlLTAxLCAgIDYuODM5NjU0MTE3OTczMTU0ZS0wMSwKKyAgLTcuMjg0NjQzOTA0NDgyMjUyZS0wMSwgICA2Ljg1MDgzNjY3NzcyNzAwNGUtMDEsCisgIC03LjI3NDEyNjI4NjAyMzc1OGUtMDEsICAgNi44NjIwMDMxMTY4MDAzODZlLTAxLAorICAtNy4yNjM1OTE1NTA4NDM0NjBlLTAxLCAgIDYuODczMTUzNDA4OTE3NTkwZS0wMSwKKyAgLTcuMjUzMDM5NzIzNzMwNjA4ZS0wMSwgICA2Ljg4NDI4NzUyNzg0MDkwNGUtMDEsCisgIC03LjI0MjQ3MDgyOTUxNDY3MGUtMDEsICAgNi44OTU0MDU0NDczNzA2NjhlLTAxLAorICAtNy4yMzE4ODQ4OTMwNjUyNzVlLTAxLCAgIDYuOTA2NTA3MTQxMzQ1MzQ2ZS0wMSwKKyAgLTcuMjIxMjgxOTM5MjkyMTUzZS0wMSwgICA2LjkxNzU5MjU4MzY0MTU3N2UtMDEsCisgIC03LjIxMDY2MTk5MzE0NTA4MWUtMDEsICAgNi45Mjg2NjE3NDgxNzQyNDZlLTAxLAorICAtNy4yMDAwMjUwNzk2MTM4MTdlLTAxLCAgIDYuOTM5NzE0NjA4ODk2NTQwZS0wMSwKKyAgLTcuMTg5MzcxMjIzNzI4MDQ1ZS0wMSwgICA2Ljk1MDc1MTEzOTgwMDAwOWUtMDEsCisgIC03LjE3ODcwMDQ1MDU1NzMxN2UtMDEsICAgNi45NjE3NzEzMTQ5MTQ2MzBlLTAxLAorICAtNy4xNjgwMTI3ODUyMTA5OTVlLTAxLCAgIDYuOTcyNzc1MTA4MzA4ODY1ZS0wMSwKKyAgLTcuMTU3MzA4MjUyODM4MTg2ZS0wMSwgICA2Ljk4Mzc2MjQ5NDA4OTcyOWUtMDEsCisgIC03LjE0NjU4Njg3ODYyNzY5MWUtMDEsICAgNi45OTQ3MzM0NDY0MDI4MzhlLTAxLAorICAtNy4xMzU4NDg2ODc4MDc5MzZlLTAxLCAgIDcuMDA1Njg3OTM5NDMyNDgzZS0wMSwKKyAgLTcuMTI1MDkzNzA1NjQ2OTIzZS0wMSwgICA3LjAxNjYyNTk0NzQwMTY4NWUtMDEsCisgIC03LjExNDMyMTk1NzQ1MjE2NGUtMDEsICAgNy4wMjc1NDc0NDQ1NzIyNTNlLTAxLAorICAtNy4xMDM1MzM0Njg1NzA2MjRlLTAxLCAgIDcuMDM4NDUyNDA1MjQ0ODQ5ZS0wMSwKKyAgLTcuMDkyNzI4MjY0Mzg4NjU3ZS0wMSwgICA3LjA0OTM0MDgwMzc1OTA0OWUtMDEsCisgIC03LjA4MTkwNjM3MDMzMTk1NGUtMDEsICAgNy4wNjAyMTI2MTQ0OTMzOTdlLTAxLAorICAtNy4wNzEwNjc4MTE4NjU0NzZlLTAxLCAgIDcuMDcxMDY3ODExODY1NDc1ZS0wMSwKKyNlbHNlCisjZXJyb3IgVW5zdXBwb3J0ZWQgdHdpZGRsZSB0YWJsZSBzaXplCisjZW5kaWYKK307CmRpZmYgLS1naXQgYS9kbC9hcm1TUF9GRlRfUzMyVHdpZGRsZVRhYmxlLmMgYi9kbC9hcm1TUF9GRlRfUzMyVHdpZGRsZVRhYmxlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjU4MDdlMAotLS0gL2Rldi9udWxsCisrKyBiL2RsL2FybVNQX0ZGVF9TMzJUd2lkZGxlVGFibGUuYwpAQCAtMCwwICsxLDU1NiBAQAorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICoKKyAqICBUaGlzIGZpbGUgd2FzIG9yaWdpbmFsbHkgbGljZW5zZWQgYXMgZm9sbG93cy4gSXQgaGFzIGJlZW4KKyAqICByZWxpY2Vuc2VkIHdpdGggcGVybWlzc2lvbiBmcm9tIHRoZSBjb3B5cmlnaHQgaG9sZGVycy4KKyAqLworCisvKioKKyAqIAorICogRmlsZSBOYW1lOiAgYXJtU1BfRkZUX1MzMlR3aWRkbGVUYWJsZS5jCisgKiBPcGVuTUFYIERMOiB2MS4wLjIKKyAqIExhc3QgTW9kaWZpZWQgUmV2aXNpb246ICAgNjc4MQorICogTGFzdCBNb2RpZmllZCBEYXRlOiAgICAgICBXZWQsIDI1IEp1bCAyMDA3CisgKiAKKyAqIChjKSBDb3B5cmlnaHQgMjAwNy0yMDA4IEFSTSBMaW1pdGVkLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogCisgKiAKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIFR3aWRkbGUgdGFibGUgZm9yIEZvcndhcmQgRkZUIGluIFEzMSBmb3JtYXQuCisgKiBJdCBjb250YWlucyBjb21wbGV4IHBhaXJzIFstY29zIChXICogaSksIC1zaW4gKFcgKiBpKV0gd2hlcmUgVyA9IC0yKlBJL04KKyAqIGFuZCAwPD0gaTw9IE4vOC4gIE4gaXMgdGhlIG1heCBzaXplIG9mIHRoZSBGRlQuIEhlcmUgTiA9IDJeMTIuCisgKiBWYWx1ZXMgZm9yIE4vOCA8IGkgPCBOIGFyZSBnZW5lcmF0ZWQgaW4gdGhlIEZGVEluaXQgZnVuY3Rpb24gdXNpbmcgdGhlIAorICogc3ltbWV0cmllcyBvZiBjb3MgYW5kIHNpbmUuCisgKiAKKyAqIE5PVEU6IFRoZSB2YWx1ZXMgYXJlIHN0b3JlZCBuZWdhdGVkLiBUaGlzIGlzIHRvIHJlcHJlc2VudCAnMScgd2hpY2ggY2Fubm90IGJlIG90aGVyd2lzZSAKKyAqIHJlcHJlc2VudGVkIGFzIFEzMSBpbiAzMiBiaXRzLiAKKyoqLworCisjaW5jbHVkZSAib214dHlwZXMuaCIKKworCitjb25zdCBPTVhfUzMyIGFybVNQX0ZGVF9TMzJUd2lkZGxlVGFibGVbMTAyNl0gPXsKKworMHg4MDAwMDAwMCwJCTB4MCwKKzB4ODAwMDA5ZGYsCQkweDMyNDNmNSwKKzB4ODAwMDI3N2EsCQkweDY0ODdlMywKKzB4ODAwMDU4ZDQsCQkweDk2Y2JjMSwKKzB4ODAwMDlkZWEsCQkweGM5MGY4OCwKKzB4ODAwMGY2YmQsCQkweGZiNTMzMCwKKzB4ODAwMTYzNGUsCQkweDEyZDk2YjEsCisweDgwMDFlMzliLAkJMHgxNWZkYTAzLAorMHg4MDAyNzdhNiwJCTB4MTkyMWQyMCwKKzB4ODAwMzFmNmQsCQkweDFjNDVmZmUsCisweDgwMDNkYWYxLAkJMHgxZjZhMjk3LAorMHg4MDA0YWEzMiwJCTB4MjI4ZTRlMiwKKzB4ODAwNThkMmYsCQkweDI1YjI2ZDcsCisweDgwMDY4M2U4LAkJMHgyOGQ2ODcwLAorMHg4MDA3OGU1ZSwJCTB4MmJmYTlhNCwKKzB4ODAwOGFjOTAsCQkweDJmMWVhNmMsCisweDgwMDlkZTdlLAkJMHgzMjQyYWJmLAorMHg4MDBiMjQyNywJCTB4MzU2NmE5NiwKKzB4ODAwYzdkOGMsCQkweDM4OGE5ZWEsCisweDgwMGRlYWFkLAkJMHgzYmFlOGIyLAorMHg4MDBmNmI4OCwJCTB4M2VkMjZlNiwKKzB4ODAxMTAwMWYsCQkweDQxZjY0ODAsCisweDgwMTJhODZmLAkJMHg0NTFhMTc3LAorMHg4MDE0NjQ3YiwJCTB4NDgzZGRjMywKKzB4ODAxNjM0NDAsCQkweDRiNjE5NWQsCisweDgwMTgxN2JmLAkJMHg0ZTg1NDNlLAorMHg4MDFhMGVmOCwJCTB4NTFhOGU1YywKKzB4ODAxYzE5ZWEsCQkweDU0Y2M3YjEsCisweDgwMWUzODk1LAkJMHg1N2YwMDM1LAorMHg4MDIwNmFmOCwJCTB4NWIxMzdkZiwKKzB4ODAyMmIxMTQsCQkweDVlMzZlYTksCisweDgwMjUwYWU3LAkJMHg2MTVhNDhiLAorMHg4MDI3Nzg3MiwJCTB4NjQ3ZDk3YywKKzB4ODAyOWY5YjQsCQkweDY3YTBkNzYsCisweDgwMmM4ZWFkLAkJMHg2YWM0MDZmLAorMHg4MDJmMzc1ZCwJCTB4NmRlNzI2MiwKKzB4ODAzMWYzYzIsCQkweDcxMGEzNDUsCisweDgwMzRjM2RkLAkJMHg3NDJkMzExLAorMHg4MDM3YTdhYywJCTB4Nzc1MDFiZSwKKzB4ODAzYTlmMzEsCQkweDdhNzJmNDUsCisweDgwM2RhYTZhLAkJMHg3ZDk1YjllLAorMHg4MDQwYzk1NiwJCTB4ODBiODZjMiwKKzB4ODA0M2ZiZjYsCQkweDgzZGIwYTcsCisweDgwNDc0MjQ4LAkJMHg4NmZkOTQ3LAorMHg4MDRhOWM0ZCwJCTB4OGEyMDA5YSwKKzB4ODA0ZTBhMDQsCQkweDhkNDI2OTksCisweDgwNTE4YjZiLAkJMHg5MDY0YjNhLAorMHg4MDU1MjA4NCwJCTB4OTM4NmU3OCwKKzB4ODA1OGM5NGMsCQkweDk2YTkwNDksCisweDgwNWM4NWM0LAkJMHg5OWNiMGE3LAorMHg4MDYwNTVlYiwJCTB4OWNlY2Y4OSwKKzB4ODA2NDM5YzAsCQkweGEwMGVjZTgsCisweDgwNjgzMTQzLAkJMHhhMzMwOGJkLAorMHg4MDZjM2M3NCwJCTB4YTY1MjJmZSwKKzB4ODA3MDViNTAsCQkweGE5NzNiYTUsCisweDgwNzQ4ZGQ5LAkJMHhhYzk1MmFhLAorMHg4MDc4ZDQwZCwJCTB4YWZiNjgwNSwKKzB4ODA3ZDJkZWMsCQkweGIyZDdiYWYsCisweDgwODE5Yjc0LAkJMHhiNWY4ZDlmLAorMHg4MDg2MWNhNiwJCTB4YjkxOWRjZiwKKzB4ODA4YWIxODAsCQkweGJjM2FjMzUsCisweDgwOGY1YTAyLAkJMHhiZjViOGNiLAorMHg4MDk0MTYyYywJCTB4YzI3YzM4OSwKKzB4ODA5OGU1ZmIsCQkweGM1OWNjNjgsCisweDgwOWRjOTcxLAkJMHhjOGJkMzVlLAorMHg4MGEyYzA4YiwJCTB4Y2JkZDg2NSwKKzB4ODBhN2NiNDksCQkweGNlZmRiNzYsCisweDgwYWNlOWFiLAkJMHhkMjFkYzg3LAorMHg4MGIyMWJhZiwJCTB4ZDUzZGI5MiwKKzB4ODBiNzYxNTYsCQkweGQ4NWQ4OGYsCisweDgwYmNiYTlkLAkJMHhkYjdkMzc2LAorMHg4MGMyMjc4NCwJCTB4ZGU5Y2M0MCwKKzB4ODBjN2E4MGEsCQkweGUxYmMyZTQsCisweDgwY2QzYzJmLAkJMHhlNGRiNzViLAorMHg4MGQyZTNmMiwJCTB4ZTdmYTk5ZSwKKzB4ODBkODlmNTEsCQkweGViMTk5YTQsCisweDgwZGU2ZTRjLAkJMHhlZTM4NzY2LAorMHg4MGU0NTBlMiwJCTB4ZjE1NzJkYywKKzB4ODBlYTQ3MTIsCQkweGY0NzViZmYsCisweDgwZjA1MGRiLAkJMHhmNzk0MmM3LAorMHg4MGY2NmUzYywJCTB4ZmFiMjcyYiwKKzB4ODBmYzlmMzUsCQkweGZkZDA5MjYsCisweDgxMDJlM2M0LAkJMHgxMDBlZThhZCwKKzB4ODEwOTNiZTgsCQkweDEwNDBjNWJiLAorMHg4MTBmYTdhMCwJCTB4MTA3MmEwNDgsCisweDgxMTYyNmVjLAkJMHgxMGE0Nzg0YiwKKzB4ODExY2I5Y2EsCQkweDEwZDY0ZGJkLAorMHg4MTIzNjAzYSwJCTB4MTEwODIwOTYsCisweDgxMmExYTNhLAkJMHgxMTM5ZjBjZiwKKzB4ODEzMGU3YzksCQkweDExNmJiZTYwLAorMHg4MTM3YzhlNiwJCTB4MTE5ZDg5NDEsCisweDgxM2ViZDkwLAkJMHgxMWNmNTE2YSwKKzB4ODE0NWM1YzcsCQkweDEyMDExNmQ1LAorMHg4MTRjZTE4OCwJCTB4MTIzMmQ5NzksCisweDgxNTQxMGQ0LAkJMHgxMjY0OTk0ZSwKKzB4ODE1YjUzYTgsCQkweDEyOTY1NjRkLAorMHg4MTYyYWEwNCwJCTB4MTJjODEwNmYsCisweDgxNmExM2U2LAkJMHgxMmY5YzdhYSwKKzB4ODE3MTkxNGUsCQkweDEzMmI3YmY5LAorMHg4MTc5MjIzYSwJCTB4MTM1ZDJkNTMsCisweDgxODBjNmE5LAkJMHgxMzhlZGJiMSwKKzB4ODE4ODdlOWEsCQkweDEzYzA4NzBhLAorMHg4MTkwNGEwYywJCTB4MTNmMjJmNTgsCisweDgxOTgyOGZkLAkJMHgxNDIzZDQ5MiwKKzB4ODFhMDFiNmQsCQkweDE0NTU3NmIxLAorMHg4MWE4MjE1OSwJCTB4MTQ4NzE1YWUsCisweDgxYjAzYWMyLAkJMHgxNGI4YjE3ZiwKKzB4ODFiODY3YTUsCQkweDE0ZWE0YTFmLAorMHg4MWMwYTgwMSwJCTB4MTUxYmRmODYsCisweDgxYzhmYmQ2LAkJMHgxNTRkNzFhYSwKKzB4ODFkMTYzMjEsCQkweDE1N2YwMDg2LAorMHg4MWQ5ZGRlMSwJCTB4MTViMDhjMTIsCisweDgxZTI2YzE2LAkJMHgxNWUyMTQ0NSwKKzB4ODFlYjBkYmUsCQkweDE2MTM5OTE4LAorMHg4MWYzYzJkNywJCTB4MTY0NTFhODMsCisweDgxZmM4YjYwLAkJMHgxNjc2OTg3ZiwKKzB4ODIwNTY3NTgsCQkweDE2YTgxMzA1LAorMHg4MjBlNTZiZSwJCTB4MTZkOThhMGMsCisweDgyMTc1OTkwLAkJMHgxNzBhZmQ4ZCwKKzB4ODIyMDZmY2MsCQkweDE3M2M2ZDgwLAorMHg4MjI5OTk3MSwJCTB4MTc2ZGQ5ZGUsCisweDgyMzJkNjdmLAkJMHgxNzlmNDI5ZiwKKzB4ODIzYzI2ZjMsCQkweDE3ZDBhN2JjLAorMHg4MjQ1OGFjYywJCTB4MTgwMjA5MmMsCisweDgyNGYwMjA4LAkJMHgxODMzNjZlOSwKKzB4ODI1ODhjYTcsCQkweDE4NjRjMGVhLAorMHg4MjYyMmFhNiwJCTB4MTg5NjE3MjgsCisweDgyNmJkYzA0LAkJMHgxOGM3Njk5YiwKKzB4ODI3NWEwYzAsCQkweDE4ZjhiODNjLAorMHg4MjdmNzhkOCwJCTB4MTkyYTAzMDQsCisweDgyODk2NDRiLAkJMHgxOTViNDllYSwKKzB4ODI5MzYzMTcsCQkweDE5OGM4Y2U3LAorMHg4MjlkNzUzYSwJCTB4MTliZGNiZjMsCisweDgyYTc5YWIzLAkJMHgxOWVmMDcwNywKKzB4ODJiMWQzODEsCQkweDFhMjAzZTFiLAorMHg4MmJjMWZhMiwJCTB4MWE1MTcxMjgsCisweDgyYzY3ZjE0LAkJMHgxYTgyYTAyNiwKKzB4ODJkMGYxZDUsCQkweDFhYjNjYjBkLAorMHg4MmRiNzdlNSwJCTB4MWFlNGYxZDYsCisweDgyZTYxMTQxLAkJMHgxYjE2MTQ3OSwKKzB4ODJmMGJkZTgsCQkweDFiNDczMmVmLAorMHg4MmZiN2RkOCwJCTB4MWI3ODRkMzAsCisweDgzMDY1MTEwLAkJMHgxYmE5NjMzNSwKKzB4ODMxMTM3OGQsCQkweDFiZGE3NGY2LAorMHg4MzFjMzE0ZSwJCTB4MWMwYjgyNmEsCisweDgzMjczZTUyLAkJMHgxYzNjOGI4YywKKzB4ODMzMjVlOTcsCQkweDFjNmQ5MDUzLAorMHg4MzNkOTIxYiwJCTB4MWM5ZTkwYjgsCisweDgzNDhkOGRjLAkJMHgxY2NmOGNiMywKKzB4ODM1NDMyZDgsCQkweDFkMDA4NDNkLAorMHg4MzVmYTAwZiwJCTB4MWQzMTc3NGQsCisweDgzNmIyMDdkLAkJMHgxZDYyNjVkZCwKKzB4ODM3NmI0MjIsCQkweDFkOTM0ZmU1LAorMHg4MzgyNWFmYiwJCTB4MWRjNDM1NWUsCisweDgzOGUxNTA3LAkJMHgxZGY1MTYzZiwKKzB4ODM5OWUyNDQsCQkweDFlMjVmMjgyLAorMHg4M2E1YzJiMCwJCTB4MWU1NmNhMWUsCisweDgzYjFiNjQ5LAkJMHgxZTg3OWQwZCwKKzB4ODNiZGJkMGUsCQkweDFlYjg2YjQ2LAorMHg4M2M5ZDZmYywJCTB4MWVlOTM0YzMsCisweDgzZDYwNDEyLAkJMHgxZjE5Zjk3YiwKKzB4ODNlMjQ0NGQsCQkweDFmNGFiOTY4LAorMHg4M2VlOTdhZCwJCTB4MWY3Yjc0ODEsCisweDgzZmFmZTJlLAkJMHgxZmFjMmFiZiwKKzB4ODQwNzc3ZDAsCQkweDFmZGNkYzFiLAorMHg4NDE0MDQ5MCwJCTB4MjAwZDg4OGQsCisweDg0MjBhNDZjLAkJMHgyMDNlMzAwZCwKKzB4ODQyZDU3NjIsCQkweDIwNmVkMjk1LAorMHg4NDNhMWQ3MCwJCTB4MjA5ZjcwMWMsCisweDg0NDZmNjk1LAkJMHgyMGQwMDg5YywKKzB4ODQ1M2UyY2YsCQkweDIxMDA5YzBjLAorMHg4NDYwZTIxYSwJCTB4MjEzMTJhNjUsCisweDg0NmRmNDc3LAkJMHgyMTYxYjNhMCwKKzB4ODQ3YjE5ZTEsCQkweDIxOTIzN2I1LAorMHg4NDg4NTI1OCwJCTB4MjFjMmI2OWMsCisweDg0OTU5ZGQ5LAkJMHgyMWYzMzA0ZiwKKzB4ODRhMmZjNjIsCQkweDIyMjNhNGM1LAorMHg4NGIwNmRmMiwJCTB4MjI1NDEzZjgsCisweDg0YmRmMjg2LAkJMHgyMjg0N2RlMCwKKzB4ODRjYjhhMWIsCQkweDIyYjRlMjc0LAorMHg4NGQ5MzRiMSwJCTB4MjJlNTQxYWYsCisweDg0ZTZmMjQ0LAkJMHgyMzE1OWI4OCwKKzB4ODRmNGMyZDQsCQkweDIzNDVlZmY4LAorMHg4NTAyYTY1YywJCTB4MjM3NjNlZjcsCisweDg1MTA5Y2RkLAkJMHgyM2E2ODg3ZiwKKzB4ODUxZWE2NTIsCQkweDIzZDZjYzg3LAorMHg4NTJjYzJiYiwJCTB4MjQwNzBiMDgsCisweDg1M2FmMjE0LAkJMHgyNDM3NDNmYSwKKzB4ODU0OTM0NWMsCQkweDI0Njc3NzU4LAorMHg4NTU3ODk5MSwJCTB4MjQ5N2E1MTcsCisweDg1NjVmMWIwLAkJMHgyNGM3Y2QzMywKKzB4ODU3NDZjYjgsCQkweDI0ZjdlZmEyLAorMHg4NTgyZmFhNSwJCTB4MjUyODBjNWUsCisweDg1OTE5Yjc2LAkJMHgyNTU4MjM1ZiwKKzB4ODVhMDRmMjgsCQkweDI1ODgzNDlkLAorMHg4NWFmMTViOSwJCTB4MjViODQwMTIsCisweDg1YmRlZjI4LAkJMHgyNWU4NDViNiwKKzB4ODVjY2RiNzAsCQkweDI2MTg0NTgxLAorMHg4NWRiZGE5MSwJCTB4MjY0ODNmNmMsCisweDg1ZWFlYzg4LAkJMHgyNjc4MzM3MCwKKzB4ODVmYTExNTMsCQkweDI2YTgyMTg2LAorMHg4NjA5NDhlZiwJCTB4MjZkODA5YTUsCisweDg2MTg5MzU5LAkJMHgyNzA3ZWJjNywKKzB4ODYyN2YwOTEsCQkweDI3MzdjN2UzLAorMHg4NjM3NjA5MiwJCTB4Mjc2NzlkZjQsCisweDg2NDZlMzVjLAkJMHgyNzk3NmRmMSwKKzB4ODY1Njc4ZWIsCQkweDI3YzczN2QzLAorMHg4NjY2MjEzYywJCTB4MjdmNmZiOTIsCisweDg2NzVkYzRmLAkJMHgyODI2YjkyOCwKKzB4ODY4NWFhMjAsCQkweDI4NTY3MDhkLAorMHg4Njk1OGFhYywJCTB4Mjg4NjIxYjksCisweDg2YTU3ZGYyLAkJMHgyOGI1Y2NhNSwKKzB4ODZiNTgzZWUsCQkweDI4ZTU3MTRiLAorMHg4NmM1OWM5ZiwJCTB4MjkxNTBmYTEsCisweDg2ZDVjODAyLAkJMHgyOTQ0YTdhMiwKKzB4ODZlNjA2MTQsCQkweDI5NzQzOTQ2LAorMHg4NmY2NTZkMywJCTB4MjlhM2M0ODUsCisweDg3MDZiYTNkLAkJMHgyOWQzNDk1OCwKKzB4ODcxNzMwNGUsCQkweDJhMDJjN2I4LAorMHg4NzI3YjkwNSwJCTB4MmEzMjNmOWUsCisweDg3Mzg1NDVlLAkJMHgyYTYxYjEwMSwKKzB4ODc0OTAyNTgsCQkweDJhOTExYmRjLAorMHg4NzU5YzJlZiwJCTB4MmFjMDgwMjYsCisweDg3NmE5NjIxLAkJMHgyYWVmZGRkOCwKKzB4ODc3YjdiZWMsCQkweDJiMWYzNGViLAorMHg4NzhjNzQ0ZCwJCTB4MmI0ZTg1NTgsCisweDg3OWQ3ZjQxLAkJMHgyYjdkY2YxNywKKzB4ODdhZTljYzUsCQkweDJiYWQxMjIxLAorMHg4N2JmY2NkNywJCTB4MmJkYzRlNmYsCisweDg3ZDEwZjc1LAkJMHgyYzBiODNmYSwKKzB4ODdlMjY0OWIsCQkweDJjM2FiMmI5LAorMHg4N2YzY2M0OCwJCTB4MmM2OWRhYTYsCisweDg4MDU0Njc3LAkJMHgyYzk4ZmJiYSwKKzB4ODgxNmQzMjcsCQkweDJjYzgxNWVlLAorMHg4ODI4NzI1NiwJCTB4MmNmNzI5MzksCisweDg4M2EyM2ZmLAkJMHgyZDI2MzU5NiwKKzB4ODg0YmU4MjEsCQkweDJkNTUzYWZjLAorMHg4ODVkYmViOCwJCTB4MmQ4NDM5NjQsCisweDg4NmZhN2MyLAkJMHgyZGIzMzBjNywKKzB4ODg4MWEzM2QsCQkweDJkZTIyMTFlLAorMHg4ODkzYjEyNSwJCTB4MmUxMTBhNjIsCisweDg4YTVkMTc3LAkJMHgyZTNmZWM4YiwKKzB4ODhiODA0MzIsCQkweDJlNmVjNzkyLAorMHg4OGNhNDk1MSwJCTB4MmU5ZDliNzAsCisweDg4ZGNhMGQzLAkJMHgyZWNjNjgxZSwKKzB4ODhlZjBhYjQsCQkweDJlZmIyZDk1LAorMHg4OTAxODZmMiwJCTB4MmYyOWViY2MsCisweDg5MTQxNTg5LAkJMHgyZjU4YTJiZSwKKzB4ODkyNmI2NzcsCQkweDJmODc1MjYyLAorMHg4OTM5NjliOSwJCTB4MmZiNWZhYjIsCisweDg5NGMyZjRjLAkJMHgyZmU0OWJhNywKKzB4ODk1ZjA3MmUsCQkweDMwMTMzNTM5LAorMHg4OTcxZjE1YSwJCTB4MzA0MWM3NjEsCisweDg5ODRlZGNmLAkJMHgzMDcwNTIxNywKKzB4ODk5N2ZjOGEsCQkweDMwOWVkNTU2LAorMHg4OWFiMWQ4NywJCTB4MzBjZDUxMTUsCisweDg5YmU1MGMzLAkJMHgzMGZiYzU0ZCwKKzB4ODlkMTk2M2MsCQkweDMxMmEzMWY4LAorMHg4OWU0ZWRlZiwJCTB4MzE1ODk3MGUsCisweDg5Zjg1N2Q4LAkJMHgzMTg2ZjQ4NywKKzB4OGEwYmQzZjUsCQkweDMxYjU0YTVlLAorMHg4YTFmNjI0MywJCTB4MzFlMzk4ODksCisweDhhMzMwMmJlLAkJMHgzMjExZGYwNCwKKzB4OGE0NmI1NjQsCQkweDMyNDAxZGM2LAorMHg4YTVhN2EzMSwJCTB4MzI2ZTU0YzcsCisweDhhNmU1MTIzLAkJMHgzMjljODQwMiwKKzB4OGE4MjNhMzYsCQkweDMyY2FhYjZmLAorMHg4YTk2MzU2NywJCTB4MzJmOGNiMDcsCisweDhhYWE0MmI0LAkJMHgzMzI2ZTJjMywKKzB4OGFiZTYyMTksCQkweDMzNTRmMjliLAorMHg4YWQyOTM5NCwJCTB4MzM4MmZhODgsCisweDhhZTZkNzIwLAkJMHgzM2IwZmE4NCwKKzB4OGFmYjJjYmIsCQkweDMzZGVmMjg3LAorMHg4YjBmOTQ2MiwJCTB4MzQwY2UyOGIsCisweDhiMjQwZTExLAkJMHgzNDNhY2E4NywKKzB4OGIzODk5YzYsCQkweDM0NjhhYTc2LAorMHg4YjRkMzc3YywJCTB4MzQ5NjgyNTAsCisweDhiNjFlNzMzLAkJMHgzNGM0NTIwZCwKKzB4OGI3NmE4ZTQsCQkweDM0ZjIxOWE4LAorMHg4YjhiN2M4ZiwJCTB4MzUxZmQ5MTgsCisweDhiYTA2MjJmLAkJMHgzNTRkOTA1NywKKzB4OGJiNTU5YzEsCQkweDM1N2IzZjVkLAorMHg4YmNhNjM0MywJCTB4MzVhOGU2MjUsCisweDhiZGY3ZWIwLAkJMHgzNWQ2ODRhNiwKKzB4OGJmNGFjMDUsCQkweDM2MDQxYWQ5LAorMHg4YzA5ZWI0MCwJCTB4MzYzMWE4YjgsCisweDhjMWYzYzVkLAkJMHgzNjVmMmUzYiwKKzB4OGMzNDlmNTgsCQkweDM2OGNhYjVjLAorMHg4YzRhMTQyZiwJCTB4MzZiYTIwMTQsCisweDhjNWY5YWRlLAkJMHgzNmU3OGM1YiwKKzB4OGM3NTMzNjIsCQkweDM3MTRmMDJhLAorMHg4YzhhZGRiNywJCTB4Mzc0MjRiN2IsCisweDhjYTA5OWRhLAkJMHgzNzZmOWU0NiwKKzB4OGNiNjY3YzgsCQkweDM3OWNlODg1LAorMHg4Y2NjNDc3ZCwJCTB4MzdjYTJhMzAsCisweDhjZTIzOGY2LAkJMHgzN2Y3NjM0MSwKKzB4OGNmODNjMzAsCQkweDM4MjQ5M2IwLAorMHg4ZDBlNTEyNywJCTB4Mzg1MWJiNzcsCisweDhkMjQ3N2Q4LAkJMHgzODdlZGE4ZSwKKzB4OGQzYWIwM2YsCQkweDM4YWJmMGVmLAorMHg4ZDUwZmE1OSwJCTB4MzhkOGZlOTMsCisweDhkNjc1NjIzLAkJMHgzOTA2MDM3MywKKzB4OGQ3ZGMzOTksCQkweDM5MzJmZjg3LAorMHg4ZDk0NDJiOCwJCTB4Mzk1ZmYyYzksCisweDhkYWFkMzdiLAkJMHgzOThjZGQzMiwKKzB4OGRjMTc1ZTAsCQkweDM5YjliZWJjLAorMHg4ZGQ4MjllNCwJCTB4MzllNjk3NWUsCisweDhkZWVlZjgyLAkJMHgzYTEzNjcxMiwKKzB4OGUwNWM2YjcsCQkweDNhNDAyZGQyLAorMHg4ZTFjYWY4MCwJCTB4M2E2Y2ViOTYsCisweDhlMzNhOWRhLAkJMHgzYTk5YTA1NywKKzB4OGU0YWI1YmYsCQkweDNhYzY0YzBmLAorMHg4ZTYxZDMyZSwJCTB4M2FmMmVlYjcsCisweDhlNzkwMjIyLAkJMHgzYjFmODg0OCwKKzB4OGU5MDQyOTgsCQkweDNiNGMxOGJhLAorMHg4ZWE3OTQ4YywJCTB4M2I3OGEwMDcsCisweDhlYmVmN2ZiLAkJMHgzYmE1MWUyOSwKKzB4OGVkNjZjZTEsCQkweDNiZDE5MzE4LAorMHg4ZWVkZjMzYiwJCTB4M2JmZGZlY2QsCisweDhmMDU4YjA0LAkJMHgzYzJhNjE0MiwKKzB4OGYxZDM0M2EsCQkweDNjNTZiYTcwLAorMHg4ZjM0ZWVkOCwJCTB4M2M4MzBhNTAsCisweDhmNGNiYWRiLAkJMHgzY2FmNTBkYSwKKzB4OGY2NDk4NDAsCQkweDNjZGI4ZTA5LAorMHg4ZjdjODcwMSwJCTB4M2QwN2MxZDYsCisweDhmOTQ4NzFkLAkJMHgzZDMzZWMzOSwKKzB4OGZhYzk4OGYsCQkweDNkNjAwZDJjLAorMHg4ZmM0YmI1MywJCTB4M2Q4YzI0YTgsCisweDhmZGNlZjY2LAkJMHgzZGI4MzJhNiwKKzB4OGZmNTM0YzQsCQkweDNkZTQzNzFmLAorMHg5MDBkOGI2OSwJCTB4M2UxMDMyMGQsCisweDkwMjVmMzUyLAkJMHgzZTNjMjM2OSwKKzB4OTAzZTZjN2IsCQkweDNlNjgwYjJjLAorMHg5MDU2ZjZkZiwJCTB4M2U5M2U5NTAsCisweDkwNmY5MjdjLAkJMHgzZWJmYmRjZCwKKzB4OTA4ODNmNGQsCQkweDNlZWI4ODljLAorMHg5MGEwZmQ0ZSwJCTB4M2YxNzQ5YjgsCisweDkwYjljYzdkLAkJMHgzZjQzMDExOSwKKzB4OTBkMmFjZDQsCQkweDNmNmVhZWI4LAorMHg5MGViOWU1MCwJCTB4M2Y5YTUyOTAsCisweDkxMDRhMGVlLAkJMHgzZmM1ZWM5OCwKKzB4OTExZGI0YTksCQkweDNmZjE3Y2NhLAorMHg5MTM2ZDk3ZCwJCTB4NDAxZDAzMjEsCisweDkxNTAwZjY3LAkJMHg0MDQ4N2Y5NCwKKzB4OTE2OTU2NjMsCQkweDQwNzNmMjFkLAorMHg5MTgyYWU2ZCwJCTB4NDA5ZjVhYjYsCisweDkxOWMxNzgxLAkJMHg0MGNhYjk1OCwKKzB4OTFiNTkxOWEsCQkweDQwZjYwZGZiLAorMHg5MWNmMWNiNiwJCTB4NDEyMTU4OWIsCisweDkxZThiOGQwLAkJMHg0MTRjOTkyZiwKKzB4OTIwMjY1ZTQsCQkweDQxNzdjZmIxLAorMHg5MjFjMjNlZiwJCTB4NDFhMmZjMWEsCisweDkyMzVmMmVjLAkJMHg0MWNlMWU2NSwKKzB4OTI0ZmQyZDcsCQkweDQxZjkzNjg5LAorMHg5MjY5YzNhYywJCTB4NDIyNDQ0ODEsCisweDkyODNjNTY4LAkJMHg0MjRmNDg0NSwKKzB4OTI5ZGQ4MDYsCQkweDQyN2E0MWQwLAorMHg5MmI3ZmI4MiwJCTB4NDJhNTMxMWIsCisweDkyZDIyZmQ5LAkJMHg0MmQwMTYxZSwKKzB4OTJlYzc1MDUsCQkweDQyZmFmMGQ0LAorMHg5MzA2Y2IwNCwJCTB4NDMyNWMxMzUsCisweDkzMjEzMWQxLAkJMHg0MzUwODczYywKKzB4OTMzYmE5NjgsCQkweDQzN2I0MmUxLAorMHg5MzU2MzFjNSwJCTB4NDNhNWY0MWUsCisweDkzNzBjYWU0LAkJMHg0M2QwOWFlZCwKKzB4OTM4Yjc0YzEsCQkweDQzZmIzNzQ2LAorMHg5M2E2MmY1NywJCTB4NDQyNWM5MjMsCisweDkzYzBmYWEzLAkJMHg0NDUwNTA3ZSwKKzB4OTNkYmQ2YTAsCQkweDQ0N2FjZDUwLAorMHg5M2Y2YzM0YSwJCTB4NDRhNTNmOTMsCisweDk0MTFjMDllLAkJMHg0NGNmYTc0MCwKKzB4OTQyY2NlOTYsCQkweDQ0ZmEwNDUwLAorMHg5NDQ3ZWQyZiwJCTB4NDUyNDU2YmQsCisweDk0NjMxYzY1LAkJMHg0NTRlOWU4MCwKKzB4OTQ3ZTVjMzMsCQkweDQ1NzhkYjkzLAorMHg5NDk5YWM5NSwJCTB4NDVhMzBkZjAsCisweDk0YjUwZDg3LAkJMHg0NWNkMzU4ZiwKKzB4OTRkMDdmMDUsCQkweDQ1Zjc1MjZiLAorMHg5NGVjMDEwYiwJCTB4NDYyMTY0N2QsCisweDk1MDc5Mzk0LAkJMHg0NjRiNmJiZSwKKzB4OTUyMzM2OWMsCQkweDQ2NzU2ODI4LAorMHg5NTNlZWExZSwJCTB4NDY5ZjU5YjQsCisweDk1NWFhZTE3LAkJMHg0NmM5NDA1YywKKzB4OTU3NjgyODMsCQkweDQ2ZjMxYzFhLAorMHg5NTkyNjc1YywJCTB4NDcxY2VjZTcsCisweDk1YWU1YzlmLAkJMHg0NzQ2YjJiYywKKzB4OTVjYTYyNDcsCQkweDQ3NzA2ZDkzLAorMHg5NWU2Nzg1MCwJCTB4NDc5YTFkNjcsCisweDk2MDI5ZWI2LAkJMHg0N2MzYzIyZiwKKzB4OTYxZWQ1NzQsCQkweDQ3ZWQ1YmU2LAorMHg5NjNiMWM4NiwJCTB4NDgxNmVhODYsCisweDk2NTc3M2U3LAkJMHg0ODQwNmUwOCwKKzB4OTY3M2RiOTQsCQkweDQ4NjllNjY1LAorMHg5NjkwNTM4OCwJCTB4NDg5MzUzOTcsCisweDk2YWNkYmJlLAkJMHg0OGJjYjU5OSwKKzB4OTZjOTc0MzIsCQkweDQ4ZTYwYzYyLAorMHg5NmU2MWNlMCwJCTB4NDkwZjU3ZWUsCisweDk3MDJkNWMzLAkJMHg0OTM4OTgzNiwKKzB4OTcxZjllZDcsCQkweDQ5NjFjZDMzLAorMHg5NzNjNzgxNywJCTB4NDk4YWY2ZGYsCisweDk3NTk2MTdmLAkJMHg0OWI0MTUzMywKKzB4OTc3NjViMGEsCQkweDQ5ZGQyODJhLAorMHg5NzkzNjRiNSwJCTB4NGEwNjJmYmQsCisweDk3YjA3ZTdhLAkJMHg0YTJmMmJlNiwKKzB4OTdjZGE4NTUsCQkweDRhNTgxYzllLAorMHg5N2VhZTI0MiwJCTB4NGE4MTAxZGUsCisweDk4MDgyYzNiLAkJMHg0YWE5ZGJhMiwKKzB4OTgyNTg2M2QsCQkweDRhZDJhOWUyLAorMHg5ODQyZjA0MywJCTB4NGFmYjZjOTgsCisweDk4NjA2YTQ5LAkJMHg0YjI0MjNiZSwKKzB4OTg3ZGY0NDksCQkweDRiNGNjZjRkLAorMHg5ODliOGU0MCwJCTB4NGI3NTZmNDAsCisweDk4YjkzODI4LAkJMHg0YjllMDM5MCwKKzB4OThkNmYxZmUsCQkweDRiYzY4YzM2LAorMHg5OGY0YmJiYywJCTB4NGJlZjA5MmQsCisweDk5MTI5NTVmLAkJMHg0YzE3N2E2ZSwKKzB4OTkzMDdlZTAsCQkweDRjM2ZkZmY0LAorMHg5OTRlNzgzZCwJCTB4NGM2ODM5YjcsCisweDk5NmM4MTZmLAkJMHg0YzkwODdiMSwKKzB4OTk4YTlhNzQsCQkweDRjYjhjOWRkLAorMHg5OWE4YzM0NSwJCTB4NGNlMTAwMzQsCisweDk5YzZmYmRlLAkJMHg0ZDA5MmFiMCwKKzB4OTllNTQ0M2IsCQkweDRkMzE0OTRiLAorMHg5YTAzOWM1NywJCTB4NGQ1OTViZmUsCisweDlhMjIwNDJkLAkJMHg0ZDgxNjJjNCwKKzB4OWE0MDdiYjksCQkweDRkYTk1ZDk2LAorMHg5YTVmMDJmNSwJCTB4NGRkMTRjNmUsCisweDlhN2Q5OWRlLAkJMHg0ZGY5MmY0NiwKKzB4OWE5YzQwNmUsCQkweDRlMjEwNjE3LAorMHg5YWJhZjZhMSwJCTB4NGU0OGQwZGQsCisweDlhZDliYzcxLAkJMHg0ZTcwOGY4ZiwKKzB4OWFmODkxZGIsCQkweDRlOTg0MjI5LAorMHg5YjE3NzZkYSwJCTB4NGViZmU4YTUsCisweDliMzY2YjY4LAkJMHg0ZWU3ODJmYiwKKzB4OWI1NTZmODEsCQkweDRmMGYxMTI2LAorMHg5Yjc0ODMyMCwJCTB4NGYzNjkzMjAsCisweDliOTNhNjQxLAkJMHg0ZjVlMDhlMywKKzB4OWJiMmQ4ZGUsCQkweDRmODU3MjY5LAorMHg5YmQyMWFmMywJCTB4NGZhY2NmYWIsCisweDliZjE2YzdhLAkJMHg0ZmQ0MjBhNCwKKzB4OWMxMGNkNzAsCQkweDRmZmI2NTRkLAorMHg5YzMwM2RjZiwJCTB4NTAyMjlkYTEsCisweDljNGZiZDkzLAkJMHg1MDQ5Yzk5OSwKKzB4OWM2ZjRjYjYsCQkweDUwNzBlOTJmLAorMHg5YzhlZWIzNCwJCTB4NTA5N2ZjNWUsCisweDljYWU5OTA3LAkJMHg1MGJmMDMxZiwKKzB4OWNjZTU2MmMsCQkweDUwZTVmZDZkLAorMHg5Y2VlMjI5YywJCTB4NTEwY2ViNDAsCisweDlkMGRmZTU0LAkJMHg1MTMzY2M5NCwKKzB4OWQyZGU5NGQsCQkweDUxNWFhMTYyLAorMHg5ZDRkZTM4NSwJCTB4NTE4MTY5YTUsCisweDlkNmRlY2Y0LAkJMHg1MWE4MjU1NSwKKzB4OWQ4ZTA1OTcsCQkweDUxY2VkNDZlLAorMHg5ZGFlMmQ2OCwJCTB4NTFmNTc2ZWEsCisweDlkY2U2NDYzLAkJMHg1MjFjMGNjMiwKKzB4OWRlZWFhODIsCQkweDUyNDI5NWYwLAorMHg5ZTBlZmZjMSwJCTB4NTI2OTEyNmUsCisweDllMmY2NDFiLAkJMHg1MjhmODIzOCwKKzB4OWU0ZmQ3OGEsCQkweDUyYjVlNTQ2LAorMHg5ZTcwNWEwOSwJCTB4NTJkYzNiOTIsCisweDllOTBlYjk0LAkJMHg1MzAyODUxOCwKKzB4OWViMThjMjYsCQkweDUzMjhjMWQwLAorMHg5ZWQyM2JiOSwJCTB4NTM0ZWYxYjUsCisweDllZjJmYTQ5LAkJMHg1Mzc1MTRjMiwKKzB4OWYxM2M3ZDAsCQkweDUzOWIyYWYwLAorMHg5ZjM0YTQ0OSwJCTB4NTNjMTM0MzksCisweDlmNTU4ZmIwLAkJMHg1M2U3MzA5NywKKzB4OWY3Njg5ZmYsCQkweDU0MGQyMDA1LAorMHg5Zjk3OTMzMSwJCTB4NTQzMzAyN2QsCisweDlmYjhhYjQxLAkJMHg1NDU4ZDdmOSwKKzB4OWZkOWQyMmEsCQkweDU0N2VhMDczLAorMHg5ZmZiMDdlNywJCTB4NTRhNDViZTYsCisweGEwMWM0YzczLAkJMHg1NGNhMGE0YiwKKzB4YTAzZDlmYzgsCQkweDU0ZWZhYjljLAorMHhhMDVmMDFlMSwJCTB4NTUxNTNmZDQsCisweGEwODA3MmJhLAkJMHg1NTNhYzZlZSwKKzB4YTBhMWYyNGQsCQkweDU1NjA0MGUyLAorMHhhMGMzODA5NSwJCTB4NTU4NWFkYWQsCisweGEwZTUxZDhjLAkJMHg1NWFiMGQ0NiwKKzB4YTEwNmM5MmYsCQkweDU1ZDA1ZmFhLAorMHhhMTI4ODM3NiwJCTB4NTVmNWE0ZDIsCisweGExNGE0YzVlLAkJMHg1NjFhZGNiOSwKKzB4YTE2YzIzZTEsCQkweDU2NDAwNzU4LAorMHhhMThlMDlmYSwJCTB4NTY2NTI0YWEsCisweGExYWZmZWEzLAkJMHg1NjhhMzRhOSwKKzB4YTFkMjAxZDcsCQkweDU2YWYzNzUwLAorMHhhMWY0MTM5MiwJCTB4NTZkNDJjOTksCisweGEyMTYzM2NkLAkJMHg1NmY5MTQ3ZSwKKzB4YTIzODYyODQsCQkweDU3MWRlZWZhLAorMHhhMjVhOWZiMSwJCTB4NTc0MmJjMDYsCisweGEyN2NlYjRmLAkJMHg1NzY3N2I5ZCwKKzB4YTI5ZjQ1NTksCQkweDU3OGMyZGJhLAorMHhhMmMxYWRjOSwJCTB4NTdiMGQyNTYsCisweGEyZTQyNDliLAkJMHg1N2Q1Njk2ZCwKKzB4YTMwNmE5YzgsCQkweDU3ZjlmMmY4LAorMHhhMzI5M2Q0YiwJCTB4NTgxZTZlZjEsCisweGEzNGJkZjIwLAkJMHg1ODQyZGQ1NCwKKzB4YTM2ZThmNDEsCQkweDU4NjczZTFiLAorMHhhMzkxNGRhOCwJCTB4NTg4YjkxNDAsCisweGEzYjQxYTUwLAkJMHg1OGFmZDZiZCwKKzB4YTNkNmY1MzQsCQkweDU4ZDQwZThjLAorMHhhM2Y5ZGU0ZSwJCTB4NThmODM4YTksCisweGE0MWNkNTk5LAkJMHg1OTFjNTUwZSwKKzB4YTQzZmRiMTAsCQkweDU5NDA2M2I1LAorMHhhNDYyZWVhYywJCTB4NTk2NDY0OTgsCisweGE0ODYxMDZhLAkJMHg1OTg4NTdiMiwKKzB4YTRhOTQwNDMsCQkweDU5YWMzY2ZkLAorMHhhNGNjN2UzMiwJCTB4NTlkMDE0NzUsCisweGE0ZWZjYTMxLAkJMHg1OWYzZGUxMiwKKzB4YTUxMzI0M2IsCQkweDVhMTc5OWQxLAorMHhhNTM2OGM0YiwJCTB4NWEzYjQ3YWIsCisweGE1NWEwMjViLAkJMHg1YTVlZTc5YSwKKzB4YTU3ZDg2NjYsCQkweDVhODI3OTlhCit9OworCisvKkVuZCBvZiBGaWxlKi8KZGlmZiAtLWdpdCBhL2RsL2FybV9mZnQuZ3lwIGIvZGwvYXJtX2ZmdC5neXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmI3Mzg2ZgotLS0gL2Rldi9udWxsCisrKyBiL2RsL2FybV9mZnQuZ3lwCkBAIC0wLDAgKzEsODAgQEAKKyMgIENvcHlyaWdodCAoYykgMjAxMyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMKKyMgIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyMgIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorIyAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorIyAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorIyAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisKK3sKKyAgJ3ZhcmlhYmxlcycgOiB7CisgICAgIyBPdmVycmlkZSB0aGlzIHZhbHVlIHRvIGJ1aWxkIHdpdGggc21hbGwgZmxvYXQgRkZUIHRhYmxlcworICAgICdiaWdfZmxvYXRfZmZ0JScgOiAxLAorICB9LAorICAndGFyZ2V0cyc6IFsKKyAgICB7CisgICAgICAndGFyZ2V0X25hbWUnOiAnYXJtX2ZmdCcsCisgICAgICAndHlwZSc6ICdzdGF0aWNfbGlicmFyeScsCisgICAgICAnc291cmNlcyc6IFsKKyAgICAgICAgJ2FybUNPTU0uaCcsCisgICAgICAgICdhcm1DT01NX3MuaCcsCisgICAgICAgICdhcm1PTVguaCcsCisgICAgICAgICdhcm1TUC5oJywKKyAgICAgICAgJ29teFNQLmgnLAorICAgICAgICAnb214dHlwZXMuaCcsCisgICAgICAgICdvbXh0eXBlc19zLmgnLAorICAgICAgICAjIENvbXBsZXggMzItYml0IGZpeGVkLXBvaW50IEZGVC4KKyAgICAgICAgJ2FybVNQX0ZGVF9TMzJUd2lkZGxlVGFibGUuYycsCisgICAgICAgICdvbXhTUF9GRlRHZXRCdWZTaXplX0NfU0MzMi5jJywKKyAgICAgICAgJ29teFNQX0ZGVEluaXRfQ19TQzMyLmMnLAorICAgICAgICAnYXJtU1BfRkZUX0NUb0NfU0MzMl9SYWRpeDJfZnNfdW5zYWZlX3MuUycsCisgICAgICAgICdhcm1TUF9GRlRfQ1RvQ19TQzMyX1JhZGl4Ml9sc191bnNhZmVfcy5TJywKKyAgICAgICAgJ2FybVNQX0ZGVF9DVG9DX1NDMzJfUmFkaXgyX2ZzX3Vuc2FmZV9zLlMnLAorICAgICAgICAnYXJtU1BfRkZUX0NUb0NfU0MzMl9SYWRpeDRfZnNfdW5zYWZlX3MuUycsCisgICAgICAgICdhcm1TUF9GRlRfQ1RvQ19TQzMyX1JhZGl4NF9sc191bnNhZmVfcy5TJywKKyAgICAgICAgJ2FybVNQX0ZGVF9DVG9DX1NDMzJfUmFkaXgyX3Vuc2FmZV9zLlMnLAorICAgICAgICAnYXJtU1BfRkZUX0NUb0NfU0MzMl9SYWRpeDRfdW5zYWZlX3MuUycsCisgICAgICAgICdhcm1TUF9GRlRfQ1RvQ19TQzMyX1JhZGl4OF9mc191bnNhZmVfcy5TJywKKyAgICAgICAgJ29teFNQX0ZGVEludl9DVG9DX1NDMzJfU2ZzX3MuUycsCisgICAgICAgICdvbXhTUF9GRlRGd2RfQ1RvQ19TQzMyX1Nmc19zLlMnLAorICAgICAgICAjIFJlYWwgMzItYml0IGZpeGVkLXBvaW50IEZGVAorICAgICAgICAnYXJtU1BfRkZUSW52X0NDU1RvUl9TMzJfcHJlVHdpZGRsZVJhZGl4Ml91bnNhZmVfcy5TJywKKyAgICAgICAgJ29teFNQX0ZGVEZ3ZF9SVG9DQ1NfUzMyX1Nmc19zLlMnLAorICAgICAgICAnb214U1BfRkZUR2V0QnVmU2l6ZV9SX1MzMi5jJywKKyAgICAgICAgJ29teFNQX0ZGVEluaXRfUl9TMzIuYycsCisgICAgICAgICdvbXhTUF9GRlRJbnZfQ0NTVG9SX1MzMl9TZnNfcy5TJywKKyAgICAgICAgIyBSZWFsIDE2LWJpdCBmaXhlZC1wb2ludCBGRlQKKyAgICAgICAgJ29teFNQX0ZGVEZ3ZF9SVG9DQ1NfUzE2UzMyX1Nmc19zLlMnLAorICAgICAgICAnb214U1BfRkZUR2V0QnVmU2l6ZV9SX1MxNlMzMi5jJywKKyAgICAgICAgJ29teFNQX0ZGVEluaXRfUl9TMTZTMzIuYycsCisgICAgICAgICdvbXhTUF9GRlRJbnZfQ0NTVG9SX1MzMlMxNl9TZnNfcy5TJywKKyAgICAgICAgIyBDb21wbGV4IGZsb2F0aW5nLXBvaW50IEZGVAorICAgICAgICAnYXJtU1BfRkZUX0NUb0NfRkMzMl9SYWRpeDJfZnNfdW5zYWZlX3MuUycsCisgICAgICAgICdhcm1TUF9GRlRfQ1RvQ19GQzMyX1JhZGl4Ml9sc191bnNhZmVfcy5TJywKKyAgICAgICAgJ2FybVNQX0ZGVF9DVG9DX0ZDMzJfUmFkaXgyX2ZzX3Vuc2FmZV9zLlMnLAorICAgICAgICAnYXJtU1BfRkZUX0NUb0NfRkMzMl9SYWRpeDRfZnNfdW5zYWZlX3MuUycsCisgICAgICAgICdhcm1TUF9GRlRfQ1RvQ19GQzMyX1JhZGl4NF9sc191bnNhZmVfcy5TJywKKyAgICAgICAgJ2FybVNQX0ZGVF9DVG9DX0ZDMzJfUmFkaXgyX3Vuc2FmZV9zLlMnLAorICAgICAgICAnYXJtU1BfRkZUX0NUb0NfRkMzMl9SYWRpeDRfdW5zYWZlX3MuUycsCisgICAgICAgICdhcm1TUF9GRlRfQ1RvQ19GQzMyX1JhZGl4OF9mc191bnNhZmVfcy5TJywKKyAgICAgICAgJ2FybVNQX0ZGVF9GMzJUd2lkZGxlVGFibGUuYycsCisgICAgICAgICdvbXhTUF9GRlRHZXRCdWZTaXplX0NfRkMzMi5jJywKKyAgICAgICAgJ29teFNQX0ZGVEluaXRfQ19GQzMyLmMnLAorICAgICAgICAnb214U1BfRkZUSW52X0NUb0NfRkMzMl9TZnNfcy5TJywKKyAgICAgICAgJ29teFNQX0ZGVEZ3ZF9DVG9DX0ZDMzJfU2ZzX3MuUycsCisgICAgICAgICMgUmVhbCBmbG9hdGluZy1wb2ludCBGRlQKKyAgICAgICAgJ2FybVNQX0ZGVEludl9DQ1NUb1JfRjMyX3ByZVR3aWRkbGVSYWRpeDJfdW5zYWZlX3MuUycsCisgICAgICAgICdvbXhTUF9GRlRGd2RfUlRvQ0NTX0YzMl9TZnNfcy5TJywKKyAgICAgICAgJ29teFNQX0ZGVEdldEJ1ZlNpemVfUl9GMzIuYycsCisgICAgICAgICdvbXhTUF9GRlRJbml0X1JfRjMyLmMnLAorICAgICAgICAnb214U1BfRkZUSW52X0NDU1RvUl9GMzJfU2ZzX3MuUycsCisgICAgICBdLAorICAgICAgJ2NvbmRpdGlvbnMnIDogWworICAgICAgICBbJ2JpZ19mbG9hdF9mZnQgPT0gMScsIHsKKyAgICAgICAgICAnZGVmaW5lcyc6IFsKKyAgICAgICAgICAgICdCSUdfRkZUX1RBQkxFJywKKyAgICAgICAgICBdLAorICAgICAgICB9XSwKKyAgICAgIF0sCisgIH1dCit9CmRpZmYgLS1naXQgYS9kbC9vbXhTUC5oIGIvZGwvb214U1AuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMGFkOWNiCi0tLSAvZGV2L251bGwKKysrIGIvZGwvb214U1AuaApAQCAtMCwwICsxLDIyOTkgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqCisgKiAgVGhpcyBmaWxlIHdhcyBvcmlnaW5hbGx5IGxpY2Vuc2VkIGFzIGZvbGxvd3MuIEl0IGhhcyBiZWVuCisgKiAgcmVsaWNlbnNlZCB3aXRoIHBlcm1pc3Npb24gZnJvbSB0aGUgY29weXJpZ2h0IGhvbGRlcnMuCisgKi8KKworLyoqCisgKiBGaWxlOiBvbXhTUC5oCisgKiBCcmllZjogT3Blbk1BWCBETCB2MS4wLjIgLSBTaWduYWwgUHJvY2Vzc2luZyBsaWJyYXJ5CisgKgorICogQ29weXJpZ2h0IDIwMDUtMjAwOCBUaGUgS2hyb25vcyBHcm91cCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlc2UgbWF0ZXJpYWxzIGFyZSBwcm90ZWN0ZWQgYnkgY29weXJpZ2h0IGxhd3MgYW5kIGNvbnRhaW4gbWF0ZXJpYWwgCisgKiBwcm9wcmlldGFyeSB0byB0aGUgS2hyb25vcyBHcm91cCwgSW5jLiAgWW91IG1heSB1c2UgdGhlc2UgbWF0ZXJpYWxzIAorICogZm9yIGltcGxlbWVudGluZyBLaHJvbm9zIHNwZWNpZmljYXRpb25zLCB3aXRob3V0IGFsdGVyaW5nIG9yIHJlbW92aW5nIAorICogYW55IHRyYWRlbWFyaywgY29weXJpZ2h0IG9yIG90aGVyIG5vdGljZSBmcm9tIHRoZSBzcGVjaWZpY2F0aW9uLgorICogCisgKiBLaHJvbm9zIEdyb3VwIG1ha2VzIG5vLCBhbmQgZXhwcmVzc2x5IGRpc2NsYWltcyBhbnksIHJlcHJlc2VudGF0aW9ucyAKKyAqIG9yIHdhcnJhbnRpZXMsIGV4cHJlc3Mgb3IgaW1wbGllZCwgcmVnYXJkaW5nIHRoZXNlIG1hdGVyaWFscywgaW5jbHVkaW5nLCAKKyAqIHdpdGhvdXQgbGltaXRhdGlvbiwgYW55IGltcGxpZWQgd2FycmFudGllcyBvZiBtZXJjaGFudGFiaWxpdHkgb3IgZml0bmVzcyAKKyAqIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZSBvciBub24taW5mcmluZ2VtZW50IG9mIGFueSBpbnRlbGxlY3R1YWwgcHJvcGVydHkuIAorICogS2hyb25vcyBHcm91cCBtYWtlcyBubywgYW5kIGV4cHJlc3NseSBkaXNjbGFpbXMgYW55LCB3YXJyYW50aWVzLCBleHByZXNzIAorICogb3IgaW1wbGllZCwgcmVnYXJkaW5nIHRoZSBjb3JyZWN0bmVzcywgYWNjdXJhY3ksIGNvbXBsZXRlbmVzcywgdGltZWxpbmVzcywgCisgKiBhbmQgcmVsaWFiaWxpdHkgb2YgdGhlc2UgbWF0ZXJpYWxzLiAKKyAqCisgKiBVbmRlciBubyBjaXJjdW1zdGFuY2VzIHdpbGwgdGhlIEtocm9ub3MgR3JvdXAsIG9yIGFueSBvZiBpdHMgUHJvbW90ZXJzLCAKKyAqIENvbnRyaWJ1dG9ycyBvciBNZW1iZXJzIG9yIHRoZWlyIHJlc3BlY3RpdmUgcGFydG5lcnMsIG9mZmljZXJzLCBkaXJlY3RvcnMsIAorICogZW1wbG95ZWVzLCBhZ2VudHMgb3IgcmVwcmVzZW50YXRpdmVzIGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMsIHdoZXRoZXIgCisgKiBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsIG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBmb3IgbG9zdCByZXZlbnVlcywgCisgKiBsb3N0IHByb2ZpdHMsIG9yIG90aGVyd2lzZSwgYXJpc2luZyBmcm9tIG9yIGluIGNvbm5lY3Rpb24gd2l0aCB0aGVzZSAKKyAqIG1hdGVyaWFscy4KKyAqIAorICogS2hyb25vcyBhbmQgT3Blbk1BWCBhcmUgdHJhZGVtYXJrcyBvZiB0aGUgS2hyb25vcyBHcm91cCBJbmMuIAorICoKKyAqLworCisvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBfT01YU1BfSF8KKyNkZWZpbmUgX09NWFNQX0hfCisKKyNpbmNsdWRlICJvbXh0eXBlcy5oIgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKworLyogMi4xIFZlbmRvci1TcGVjaWZpYyBGRlQgRGF0YSBTdHJ1Y3R1cmVzICovCisgdHlwZWRlZiB2b2lkIE9NWEZGVFNwZWNfQ19TQzE2OworIHR5cGVkZWYgdm9pZCBPTVhGRlRTcGVjX0NfU0MzMjsKKyB0eXBlZGVmIHZvaWQgT01YRkZUU3BlY19SX1MxNlMzMjsKKyB0eXBlZGVmIHZvaWQgT01YRkZUU3BlY19SX1MzMjsKKyB0eXBlZGVmIHZvaWQgT01YRkZUU3BlY19SX0YzMjsKKyB0eXBlZGVmIHZvaWQgT01YRkZUU3BlY19DX0ZDMzI7CisKKy8qKgorICogRnVuY3Rpb246ICBvbXhTUF9Db3B5X1MxNiAgICgyLjIuMS4xLjEpCisgKgorICogRGVzY3JpcHRpb246CisgKiBDb3BpZXMgdGhlIGxlbiBlbGVtZW50cyBvZiB0aGUgdmVjdG9yIHBvaW50ZWQgdG8gYnkgcFNyY2ludG8gdGhlIGxlbiAKKyAqIGVsZW1lbnRzIG9mIHRoZSB2ZWN0b3IgcG9pbnRlZCB0byBieSBwRHN0LiBUaGF0IGlzOiAKKyAqICAgICBwRHN0W2ldID0gcFNyY1tpXSwgZm9yIChpPTAsIDEsIC4uLiwgbGVuLTEpCisgKgorICogSW5wdXQgQXJndW1lbnRzOgorICogICAKKyAqICAgcFNyYyAtIHBvaW50ZXIgdG8gdGhlIHNvdXJjZSB2ZWN0b3IgCisgKiAgIGxlbiAtIG51bWJlciBvZiBlbGVtZW50cyBjb250YWluZWQgaW4gdGhlIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gdmVjdG9ycyAKKyAqCisgKiBPdXRwdXQgQXJndW1lbnRzOgorICogICAKKyAqICAgcERzdCAtIHBvaW50ZXIgdG8gdGhlIGRlc3RpbmF0aW9uIHZlY3RvciAKKyAqCisgKiBSZXR1cm4gVmFsdWU6CisgKiAgICAKKyAqICAgIE9NWF9TdHNfTm9FcnIgLSBubyBlcnJvciAKKyAqICAgIE9NWF9TdHNfQmFkQXJnRXJyIC0gYmFkIGFyZ3VtZW50cyBkZXRlY3RlZDsgcmV0dXJuZWQgaWYgb25lIG9yIG1vcmUgb2YgCisgKiAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBpcyB0cnVlOiAKKyAqICAgIC0gICBwU3JjIG9yIHBEc3QgaXMgTlVMTCAKKyAqICAgIC0gICBsZW4gPCAwIAorICoKKyAqLworT01YUmVzdWx0IG9teFNQX0NvcHlfUzE2ICgKKyAgICBjb25zdCBPTVhfUzE2ICpwU3JjLAorICAgIE9NWF9TMTYgKnBEc3QsCisgICAgT01YX0lOVCBsZW4KKyk7CisKKworCisvKioKKyAqIEZ1bmN0aW9uOiAgb214U1BfRG90UHJvZF9TMTYgICAoMi4yLjIuMS4xKQorICoKKyAqIERlc2NyaXB0aW9uOgorICogQ2FsY3VsYXRlcyB0aGUgZG90IHByb2R1Y3Qgb2YgdGhlIHR3byBpbnB1dCB2ZWN0b3JzLiAgVGhpcyBmdW5jdGlvbiBkb2VzIAorICogbm90IHBlcmZvcm0gc2NhbGluZy4gVGhlIGludGVybmFsIGFjY3VtdWxhdG9yIHdpZHRoIG11c3QgYmUgYXQgbGVhc3QgMzIgCisgKiBiaXRzLiAgSWYgYW55IG9mIHRoZSBwYXJ0aWFsbHkgYWNjdW11bGF0ZWQgdmFsdWVzIGV4Y2VlZHMgdGhlIHJhbmdlIG9mIGEgCisgKiBzaWduZWQgMzItYml0IGludGVnZXIgdGhlbiB0aGUgcmVzdWx0IGlzIHVuZGVmaW5lZC4gCisgKgorICogSW5wdXQgQXJndW1lbnRzOgorICogICAKKyAqICAgcFNyYzEgLSBwb2ludGVyIHRvIHRoZSBmaXJzdCBpbnB1dCB2ZWN0b3I7IG11c3QgYmUgYWxpZ25lZCBvbiBhbiA4LWJ5dGUgCisgKiAgICAgICAgICAgIGJvdW5kYXJ5LiAKKyAqICAgcFNyYzIgLSBwb2ludGVyIHRvIHRoZSBzZWNvbmQgaW5wdXQgdmVjdG9yOyBtdXN0IGJlIGFsaWduZWQgb24gYW4gOC1ieXRlIAorICogICAgICAgICAgICBib3VuZGFyeS4gCisgKiAgIGxlbiAtIGxlbmd0aCBvZiB0aGUgdmVjdG9ycyBpbiBwU3JjMSBhbmQgcFNyYzIgCisgKgorICogT3V0cHV0IEFyZ3VtZW50czoKKyAqCisgKiBSZXR1cm4gVmFsdWU6CisgKiAgICAKKyAqICAgIFRoZSBkb3QgcHJvZHVjdCByZXN1bHQgIE5vdGU6IHRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgYWN0dWFsIHJlc3VsdCAKKyAqICAgICAgICAgICAgICByYXRoZXIgdGhhbiB0aGUgc3RhbmRhcmQgT01YRXJyb3IuIAorICoKKyAqLworT01YX1MzMiBvbXhTUF9Eb3RQcm9kX1MxNiAoCisgICAgY29uc3QgT01YX1MxNiAqcFNyYzEsCisgICAgY29uc3QgT01YX1MxNiAqcFNyYzIsCisgICAgT01YX0lOVCBsZW4KKyk7CisKKworCisvKioKKyAqIEZ1bmN0aW9uOiAgb214U1BfRG90UHJvZF9TMTZfU2ZzICAgKDIuMi4yLjEuMikKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIENhbGN1bGF0ZXMgdGhlIGRvdCBwcm9kdWN0IG9mIHRoZSB0d28gaW5wdXQgc2lnbmFscyB3aXRoIG91dHB1dCBzY2FsaW5nIAorICogYW5kIHNhdHVyYXRpb24sIGkuZS4sIHRoZSByZXN1bHQgaXMgbXVsdGlwbGllZCBieSB0d28gdG8gdGhlIHBvd2VyIG9mIHRoZSAKKyAqIG5lZ2F0aXZlICgtKXNjYWxlZmFjdG9yIChzY2FsZWQpIHByaW9yIHRvIHJldHVybi4gIFRoZSByZXN1bHQgaXMgc2F0dXJhdGVkIAorICogd2l0aCByb3VuZGluZyBpZiB0aGUgc2NhbGluZyBvcGVyYXRpb24gcHJvZHVjZXMgYSB2YWx1ZSBvdXRzaWRlIHRoZSByYW5nZSAKKyAqIG9mIGEgc2lnbmVkIDMyLWJpdCBpbnRlZ2VyLiBSb3VuZGluZyBiZWhhdmlvciBpcyBkZWZpbmVkIGluIHNlY3Rpb24gMS42LjcgCisgKiBJbnRlZ2VyIFNjYWxpbmcgYW5kIFJvdW5kaW5nIENvbnZlbnRpb25zLiBUaGUgaW50ZXJuYWwgYWNjdW11bGF0b3Igd2lkdGggCisgKiBtdXN0IGJlIGF0IGxlYXN0IDMyIGJpdHMuIFRoZSByZXN1bHQgaXMgdW5kZWZpbmVkIGlmIGFueSBvZiB0aGUgcGFydGlhbGx5IAorICogYWNjdW11bGF0ZWQgdmFsdWVzIGV4Y2VlZHMgdGhlIHJhbmdlIG9mIGEgc2lnbmVkIDMyLWJpdCBpbnRlZ2VyLiAKKyAqCisgKiBJbnB1dCBBcmd1bWVudHM6CisgKiAgIAorICogICBwU3JjMSAtIHBvaW50ZXIgdG8gdGhlIGZpcnN0IGlucHV0IHZlY3RvcjsgbXVzdCBiZSBhbGlnbmVkIG9uIGFuIDgtYnl0ZSAKKyAqICAgICAgICAgICAgYm91bmRhcnkuIAorICogICBwU3JjMiAtIHBvaW50ZXIgdG8gdGhlIHNlY29uZCBpbnB1dCB2ZWN0b3I7IG11c3QgYmUgYWxpZ25lZCBvbiBhbiA4LWJ5dGUgCisgKiAgICAgICAgICAgIGJvdW5kYXJ5LiAKKyAqICAgbGVuIC0gbGVuZ3RoIG9mIHRoZSB2ZWN0b3JzIGluIHBTcmMxIGFuZCBwU3JjMiAKKyAqICAgc2NhbGVGYWN0b3IgLSBpbnRlZ2VyIHNjYWxlZmFjdG9yIAorICoKKyAqIE91dHB1dCBBcmd1bWVudHM6CisgKgorICogUmV0dXJuIFZhbHVlOgorICogICAgCisgKiAgICBUaGUgZG90IHByb2R1Y3QgcmVzdWx0ICBOb3RlOiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGFjdHVhbCByZXN1bHQgCisgKiAgICAgICAgICAgICAgcmF0aGVyIHRoYW4gdGhlIHN0YW5kYXJkIE9NWEVycm9yLiAKKyAqCisgKi8KK09NWF9TMzIgb214U1BfRG90UHJvZF9TMTZfU2ZzICgKKyAgICBjb25zdCBPTVhfUzE2ICpwU3JjMSwKKyAgICBjb25zdCBPTVhfUzE2ICpwU3JjMiwKKyAgICBPTVhfSU5UIGxlbiwKKyAgICBPTVhfSU5UIHNjYWxlRmFjdG9yCispOworCisKKworLyoqCisgKiBGdW5jdGlvbjogIG9teFNQX0Jsb2NrRXhwX1MxNiAgICgyLjIuMi4yLjIpCisgKgorICogRGVzY3JpcHRpb246CisgKiBCbG9jayBleHBvbmVudCBjYWxjdWxhdGlvbiBmb3IgMTYtYml0IGFuZCAzMi1iaXQgc2lnbmFscyAoY291bnQgbGVhZGluZyAKKyAqIHNpZ24gYml0cykuIFRoZXNlIGZ1bmN0aW9ucyBjb21wdXRlIHRoZSBudW1iZXIgb2YgZXh0cmEgc2lnbiBiaXRzIG9mIGFsbCAKKyAqIHZhbHVlcyBpbiB0aGUgMTYtYml0IGFuZCAzMi1iaXQgaW5wdXQgdmVjdG9yIHBTcmMgYW5kIHJldHVybiB0aGUgbWluaW11bSAKKyAqIHNpZ24gYml0IGNvdW50LiBUaGlzIGlzIGFsc28gdGhlIG1heGltdW0gc2hpZnQgdmFsdWUgdGhhdCBjb3VsZCBiZSB1c2VkIGluIAorICogc2NhbGluZyB0aGUgYmxvY2sgb2YgZGF0YS4gIFRoZSBmdW5jdGlvbnMgQmxvY2tFeHBfUzE2IGFuZCAKKyAqIEJsb2NrRXhwX1MzMiByZXR1cm4gdGhlIHZhbHVlcyAxNSBhbmQgMzEsIHJlc3BlY3RpdmVseSwgZm9yIGlucHV0IHZlY3RvcnMgaW4gCisgKiB3aGljaCBhbGwgZW50cmllcyBhcmUgZXF1YWwgdG8gemVyby4gIAorICoKKyAqIE5vdGU6IFRoZXNlIGZ1bmN0aW9ucyBkaWZmZXIgZnJvbSBvdGhlciBETCBmdW5jdGlvbnMgYnkgbm90IHJldHVybmluZyB0aGUgCisgKiAgICAgICBzdGFuZGFyZCBPTVhFcnJvciBidXQgdGhlIGFjdHVhbCByZXN1bHQuIAorICoKKyAqIElucHV0IEFyZ3VtZW50czoKKyAqICAgCisgKiAgIHBTcmMgLSBwb2ludGVyIHRvIHRoZSBpbnB1dCB2ZWN0b3IgCisgKiAgIGxlbiAtIG51bWJlciBvZiBlbGVtZW50cyBjb250YWluZWQgaW4gdGhlIGlucHV0IGFuZCBvdXRwdXQgCisgKiAgICAgICAgIHZlY3RvcnMgKDAgPCBsZW4gPCA2NTUzNikgCisgKgorICogT3V0cHV0IEFyZ3VtZW50czoKKyAqICAgCisgKiAgIG5vbmUgCisgKgorICogUmV0dXJuIFZhbHVlOgorICogICAgCisgKiAgICBNYXhpbXVtIGV4cG9uZW50IHRoYXQgbWF5IGJlIHVzZWQgaW4gc2NhbGluZyAKKyAqCisgKi8KK09NWF9JTlQgb214U1BfQmxvY2tFeHBfUzE2ICgKKyAgICBjb25zdCBPTVhfUzE2ICpwU3JjLAorICAgIE9NWF9JTlQgbGVuCispOworCisKKworLyoqCisgKiBGdW5jdGlvbjogIG9teFNQX0Jsb2NrRXhwX1MzMiAgICgyLjIuMi4yLjIpCisgKgorICogRGVzY3JpcHRpb246CisgKiBCbG9jayBleHBvbmVudCBjYWxjdWxhdGlvbiBmb3IgMTYtYml0IGFuZCAzMi1iaXQgc2lnbmFscyAoY291bnQgbGVhZGluZyAKKyAqIHNpZ24gYml0cykuIFRoZXNlIGZ1bmN0aW9ucyBjb21wdXRlIHRoZSBudW1iZXIgb2YgZXh0cmEgc2lnbiBiaXRzIG9mIGFsbCAKKyAqIHZhbHVlcyBpbiB0aGUgMTYtYml0IGFuZCAzMi1iaXQgaW5wdXQgdmVjdG9yIHBTcmMgYW5kIHJldHVybiB0aGUgbWluaW11bSAKKyAqIHNpZ24gYml0IGNvdW50LiBUaGlzIGlzIGFsc28gdGhlIG1heGltdW0gc2hpZnQgdmFsdWUgdGhhdCBjb3VsZCBiZSB1c2VkIGluIAorICogc2NhbGluZyB0aGUgYmxvY2sgb2YgZGF0YS4gIFRoZSBmdW5jdGlvbnMgQmxvY2tFeHBfUzE2IGFuZCAKKyAqIEJsb2NrRXhwX1MzMiByZXR1cm4gdGhlIHZhbHVlcyAxNSBhbmQgMzEsIHJlc3BlY3RpdmVseSwgZm9yIGlucHV0IHZlY3RvcnMgaW4gCisgKiB3aGljaCBhbGwgZW50cmllcyBhcmUgZXF1YWwgdG8gemVyby4gIAorICogCisgKiBOb3RlOiBUaGVzZSBmdW5jdGlvbnMgZGlmZmVyIGZyb20gb3RoZXIgREwgZnVuY3Rpb25zIGJ5IG5vdCByZXR1cm5pbmcgdGhlIAorICogICAgICAgc3RhbmRhcmQgT01YRXJyb3IgYnV0IHRoZSBhY3R1YWwgcmVzdWx0LiAKKyAqCisgKiBJbnB1dCBBcmd1bWVudHM6CisgKiAgIAorICogICBwU3JjIC0gcG9pbnRlciB0byB0aGUgaW5wdXQgdmVjdG9yIAorICogICBsZW4gLSBudW1iZXIgb2YgZWxlbWVudHMgY29udGFpbmVkIGluIHRoZSBpbnB1dCBhbmQgb3V0cHV0IAorICogICAgICAgICB2ZWN0b3JzICgwIDwgbGVuIDwgNjU1MzYpIAorICoKKyAqIE91dHB1dCBBcmd1bWVudHM6CisgKiAgIAorICogICBub25lIAorICoKKyAqIFJldHVybiBWYWx1ZToKKyAqICAgIAorICogICAgTWF4aW11bSBleHBvbmVudCB0aGF0IG1heSBiZSB1c2VkIGluIHNjYWxpbmcgCisgKgorICovCitPTVhfSU5UIG9teFNQX0Jsb2NrRXhwX1MzMiAoCisgICAgY29uc3QgT01YX1MzMiAqcFNyYywKKyAgICBPTVhfSU5UIGxlbgorKTsKKworCisKKy8qKgorICogRnVuY3Rpb246ICBvbXhTUF9GSVJfRGlyZWN0X1MxNiAgICgyLjIuMy4xLjEpCisgKgorICogRGVzY3JpcHRpb246CisgKiBCbG9jayBGSVIgZmlsdGVyaW5nIGZvciAxNi1iaXQgZGF0YSB0eXBlLiAgVGhpcyBmdW5jdGlvbiBhcHBsaWVzIHRoZSAKKyAqIEZJUiBmaWx0ZXIgZGVmaW5lZCBieSB0aGUgY29lZmZpY2llbnQgdmVjdG9yIHBUYXBzUTE1IHRvIGEgdmVjdG9yIG9mIAorICogaW5wdXQgZGF0YS4gIFRoZSByZXN1bHQgaXMgc2F0dXJhdGVkIHdpdGggcm91bmRpbmcgaWYgdGhlIG9wZXJhdGlvbiAKKyAqIHByb2R1Y2VzIGEgdmFsdWUgb3V0c2lkZSB0aGUgcmFuZ2Ugb2YgYSBzaWduZWQgMTYtYml0IGludGVnZXIuICAKKyAqIFJvdW5kaW5nIGJlaGF2aW9yIGlzIGRlZmluZWQgaW46CisgKiAgICAgc2VjdGlvbiAxLjYuNyAiSW50ZWdlciBTY2FsaW5nIGFuZCBSb3VuZGluZyBDb252ZW50aW9ucyIuICAKKyAqIFRoZSBpbnRlcm5hbCBhY2N1bXVsYXRvciB3aWR0aCBtdXN0IGJlIGF0IGxlYXN0IDMyIGJpdHMuICBUaGUgcmVzdWx0IAorICogaXMgdW5kZWZpbmVkIGlmIGFueSBvZiB0aGUgcGFydGlhbGx5IGFjY3VtdWxhdGVkIHZhbHVlcyBleGNlZWRzIHRoZSAKKyAqIHJhbmdlIG9mIGEgc2lnbmVkIDMyLWJpdCBpbnRlZ2VyLiAKKyAqCisgKgorICogSW5wdXQgQXJndW1lbnRzOgorICogICAKKyAqICAgcFNyYyAgIC0gcG9pbnRlciB0byB0aGUgdmVjdG9yIG9mIGlucHV0IHNhbXBsZXMgdG8gd2hpY2ggdGhlIAorICogICAgICAgICAgICBmaWx0ZXIgaXMgYXBwbGllZCAKKyAqICAgc2FtcExlbiAtIHRoZSBudW1iZXIgb2Ygc2FtcGxlcyBjb250YWluZWQgaW4gdGhlIGlucHV0IGFuZCBvdXRwdXQgCisgKiAgICAgICAgICAgIHZlY3RvcnMgCisgKiAgIHBUYXBzUTE1IC0gcG9pbnRlciB0byB0aGUgdmVjdG9yIHRoYXQgY29udGFpbnMgdGhlIGZpbHRlciBjb2VmZmljaWVudHMsIAorICogICAgICAgICAgICByZXByZXNlbnRlZCBpbiBRMC4xNSBmb3JtYXQgKGRlZmluZWQgaW4gc2VjdGlvbiAxLjYuNSkuIEdpdmVuIAorICogICAgICAgICAgICB0aGF0OgorICogICAgICAgICAgICAgICAgICAgIC0zMjc2OCA9IHBUYXBzUTE1KGspIDwgMzI3NjgsIAorICogICAgICAgICAgICAgICAgICAgICAwID0gayA8dGFwc0xlbiwgCisgKiAgICAgICAgICAgIHRoZSByYW5nZSBvbiB0aGUgYWN0dWFsIGZpbHRlciBjb2VmZmljaWVudHMgaXMgLTEgPSBiSyA8MSwgYW5kIAorICogICAgICAgICAgICB0aGVyZWZvcmUgY29lZmZpY2llbnQgbm9ybWFsaXphdGlvbiBtYXkgYmUgcmVxdWlyZWQgZHVyaW5nIHRoZSAKKyAqICAgICAgICAgICAgZmlsdGVyIGRlc2lnbiBwcm9jZXNzLiAKKyAqICAgdGFwc0xlbiAtIHRoZSBudW1iZXIgb2YgdGFwcywgb3IsIGVxdWl2YWxlbnRseSwgdGhlIGZpbHRlciBvcmRlciArIDEgCisgKiAgIHBEZWxheUxpbmUgLSBwb2ludGVyIHRvIHRoZSAyLnRhcHNMZW4gLWVsZW1lbnQgZmlsdGVyIG1lbW9yeSBidWZmZXIgCisgKiAgICAgICAgICAgIChzdGF0ZSkuIFRoZSB1c2VyIGlzIHJlc3BvbnNpYmxlIGZvciBhbGxvY2F0aW9uLCBpbml0aWFsaXphdGlvbiwgCisgKiAgICAgICAgICAgIGFuZCBkZS1hbGxvY2F0aW9uLiBUaGUgZmlsdGVyIG1lbW9yeSBlbGVtZW50cyBhcmUgaW5pdGlhbGl6ZWQgdG8gCisgKiAgICAgICAgICAgIHplcm8gaW4gbW9zdCBhcHBsaWNhdGlvbnMuIAorICogICBwRGVsYXlMaW5lSW5kZXggLSBwb2ludGVyIHRvIHRoZSBmaWx0ZXIgbWVtb3J5IGluZGV4IHRoYXQgaXMgbWFpbnRhaW5lZCAKKyAqICAgICAgICAgICAgaW50ZXJuYWxseSBieSB0aGUgZnVuY3Rpb24uIFRoZSB1c2VyIHNob3VsZCBpbml0aWFsaXplIHRoZSB2YWx1ZSAKKyAqICAgICAgICAgICAgb2YgdGhpcyBpbmRleCB0byB6ZXJvLiAKKyAqCisgKiBPdXRwdXQgQXJndW1lbnRzOgorICogICAKKyAqICAgcERzdCAgIC0gcG9pbnRlciB0byB0aGUgdmVjdG9yIG9mIGZpbHRlcmVkIG91dHB1dCBzYW1wbGVzIAorICoKKyAqIFJldHVybiBWYWx1ZToKKyAqICAgIAorICogICAgT01YX1N0c19Ob0VyciAtIG5vIGVycm9yIAorICogICAgT01YX1N0c19CYWRBcmdFcnIgLSBiYWQgYXJndW1lbnRzOyByZXR1cm5lZCBpZiBvbmUgb3IgbW9yZSBvZiB0aGUgCisgKiAgICAgICAgICAgICAgZm9sbG93aW5nIGlzIHRydWU6IAorICogICAgLSAgIE9uZSBvciBtb3JlIG9mIHRoZSBmb2xsb3dpbmcgcG9pbnRlcnMgaXMgTlVMTDogCisgKiAgICAgICAgICAtICBwU3JjLCAKKyAqICAgICAgICAgIC0gIHBEc3QsIAorICogICAgICAgICAgLSAgcFNyY0RzdCwgCisgKiAgICAgICAgICAtICBwVGFwc1ExNSwgCisgKiAgICAgICAgICAtICBwRGVsYXlMaW5lLCBvciAKKyAqICAgICAgICAgIC0gIHBEZWxheUxpbmVJbmRleCAKKyAqICAgIC0gICBzYW1wbGVuIDwgMCAKKyAqICAgIC0gICB0YXBzbGVuIDwgMSAKKyAqICAgIC0gICAqcERlbGF5TGluZUluZGV4IDwgMCBvciAqcERlbGF5TGluZUluZGV4ID49ICgyICogdGFwc2xlbikuIAorICoKKyAqLworT01YUmVzdWx0IG9teFNQX0ZJUl9EaXJlY3RfUzE2ICgKKyAgICBjb25zdCBPTVhfUzE2ICpwU3JjLAorICAgIE9NWF9TMTYgKnBEc3QsCisgICAgT01YX0lOVCBzYW1wTGVuLAorICAgIGNvbnN0IE9NWF9TMTYgKnBUYXBzUTE1LAorICAgIE9NWF9JTlQgdGFwc0xlbiwKKyAgICBPTVhfUzE2ICpwRGVsYXlMaW5lLAorICAgIE9NWF9JTlQgKnBEZWxheUxpbmVJbmRleAorKTsKKworCisKKy8qKgorICogRnVuY3Rpb246ICBvbXhTUF9GSVJfRGlyZWN0X1MxNl9JICAgKDIuMi4zLjEuMSkKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIEJsb2NrIEZJUiBmaWx0ZXJpbmcgZm9yIDE2LWJpdCBkYXRhIHR5cGUuICBUaGlzIGZ1bmN0aW9uIGFwcGxpZXMgdGhlIAorICogRklSIGZpbHRlciBkZWZpbmVkIGJ5IHRoZSBjb2VmZmljaWVudCB2ZWN0b3IgcFRhcHNRMTUgdG8gYSB2ZWN0b3Igb2YgCisgKiBpbnB1dCBkYXRhLiAgVGhlIHJlc3VsdCBpcyBzYXR1cmF0ZWQgd2l0aCByb3VuZGluZyBpZiB0aGUgb3BlcmF0aW9uIAorICogcHJvZHVjZXMgYSB2YWx1ZSBvdXRzaWRlIHRoZSByYW5nZSBvZiBhIHNpZ25lZCAxNi1iaXQgaW50ZWdlci4gIAorICogUm91bmRpbmcgYmVoYXZpb3IgaXMgZGVmaW5lZCBpbjoKKyAqICAgICBzZWN0aW9uIDEuNi43ICJJbnRlZ2VyIFNjYWxpbmcgYW5kIFJvdW5kaW5nIENvbnZlbnRpb25zIi4gIAorICogVGhlIGludGVybmFsIGFjY3VtdWxhdG9yIHdpZHRoIG11c3QgYmUgYXQgbGVhc3QgMzIgYml0cy4gIFRoZSByZXN1bHQgCisgKiBpcyB1bmRlZmluZWQgaWYgYW55IG9mIHRoZSBwYXJ0aWFsbHkgYWNjdW11bGF0ZWQgdmFsdWVzIGV4Y2VlZHMgdGhlIAorICogcmFuZ2Ugb2YgYSBzaWduZWQgMzItYml0IGludGVnZXIuIAorICoKKyAqIElucHV0IEFyZ3VtZW50czoKKyAqICAgCisgKiAgIHBTcmNEc3QgLSBwb2ludGVyIHRvIHRoZSB2ZWN0b3Igb2YgaW5wdXQgc2FtcGxlcyB0byB3aGljaCB0aGUgCisgKiAgICAgICAgICAgIGZpbHRlciBpcyBhcHBsaWVkIAorICogICBzYW1wTGVuIC0gdGhlIG51bWJlciBvZiBzYW1wbGVzIGNvbnRhaW5lZCBpbiB0aGUgaW5wdXQgYW5kIG91dHB1dCAKKyAqICAgICAgICAgICAgdmVjdG9ycyAKKyAqICAgcFRhcHNRMTUgLSBwb2ludGVyIHRvIHRoZSB2ZWN0b3IgdGhhdCBjb250YWlucyB0aGUgZmlsdGVyIGNvZWZmaWNpZW50cywgCisgKiAgICAgICAgICAgIHJlcHJlc2VudGVkIGluIFEwLjE1IGZvcm1hdCAoZGVmaW5lZCBpbiBzZWN0aW9uIDEuNi41KS4gR2l2ZW4gCisgKiAgICAgICAgICAgIHRoYXQ6CisgKiAgICAgICAgICAgICAgICAgICAgLTMyNzY4ID0gcFRhcHNRMTUoaykgPCAzMjc2OCwgCisgKiAgICAgICAgICAgICAgICAgICAgIDAgPSBrIDx0YXBzTGVuLCAKKyAqICAgICAgICAgICAgdGhlIHJhbmdlIG9uIHRoZSBhY3R1YWwgZmlsdGVyIGNvZWZmaWNpZW50cyBpcyAtMSA9IGJLIDwxLCBhbmQgCisgKiAgICAgICAgICAgIHRoZXJlZm9yZSBjb2VmZmljaWVudCBub3JtYWxpemF0aW9uIG1heSBiZSByZXF1aXJlZCBkdXJpbmcgdGhlIAorICogICAgICAgICAgICBmaWx0ZXIgZGVzaWduIHByb2Nlc3MuIAorICogICB0YXBzTGVuIC0gdGhlIG51bWJlciBvZiB0YXBzLCBvciwgZXF1aXZhbGVudGx5LCB0aGUgZmlsdGVyIG9yZGVyICsgMSAKKyAqICAgcERlbGF5TGluZSAtIHBvaW50ZXIgdG8gdGhlIDIudGFwc0xlbiAtZWxlbWVudCBmaWx0ZXIgbWVtb3J5IGJ1ZmZlciAKKyAqICAgICAgICAgICAgKHN0YXRlKS4gVGhlIHVzZXIgaXMgcmVzcG9uc2libGUgZm9yIGFsbG9jYXRpb24sIGluaXRpYWxpemF0aW9uLCAKKyAqICAgICAgICAgICAgYW5kIGRlLWFsbG9jYXRpb24uIFRoZSBmaWx0ZXIgbWVtb3J5IGVsZW1lbnRzIGFyZSBpbml0aWFsaXplZCB0byAKKyAqICAgICAgICAgICAgemVybyBpbiBtb3N0IGFwcGxpY2F0aW9ucy4gCisgKiAgIHBEZWxheUxpbmVJbmRleCAtIHBvaW50ZXIgdG8gdGhlIGZpbHRlciBtZW1vcnkgaW5kZXggdGhhdCBpcyBtYWludGFpbmVkIAorICogICAgICAgICAgICBpbnRlcm5hbGx5IGJ5IHRoZSBmdW5jdGlvbi4gVGhlIHVzZXIgc2hvdWxkIGluaXRpYWxpemUgdGhlIHZhbHVlIAorICogICAgICAgICAgICBvZiB0aGlzIGluZGV4IHRvIHplcm8uIAorICoKKyAqIE91dHB1dCBBcmd1bWVudHM6CisgKiAgIAorICogICBwU3JjRHN0IC0gcG9pbnRlciB0byB0aGUgdmVjdG9yIG9mIGZpbHRlcmVkIG91dHB1dCBzYW1wbGVzIAorICoKKyAqIFJldHVybiBWYWx1ZToKKyAqICAgIAorICogICAgT01YX1N0c19Ob0VyciAtIG5vIGVycm9yIAorICogICAgT01YX1N0c19CYWRBcmdFcnIgLSBiYWQgYXJndW1lbnRzOyByZXR1cm5lZCBpZiBvbmUgb3IgbW9yZSBvZiB0aGUgCisgKiAgICAgICAgICAgICAgZm9sbG93aW5nIGlzIHRydWU6IAorICogICAgLSAgIE9uZSBvciBtb3JlIG9mIHRoZSBmb2xsb3dpbmcgcG9pbnRlcnMgaXMgTlVMTDogCisgKiAgICAgICAgICAtICBwU3JjLCAKKyAqICAgICAgICAgIC0gIHBEc3QsIAorICogICAgICAgICAgLSAgcFNyY0RzdCwgCisgKiAgICAgICAgICAtICBwVGFwc1ExNSwgCisgKiAgICAgICAgICAtICBwRGVsYXlMaW5lLCBvciAKKyAqICAgICAgICAgIC0gIHBEZWxheUxpbmVJbmRleCAKKyAqICAgIC0gICBzYW1wbGVuIDwgMCAKKyAqICAgIC0gICB0YXBzbGVuIDwgMSAKKyAqICAgIC0gICAqcERlbGF5TGluZUluZGV4IDwgMCBvciAqcERlbGF5TGluZUluZGV4ID49ICgyICogdGFwc2xlbikuIAorICoKKyAqLworT01YUmVzdWx0IG9teFNQX0ZJUl9EaXJlY3RfUzE2X0kgKAorICAgIE9NWF9TMTYgKnBTcmNEc3QsCisgICAgT01YX0lOVCBzYW1wTGVuLAorICAgIGNvbnN0IE9NWF9TMTYgKnBUYXBzUTE1LAorICAgIE9NWF9JTlQgdGFwc0xlbiwKKyAgICBPTVhfUzE2ICpwRGVsYXlMaW5lLAorICAgIE9NWF9JTlQgKnBEZWxheUxpbmVJbmRleAorKTsKKworCisKKy8qKgorICogRnVuY3Rpb246ICBvbXhTUF9GSVJfRGlyZWN0X1MxNl9TZnMgICAoMi4yLjMuMS4xKQorICoKKyAqIERlc2NyaXB0aW9uOgorICogQmxvY2sgRklSIGZpbHRlcmluZyBmb3IgMTYtYml0IGRhdGEgdHlwZS4gVGhpcyBmdW5jdGlvbiBhcHBsaWVzIAorICogdGhlIEZJUiBmaWx0ZXIgZGVmaW5lZCBieSB0aGUgY29lZmZpY2llbnQgdmVjdG9yIHBUYXBzUTE1IHRvIGEgCisgKiB2ZWN0b3Igb2YgaW5wdXQgZGF0YS4gIFRoZSBvdXRwdXQgaXMgbXVsdGlwbGllZCBieSAyIHRvIHRoZSBuZWdhdGl2ZSAKKyAqIHBvd2VyIG9mIHNjYWxlZmFjdG9yIChpLmUuLCAyXi1zY2FsZWZhY3RvcikgYmVmb3JlIHJldHVybmluZyB0byB0aGUgY2FsbGVyLgorICogU2NhbGluZyBhbmQgcm91bmRpbmcgY29udmVudGlvbnMgYXJlIGRlZmluZWQgaW4gc2VjdGlvbiAxLjYuNy4gIAorICogVGhlIGludGVybmFsIGFjY3VtdWxhdG9yIHdpZHRoIG11c3QgYmUgYXQgbGVhc3QgMzIgYml0cy4gIAorICogVGhlIHJlc3VsdCBpcyB1bmRlZmluZWQgaWYgYW55IG9mIHRoZSBwYXJ0aWFsbHkgYWNjdW11bGF0ZWQgCisgKiB2YWx1ZXMgZXhjZWVkcyB0aGUgcmFuZ2Ugb2YgYSBzaWduZWQgMzItYml0IGludGVnZXIuIAorICoKKyAqIElucHV0IEFyZ3VtZW50czoKKyAqICAgCisgKiAgIHBTcmMgICAgLSBwb2ludGVyIHRvIHRoZSB2ZWN0b3Igb2YgaW5wdXQgc2FtcGxlcyB0byB3aGljaCB0aGUgCisgKiAgICAgICAgICAgIGZpbHRlciBpcyBhcHBsaWVkIAorICogICBzYW1wTGVuIC0gdGhlIG51bWJlciBvZiBzYW1wbGVzIGNvbnRhaW5lZCBpbiB0aGUgaW5wdXQgYW5kIG91dHB1dCAKKyAqICAgICAgICAgICAgdmVjdG9ycyAKKyAqICAgcFRhcHNRMTUgLSBwb2ludGVyIHRvIHRoZSB2ZWN0b3IgdGhhdCBjb250YWlucyB0aGUgZmlsdGVyIGNvZWZmaWNpZW50cywgCisgKiAgICAgICAgICAgIHJlcHJlc2VudGVkIGluIFEwLjE1IGZvcm1hdCAoZGVmaW5lZCBpbiBzZWN0aW9uIDEuNi41KS4gR2l2ZW4gCisgKiAgICAgICAgICAgIHRoYXQ6CisgKiAgICAgICAgICAgICAgICAgICAgLTMyNzY4ID0gcFRhcHNRMTUoaykgPCAzMjc2OCwgCisgKiAgICAgICAgICAgICAgICAgICAgIDAgPSBrIDx0YXBzTGVuLCAKKyAqICAgICAgICAgICAgdGhlIHJhbmdlIG9uIHRoZSBhY3R1YWwgZmlsdGVyIGNvZWZmaWNpZW50cyBpcyAtMSA9IGJLIDwxLCBhbmQgCisgKiAgICAgICAgICAgIHRoZXJlZm9yZSBjb2VmZmljaWVudCBub3JtYWxpemF0aW9uIG1heSBiZSByZXF1aXJlZCBkdXJpbmcgdGhlIAorICogICAgICAgICAgICBmaWx0ZXIgZGVzaWduIHByb2Nlc3MuIAorICogICB0YXBzTGVuIC0gdGhlIG51bWJlciBvZiB0YXBzLCBvciwgZXF1aXZhbGVudGx5LCB0aGUgZmlsdGVyIG9yZGVyICsgMSAKKyAqICAgcERlbGF5TGluZSAtIHBvaW50ZXIgdG8gdGhlIDIudGFwc0xlbiAtZWxlbWVudCBmaWx0ZXIgbWVtb3J5IGJ1ZmZlciAKKyAqICAgICAgICAgICAgKHN0YXRlKS4gVGhlIHVzZXIgaXMgcmVzcG9uc2libGUgZm9yIGFsbG9jYXRpb24sIGluaXRpYWxpemF0aW9uLCAKKyAqICAgICAgICAgICAgYW5kIGRlLWFsbG9jYXRpb24uIFRoZSBmaWx0ZXIgbWVtb3J5IGVsZW1lbnRzIGFyZSBpbml0aWFsaXplZCB0byAKKyAqICAgICAgICAgICAgemVybyBpbiBtb3N0IGFwcGxpY2F0aW9ucy4gCisgKiAgIHBEZWxheUxpbmVJbmRleCAtIHBvaW50ZXIgdG8gdGhlIGZpbHRlciBtZW1vcnkgaW5kZXggdGhhdCBpcyBtYWludGFpbmVkIAorICogICAgICAgICAgICBpbnRlcm5hbGx5IGJ5IHRoZSBmdW5jdGlvbi4gVGhlIHVzZXIgc2hvdWxkIGluaXRpYWxpemUgdGhlIHZhbHVlIAorICogICAgICAgICAgICBvZiB0aGlzIGluZGV4IHRvIHplcm8uIAorICogICBzY2FsZUZhY3RvciAtIHNhdHVyYXRpb24gZml4ZWQgc2NhbGVmYWN0b3IKKyAqCisgKiBPdXRwdXQgQXJndW1lbnRzOgorICogICAKKyAqICAgcERzdCAgLSBwb2ludGVyIHRvIHRoZSB2ZWN0b3Igb2YgZmlsdGVyZWQgb3V0cHV0IHNhbXBsZXMgCisgKgorICogUmV0dXJuIFZhbHVlOgorICogICAgCisgKiAgICBPTVhfU3RzX05vRXJyIC0gbm8gZXJyb3IgCisgKiAgICBPTVhfU3RzX0JhZEFyZ0VyciAtIGJhZCBhcmd1bWVudHM7IHJldHVybmVkIGlmIG9uZSBvciBtb3JlIG9mIHRoZSAKKyAqICAgICAgICAgICAgICBmb2xsb3dpbmcgaXMgdHJ1ZTogCisgKiAgICAtICAgT25lIG9yIG1vcmUgb2YgdGhlIGZvbGxvd2luZyBwb2ludGVycyBpcyBOVUxMOiAKKyAqICAgICAgICAgIC0gIHBTcmMsIAorICogICAgICAgICAgLSAgcERzdCwgCisgKiAgICAgICAgICAtICBwU3JjRHN0LCAKKyAqICAgICAgICAgIC0gIHBUYXBzUTE1LCAKKyAqICAgICAgICAgIC0gIHBEZWxheUxpbmUsIG9yIAorICogICAgICAgICAgLSAgcERlbGF5TGluZUluZGV4IAorICogICAgLSAgIHNhbXBsZW4gPCAwIAorICogICAgLSAgIHRhcHNsZW4gPCAxIAorICogICAgLSAgIHNjYWxlRmFjdG9yIDwgMCAKKyAqICAgIC0gICAqcERlbGF5TGluZUluZGV4IDwgMCBvciAqcERlbGF5TGluZUluZGV4ID49ICgyICogdGFwc2xlbikuIAorICoKKyAqLworT01YUmVzdWx0IG9teFNQX0ZJUl9EaXJlY3RfUzE2X1NmcyAoCisgICAgY29uc3QgT01YX1MxNiAqcFNyYywKKyAgICBPTVhfUzE2ICpwRHN0LAorICAgIE9NWF9JTlQgc2FtcExlbiwKKyAgICBjb25zdCBPTVhfUzE2ICpwVGFwc1ExNSwKKyAgICBPTVhfSU5UIHRhcHNMZW4sCisgICAgT01YX1MxNiAqcERlbGF5TGluZSwKKyAgICBPTVhfSU5UICpwRGVsYXlMaW5lSW5kZXgsCisgICAgT01YX0lOVCBzY2FsZUZhY3RvcgorKTsKKworCisKKy8qKgorICogRnVuY3Rpb246ICBvbXhTUF9GSVJfRGlyZWN0X1MxNl9JU2ZzICAgKDIuMi4zLjEuMSkKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIEJsb2NrIEZJUiBmaWx0ZXJpbmcgZm9yIDE2LWJpdCBkYXRhIHR5cGUuIFRoaXMgZnVuY3Rpb24gYXBwbGllcyAKKyAqIHRoZSBGSVIgZmlsdGVyIGRlZmluZWQgYnkgdGhlIGNvZWZmaWNpZW50IHZlY3RvciBwVGFwc1ExNSB0byBhIAorICogdmVjdG9yIG9mIGlucHV0IGRhdGEuICBUaGUgb3V0cHV0IGlzIG11bHRpcGxpZWQgYnkgMiB0byB0aGUgbmVnYXRpdmUgCisgKiBwb3dlciBvZiBzY2FsZWZhY3RvciAoaS5lLiwgMl4tc2NhbGVmYWN0b3IpIGJlZm9yZSByZXR1cm5pbmcgdG8gdGhlIGNhbGxlci4KKyAqIFNjYWxpbmcgYW5kIHJvdW5kaW5nIGNvbnZlbnRpb25zIGFyZSBkZWZpbmVkIGluIHNlY3Rpb24gMS42LjcuICAKKyAqIFRoZSBpbnRlcm5hbCBhY2N1bXVsYXRvciB3aWR0aCBtdXN0IGJlIGF0IGxlYXN0IDMyIGJpdHMuICAKKyAqIFRoZSByZXN1bHQgaXMgdW5kZWZpbmVkIGlmIGFueSBvZiB0aGUgcGFydGlhbGx5IGFjY3VtdWxhdGVkIAorICogdmFsdWVzIGV4Y2VlZHMgdGhlIHJhbmdlIG9mIGEgc2lnbmVkIDMyLWJpdCBpbnRlZ2VyLiAKKyAqCisgKiBJbnB1dCBBcmd1bWVudHM6CisgKiAgIAorICogICBwU3JjRHN0IC0gcG9pbnRlciB0byB0aGUgdmVjdG9yIG9mIGlucHV0IHNhbXBsZXMgdG8gd2hpY2ggdGhlIAorICogICAgICAgICAgICBmaWx0ZXIgaXMgYXBwbGllZCAKKyAqICAgc2FtcExlbiAtIHRoZSBudW1iZXIgb2Ygc2FtcGxlcyBjb250YWluZWQgaW4gdGhlIGlucHV0IGFuZCBvdXRwdXQgCisgKiAgICAgICAgICAgIHZlY3RvcnMgCisgKiAgIHBUYXBzUTE1IC0gcG9pbnRlciB0byB0aGUgdmVjdG9yIHRoYXQgY29udGFpbnMgdGhlIGZpbHRlciBjb2VmZmljaWVudHMsIAorICogICAgICAgICAgICByZXByZXNlbnRlZCBpbiBRMC4xNSBmb3JtYXQgKGRlZmluZWQgaW4gc2VjdGlvbiAxLjYuNSkuIEdpdmVuIAorICogICAgICAgICAgICB0aGF0OgorICogICAgICAgICAgICAgICAgICAgIC0zMjc2OCA9IHBUYXBzUTE1KGspIDwgMzI3NjgsIAorICogICAgICAgICAgICAgICAgICAgICAwID0gayA8dGFwc0xlbiwgCisgKiAgICAgICAgICAgIHRoZSByYW5nZSBvbiB0aGUgYWN0dWFsIGZpbHRlciBjb2VmZmljaWVudHMgaXMgLTEgPSBiSyA8MSwgYW5kIAorICogICAgICAgICAgICB0aGVyZWZvcmUgY29lZmZpY2llbnQgbm9ybWFsaXphdGlvbiBtYXkgYmUgcmVxdWlyZWQgZHVyaW5nIHRoZSAKKyAqICAgICAgICAgICAgZmlsdGVyIGRlc2lnbiBwcm9jZXNzLiAKKyAqICAgdGFwc0xlbiAtIHRoZSBudW1iZXIgb2YgdGFwcywgb3IsIGVxdWl2YWxlbnRseSwgdGhlIGZpbHRlciBvcmRlciArIDEgCisgKiAgIHBEZWxheUxpbmUgLSBwb2ludGVyIHRvIHRoZSAyLnRhcHNMZW4gLWVsZW1lbnQgZmlsdGVyIG1lbW9yeSBidWZmZXIgCisgKiAgICAgICAgICAgIChzdGF0ZSkuIFRoZSB1c2VyIGlzIHJlc3BvbnNpYmxlIGZvciBhbGxvY2F0aW9uLCBpbml0aWFsaXphdGlvbiwgCisgKiAgICAgICAgICAgIGFuZCBkZS1hbGxvY2F0aW9uLiBUaGUgZmlsdGVyIG1lbW9yeSBlbGVtZW50cyBhcmUgaW5pdGlhbGl6ZWQgdG8gCisgKiAgICAgICAgICAgIHplcm8gaW4gbW9zdCBhcHBsaWNhdGlvbnMuIAorICogICBwRGVsYXlMaW5lSW5kZXggLSBwb2ludGVyIHRvIHRoZSBmaWx0ZXIgbWVtb3J5IGluZGV4IHRoYXQgaXMgbWFpbnRhaW5lZCAKKyAqICAgICAgICAgICAgaW50ZXJuYWxseSBieSB0aGUgZnVuY3Rpb24uIFRoZSB1c2VyIHNob3VsZCBpbml0aWFsaXplIHRoZSB2YWx1ZSAKKyAqICAgICAgICAgICAgb2YgdGhpcyBpbmRleCB0byB6ZXJvLiAKKyAqICAgc2NhbGVGYWN0b3IgLSBzYXR1cmF0aW9uIGZpeGVkIHNjYWxlZmFjdG9yCisgKgorICogT3V0cHV0IEFyZ3VtZW50czoKKyAqICAgCisgKiAgIHBTcmNEc3QgLSBwb2ludGVyIHRvIHRoZSB2ZWN0b3Igb2YgZmlsdGVyZWQgb3V0cHV0IHNhbXBsZXMgCisgKgorICogUmV0dXJuIFZhbHVlOgorICogICAgCisgKiAgICBPTVhfU3RzX05vRXJyIC0gbm8gZXJyb3IgCisgKiAgICBPTVhfU3RzX0JhZEFyZ0VyciAtIGJhZCBhcmd1bWVudHM7IHJldHVybmVkIGlmIG9uZSBvciBtb3JlIG9mIHRoZSAKKyAqICAgICAgICAgICAgICBmb2xsb3dpbmcgaXMgdHJ1ZTogCisgKiAgICAtICAgT25lIG9yIG1vcmUgb2YgdGhlIGZvbGxvd2luZyBwb2ludGVycyBpcyBOVUxMOiAKKyAqICAgICAgICAgIC0gIHBTcmMsIAorICogICAgICAgICAgLSAgcERzdCwgCisgKiAgICAgICAgICAtICBwU3JjRHN0LCAKKyAqICAgICAgICAgIC0gIHBUYXBzUTE1LCAKKyAqICAgICAgICAgIC0gIHBEZWxheUxpbmUsIG9yIAorICogICAgICAgICAgLSAgcERlbGF5TGluZUluZGV4IAorICogICAgLSAgIHNhbXBsZW4gPCAwIAorICogICAgLSAgIHRhcHNsZW4gPCAxIAorICogICAgLSAgIHNjYWxlRmFjdG9yIDwgMCAKKyAqICAgIC0gICAqcERlbGF5TGluZUluZGV4IDwgMCBvciAqcERlbGF5TGluZUluZGV4ID49ICgyICogdGFwc2xlbikuIAorICoKKyAqLworT01YUmVzdWx0IG9teFNQX0ZJUl9EaXJlY3RfUzE2X0lTZnMgKAorICAgIE9NWF9TMTYgKnBTcmNEc3QsCisgICAgT01YX0lOVCBzYW1wTGVuLAorICAgIGNvbnN0IE9NWF9TMTYgKnBUYXBzUTE1LAorICAgIE9NWF9JTlQgdGFwc0xlbiwKKyAgICBPTVhfUzE2ICpwRGVsYXlMaW5lLAorICAgIE9NWF9JTlQgKnBEZWxheUxpbmVJbmRleCwKKyAgICBPTVhfSU5UIHNjYWxlRmFjdG9yCispOworCisKKworLyoqCisgKiBGdW5jdGlvbjogIG9teFNQX0ZJUk9uZV9EaXJlY3RfUzE2ICAgKDIuMi4zLjEuMikKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIFNpbmdsZS1zYW1wbGUgRklSIGZpbHRlcmluZyBmb3IgMTYtYml0IGRhdGEgdHlwZS4gVGhlc2UgZnVuY3Rpb25zIGFwcGx5IAorICogdGhlIEZJUiBmaWx0ZXIgZGVmaW5lZCBieSB0aGUgY29lZmZpY2llbnQgdmVjdG9yIHBUYXBzUTE1IHRvIGEgc2luZ2xlIAorICogc2FtcGxlIG9mIGlucHV0IGRhdGEuIFRoZSByZXN1bHQgaXMgc2F0dXJhdGVkIHdpdGggcm91bmRpbmcgaWYgdGhlIAorICogb3BlcmF0aW9uIHByb2R1Y2VzIGEgdmFsdWUgb3V0c2lkZSB0aGUgcmFuZ2Ugb2YgYSBzaWduZWQgMTYtYml0IGludGVnZXIuICAKKyAqIFJvdW5kaW5nIGJlaGF2aW9yIGlzIGRlZmluZWQgaW46CisgKiAgICAgICBzZWN0aW9uIDEuNi43ICJJbnRlZ2VyIFNjYWxpbmcgYW5kIFJvdW5kaW5nIENvbnZlbnRpb25zIi4gIAorICogVGhlIGludGVybmFsIGFjY3VtdWxhdG9yIHdpZHRoIG11c3QgYmUgYXQgbGVhc3QgMzIgYml0cy4gIFRoZSByZXN1bHQgaXMgCisgKiB1bmRlZmluZWQgaWYgYW55IG9mIHRoZSBwYXJ0aWFsbHkgYWNjdW11bGF0ZWQgdmFsdWVzIGV4Y2VlZHMgdGhlIHJhbmdlIG9mIGEgCisgKiBzaWduZWQgMzItYml0IGludGVnZXIuCisgKgorICogSW5wdXQgQXJndW1lbnRzOgorICogICAKKyAqICAgdmFsICAgICAgLSB0aGUgc2luZ2xlIGlucHV0IHNhbXBsZSB0byB3aGljaCB0aGUgZmlsdGVyIGlzIAorICogICAgICAgICAgICBhcHBsaWVkLgorICogICBwVGFwc1ExNSAtIHBvaW50ZXIgdG8gdGhlIHZlY3RvciB0aGF0IGNvbnRhaW5zIHRoZSBmaWx0ZXIgY29lZmZpY2llbnRzLCAKKyAqICAgICAgICAgICAgcmVwcmVzZW50ZWQgaW4gUTAuMTUgZm9ybWF0IChhcyBkZWZpbmVkIGluIHNlY3Rpb24gMS42LjUpLiBHaXZlbiAKKyAqICAgICAgICAgICAgdGhhdDoKKyAqICAgICAgICAgICAgICAgICAgICAtMzI3NjggPSBwVGFwc1ExNShrKSA8IDMyNzY4LCAKKyAqICAgICAgICAgICAgICAgICAgICAgICAgIDAgPSBrIDwgdGFwc0xlbiwgCisgKiAgICAgICAgICAgIHRoZSByYW5nZSBvbiB0aGUgYWN0dWFsIGZpbHRlciBjb2VmZmljaWVudHMgaXMgLTEgPSBiSyA8MSwgYW5kIAorICogICAgICAgICAgICB0aGVyZWZvcmUgY29lZmZpY2llbnQgbm9ybWFsaXphdGlvbiBtYXkgYmUgcmVxdWlyZWQgZHVyaW5nIHRoZSAKKyAqICAgICAgICAgICAgZmlsdGVyIGRlc2lnbiBwcm9jZXNzLiAKKyAqICAgdGFwc0xlbiAtIHRoZSBudW1iZXIgb2YgdGFwcywgb3IsIGVxdWl2YWxlbnRseSwgdGhlIGZpbHRlciBvcmRlciArIDEgCisgKiAgIHBEZWxheUxpbmUgLSBwb2ludGVyIHRvIHRoZSAyLnRhcHNMZW4gLWVsZW1lbnQgZmlsdGVyIG1lbW9yeSBidWZmZXIgCisgKiAgICAgICAgICAgIChzdGF0ZSkuIFRoZSB1c2VyIGlzIHJlc3BvbnNpYmxlIGZvciBhbGxvY2F0aW9uLCBpbml0aWFsaXphdGlvbiwgCisgKiAgICAgICAgICAgIGFuZCBkZS1hbGxvY2F0aW9uLiBUaGUgZmlsdGVyIG1lbW9yeSBlbGVtZW50cyBhcmUgaW5pdGlhbGl6ZWQgdG8gCisgKiAgICAgICAgICAgIHplcm8gaW4gbW9zdCBhcHBsaWNhdGlvbnMuIAorICogICBwRGVsYXlMaW5lSW5kZXggLSBwb2ludGVyIHRvIHRoZSBmaWx0ZXIgbWVtb3J5IGluZGV4IHRoYXQgaXMgbWFpbnRhaW5lZCAKKyAqICAgICAgICAgICAgaW50ZXJuYWxseSBieSB0aGUgZnVuY3Rpb24uIFRoZSB1c2VyIHNob3VsZCBpbml0aWFsaXplIHRoZSB2YWx1ZSAKKyAqICAgICAgICAgICAgb2YgdGhpcyBpbmRleCB0byB6ZXJvLiAKKyAqCisgKiBPdXRwdXQgQXJndW1lbnRzOgorICogICAKKyAqICAgcFJlc3VsdCAtIHBvaW50ZXIgdG8gdGhlIGZpbHRlcmVkIG91dHB1dCBzYW1wbGUgCisgKgorICogUmV0dXJuIFZhbHVlOgorICogICAgCisgKiAgICBPTVhfU3RzX05vRXJyIC0gbm8gZXJyb3IgCisgKiAgICBPTVhfU3RzX0JhZEFyZ0VyciAtIGJhZCBhcmd1bWVudHM7IHJldHVybmVkIGlmIG9uZSBvciBtb3JlIG9mIHRoZSAKKyAqICAgICAgICAgICAgICBmb2xsb3dpbmcgaXMgdHJ1ZTogCisgKiAgICAtICAgIE9uZSBvciBtb3JlIG9mIHRoZSBmb2xsb3dpbmcgcG9pbnRlcnMgaXMgTlVMTDogCisgKiAgICAgICAgICAgIC0gIHBSZXN1bHQsIAorICogICAgICAgICAgICAtICBwVGFwc1ExNSwgCisgKiAgICAgICAgICAgIC0gIHBEZWxheUxpbmUsIG9yIAorICogICAgICAgICAgICAtICBwRGVsYXlMaW5lSW5kZXggCisgKiAgICAtICAgIHRhcHNsZW4gPCAxIAorICogICAgLSAgICAqcERlbGF5TGluZUluZGV4IDwgMCBvciAqcERlbGF5TGluZUluZGV4ID49ICgyICogdGFwc2xlbikgCisgKgorICovCitPTVhSZXN1bHQgb214U1BfRklST25lX0RpcmVjdF9TMTYgKAorICAgIE9NWF9TMTYgdmFsLAorICAgIE9NWF9TMTYgKnBSZXN1bHQsCisgICAgY29uc3QgT01YX1MxNiAqcFRhcHNRMTUsCisgICAgT01YX0lOVCB0YXBzTGVuLAorICAgIE9NWF9TMTYgKnBEZWxheUxpbmUsCisgICAgT01YX0lOVCAqcERlbGF5TGluZUluZGV4CispOworCisKKworLyoqCisgKiBGdW5jdGlvbjogIG9teFNQX0ZJUk9uZV9EaXJlY3RfUzE2X0kgICAoMi4yLjMuMS4yKQorICoKKyAqIERlc2NyaXB0aW9uOgorICogU2luZ2xlLXNhbXBsZSBGSVIgZmlsdGVyaW5nIGZvciAxNi1iaXQgZGF0YSB0eXBlLiBUaGVzZSBmdW5jdGlvbnMgYXBwbHkgCisgKiB0aGUgRklSIGZpbHRlciBkZWZpbmVkIGJ5IHRoZSBjb2VmZmljaWVudCB2ZWN0b3IgcFRhcHNRMTUgdG8gYSBzaW5nbGUgCisgKiBzYW1wbGUgb2YgaW5wdXQgZGF0YS4gVGhlIHJlc3VsdCBpcyBzYXR1cmF0ZWQgd2l0aCByb3VuZGluZyBpZiB0aGUgCisgKiBvcGVyYXRpb24gcHJvZHVjZXMgYSB2YWx1ZSBvdXRzaWRlIHRoZSByYW5nZSBvZiBhIHNpZ25lZCAxNi1iaXQgaW50ZWdlci4gIAorICogUm91bmRpbmcgYmVoYXZpb3IgaXMgZGVmaW5lZCBpbjoKKyAqICAgICAgIHNlY3Rpb24gMS42LjcgIkludGVnZXIgU2NhbGluZyBhbmQgUm91bmRpbmcgQ29udmVudGlvbnMiLiAgCisgKiBUaGUgaW50ZXJuYWwgYWNjdW11bGF0b3Igd2lkdGggbXVzdCBiZSBhdCBsZWFzdCAzMiBiaXRzLiAgVGhlIHJlc3VsdCBpcyAKKyAqIHVuZGVmaW5lZCBpZiBhbnkgb2YgdGhlIHBhcnRpYWxseSBhY2N1bXVsYXRlZCB2YWx1ZXMgZXhjZWVkcyB0aGUgcmFuZ2Ugb2YgYSAKKyAqIHNpZ25lZCAzMi1iaXQgaW50ZWdlci4KKyAqCisgKiBJbnB1dCBBcmd1bWVudHM6CisgKiAgIAorICogICBwVmFsUmVzdWx0IC0gcG9pbnRlciB0byB0aGUgc2luZ2xlIGlucHV0IHNhbXBsZSB0byB3aGljaCB0aGUgZmlsdGVyIGlzIAorICogICAgICAgICAgICBhcHBsaWVkLiAKKyAqICAgcFRhcHNRMTUgLSBwb2ludGVyIHRvIHRoZSB2ZWN0b3IgdGhhdCBjb250YWlucyB0aGUgZmlsdGVyIGNvZWZmaWNpZW50cywgCisgKiAgICAgICAgICAgIHJlcHJlc2VudGVkIGluIFEwLjE1IGZvcm1hdCAoYXMgZGVmaW5lZCBpbiBzZWN0aW9uIDEuNi41KS4gR2l2ZW4gCisgKiAgICAgICAgICAgIHRoYXQ6CisgKiAgICAgICAgICAgICAgICAgICAgLTMyNzY4ID0gcFRhcHNRMTUoaykgPCAzMjc2OCwgCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAwID0gayA8IHRhcHNMZW4sIAorICogICAgICAgICAgICB0aGUgcmFuZ2Ugb24gdGhlIGFjdHVhbCBmaWx0ZXIgY29lZmZpY2llbnRzIGlzIC0xID0gYksgPDEsIGFuZCAKKyAqICAgICAgICAgICAgdGhlcmVmb3JlIGNvZWZmaWNpZW50IG5vcm1hbGl6YXRpb24gbWF5IGJlIHJlcXVpcmVkIGR1cmluZyB0aGUgCisgKiAgICAgICAgICAgIGZpbHRlciBkZXNpZ24gcHJvY2Vzcy4gCisgKiAgIHRhcHNMZW4gLSB0aGUgbnVtYmVyIG9mIHRhcHMsIG9yLCBlcXVpdmFsZW50bHksIHRoZSBmaWx0ZXIgb3JkZXIgKyAxIAorICogICBwRGVsYXlMaW5lIC0gcG9pbnRlciB0byB0aGUgMi50YXBzTGVuIC1lbGVtZW50IGZpbHRlciBtZW1vcnkgYnVmZmVyIAorICogICAgICAgICAgICAoc3RhdGUpLiBUaGUgdXNlciBpcyByZXNwb25zaWJsZSBmb3IgYWxsb2NhdGlvbiwgaW5pdGlhbGl6YXRpb24sIAorICogICAgICAgICAgICBhbmQgZGUtYWxsb2NhdGlvbi4gVGhlIGZpbHRlciBtZW1vcnkgZWxlbWVudHMgYXJlIGluaXRpYWxpemVkIHRvIAorICogICAgICAgICAgICB6ZXJvIGluIG1vc3QgYXBwbGljYXRpb25zLiAKKyAqICAgcERlbGF5TGluZUluZGV4IC0gcG9pbnRlciB0byB0aGUgZmlsdGVyIG1lbW9yeSBpbmRleCB0aGF0IGlzIG1haW50YWluZWQgCisgKiAgICAgICAgICAgIGludGVybmFsbHkgYnkgdGhlIGZ1bmN0aW9uLiBUaGUgdXNlciBzaG91bGQgaW5pdGlhbGl6ZSB0aGUgdmFsdWUgCisgKiAgICAgICAgICAgIG9mIHRoaXMgaW5kZXggdG8gemVyby4gCisgKgorICogT3V0cHV0IEFyZ3VtZW50czoKKyAqICAgCisgKiAgIHBWYWxSZXN1bHQgLSBwb2ludGVyIHRvIHRoZSBmaWx0ZXJlZCBvdXRwdXQgc2FtcGxlIAorICoKKyAqIFJldHVybiBWYWx1ZToKKyAqICAgIAorICogICAgT01YX1N0c19Ob0VyciAtIG5vIGVycm9yIAorICogICAgT01YX1N0c19CYWRBcmdFcnIgLSBiYWQgYXJndW1lbnRzOyByZXR1cm5lZCBpZiBvbmUgb3IgbW9yZSBvZiB0aGUgCisgKiAgICAgICAgICAgICAgZm9sbG93aW5nIGlzIHRydWU6IAorICogICAgLSAgICBPbmUgb3IgbW9yZSBvZiB0aGUgZm9sbG93aW5nIHBvaW50ZXJzIGlzIE5VTEw6IAorICogICAgICAgICAgICAtICBwVmFsUmVzdWx0LCAKKyAqICAgICAgICAgICAgLSAgcFRhcHNRMTUsIAorICogICAgICAgICAgICAtICBwRGVsYXlMaW5lLCBvciAKKyAqICAgICAgICAgICAgLSAgcERlbGF5TGluZUluZGV4IAorICogICAgLSAgICB0YXBzbGVuIDwgMSAKKyAqICAgIC0gICAgKnBEZWxheUxpbmVJbmRleCA8IDAgb3IgKnBEZWxheUxpbmVJbmRleCA+PSAoMiAqIHRhcHNsZW4pIAorICoKKyAqLworT01YUmVzdWx0IG9teFNQX0ZJUk9uZV9EaXJlY3RfUzE2X0kgKAorICAgIE9NWF9TMTYgKnBWYWxSZXN1bHQsCisgICAgY29uc3QgT01YX1MxNiAqcFRhcHNRMTUsCisgICAgT01YX0lOVCB0YXBzTGVuLAorICAgIE9NWF9TMTYgKnBEZWxheUxpbmUsCisgICAgT01YX0lOVCAqcERlbGF5TGluZUluZGV4CispOworCisKKworLyoqCisgKiBGdW5jdGlvbjogIG9teFNQX0ZJUk9uZV9EaXJlY3RfUzE2X1NmcyAgICgyLjIuMy4xLjIpCisgKgorICogRGVzY3JpcHRpb246CisgKiBTaW5nbGUtc2FtcGxlIEZJUiBmaWx0ZXJpbmcgZm9yIDE2LWJpdCBkYXRhIHR5cGUuIFRoZXNlIGZ1bmN0aW9ucyBhcHBseSAKKyAqIHRoZSBGSVIgZmlsdGVyIGRlZmluZWQgYnkgdGhlIGNvZWZmaWNpZW50IHZlY3RvciBwVGFwc1ExNSB0byBhIHNpbmdsZSAKKyAqIHNhbXBsZSBvZiBpbnB1dCBkYXRhLiBUaGUgb3V0cHV0IGlzIG11bHRpcGxpZWQgYnkgMiB0byB0aGUgbmVnYXRpdmUgcG93ZXIgCisgKiBvZiBzY2FsZWZhY3RvciAoaS5lLiwgMl4tc2NhbGVmYWN0b3IpIGJlZm9yZSByZXR1cm5pbmcgdG8gdGhlIHVzZXIuICAKKyAqIFNjYWxpbmcgYW5kIHJvdW5kaW5nIGNvbnZlbnRpb25zIGFyZSBkZWZpbmVkIGluIHNlY3Rpb24gMS42LjcuICAKKyAqIFRoZSBpbnRlcm5hbCBhY2N1bXVsYXRvciB3aWR0aCBtdXN0IGJlIGF0IGxlYXN0IDMyIGJpdHMuICAKKyAqIFRoZSByZXN1bHQgaXMgdW5kZWZpbmVkIGlmIGFueSBvZiB0aGUgcGFydGlhbGx5IGFjY3VtdWxhdGVkIHZhbHVlcyBleGNlZWRzIAorICogdGhlIHJhbmdlIG9mIGEgc2lnbmVkIDMyLWJpdCBpbnRlZ2VyLiAKKyAqCisgKiBJbnB1dCBBcmd1bWVudHM6CisgKiAgIAorICogICB2YWwgICAgICAtIHRoZSBzaW5nbGUgaW5wdXQgc2FtcGxlIHRvIHdoaWNoIHRoZSBmaWx0ZXIgaXMgCisgKiAgICAgICAgICAgIGFwcGxpZWQuICAKKyAqICAgcFRhcHNRMTUgLSBwb2ludGVyIHRvIHRoZSB2ZWN0b3IgdGhhdCBjb250YWlucyB0aGUgZmlsdGVyIGNvZWZmaWNpZW50cywgCisgKiAgICAgICAgICAgIHJlcHJlc2VudGVkIGluIFEwLjE1IGZvcm1hdCAoYXMgZGVmaW5lZCBpbiBzZWN0aW9uIDEuNi41KS4gR2l2ZW4gCisgKiAgICAgICAgICAgIHRoYXQ6CisgKiAgICAgICAgICAgICAgICAgICAgLTMyNzY4ID0gcFRhcHNRMTUoaykgPCAzMjc2OCwgCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAwID0gayA8IHRhcHNMZW4sIAorICogICAgICAgICAgICB0aGUgcmFuZ2Ugb24gdGhlIGFjdHVhbCBmaWx0ZXIgY29lZmZpY2llbnRzIGlzIC0xID0gYksgPDEsIGFuZCAKKyAqICAgICAgICAgICAgdGhlcmVmb3JlIGNvZWZmaWNpZW50IG5vcm1hbGl6YXRpb24gbWF5IGJlIHJlcXVpcmVkIGR1cmluZyB0aGUgCisgKiAgICAgICAgICAgIGZpbHRlciBkZXNpZ24gcHJvY2Vzcy4gCisgKiAgIHRhcHNMZW4gLSB0aGUgbnVtYmVyIG9mIHRhcHMsIG9yLCBlcXVpdmFsZW50bHksIHRoZSBmaWx0ZXIgb3JkZXIgKyAxIAorICogICBwRGVsYXlMaW5lIC0gcG9pbnRlciB0byB0aGUgMi50YXBzTGVuIC1lbGVtZW50IGZpbHRlciBtZW1vcnkgYnVmZmVyIAorICogICAgICAgICAgICAoc3RhdGUpLiBUaGUgdXNlciBpcyByZXNwb25zaWJsZSBmb3IgYWxsb2NhdGlvbiwgaW5pdGlhbGl6YXRpb24sIAorICogICAgICAgICAgICBhbmQgZGUtYWxsb2NhdGlvbi4gVGhlIGZpbHRlciBtZW1vcnkgZWxlbWVudHMgYXJlIGluaXRpYWxpemVkIHRvIAorICogICAgICAgICAgICB6ZXJvIGluIG1vc3QgYXBwbGljYXRpb25zLiAKKyAqICAgcERlbGF5TGluZUluZGV4IC0gcG9pbnRlciB0byB0aGUgZmlsdGVyIG1lbW9yeSBpbmRleCB0aGF0IGlzIG1haW50YWluZWQgCisgKiAgICAgICAgICAgIGludGVybmFsbHkgYnkgdGhlIGZ1bmN0aW9uLiBUaGUgdXNlciBzaG91bGQgaW5pdGlhbGl6ZSB0aGUgdmFsdWUgCisgKiAgICAgICAgICAgIG9mIHRoaXMgaW5kZXggdG8gemVyby4gCisgKiAgIHNjYWxlRmFjdG9yIC0gc2F0dXJhdGlvbiBmaXhlZCBzY2FsZUZhY3RvciAKKyAqCisgKiBPdXRwdXQgQXJndW1lbnRzOgorICogICAKKyAqICAgcFJlc3VsdCAtIHBvaW50ZXIgdG8gdGhlIGZpbHRlcmVkIG91dHB1dCBzYW1wbGUgCisgKgorICogUmV0dXJuIFZhbHVlOgorICogICAgCisgKiAgICBPTVhfU3RzX05vRXJyIC0gbm8gZXJyb3IgCisgKiAgICBPTVhfU3RzX0JhZEFyZ0VyciAtIGJhZCBhcmd1bWVudHM7IHJldHVybmVkIGlmIG9uZSBvciBtb3JlIG9mIHRoZSAKKyAqICAgICAgICAgICAgICBmb2xsb3dpbmcgaXMgdHJ1ZTogCisgKiAgICAtICAgIE9uZSBvciBtb3JlIG9mIHRoZSBmb2xsb3dpbmcgcG9pbnRlcnMgaXMgTlVMTDogCisgKiAgICAgICAgICAgIC0gIHBSZXN1bHQsIAorICogICAgICAgICAgICAtICBwVGFwc1ExNSwgCisgKiAgICAgICAgICAgIC0gIHBEZWxheUxpbmUsIG9yIAorICogICAgICAgICAgICAtICBwRGVsYXlMaW5lSW5kZXggCisgKiAgICAtICAgIHRhcHNsZW4gPCAxIAorICogICAgLSAgICBzY2FsZUZhY3RvciA8IDAgCisgKiAgICAtICAgICpwRGVsYXlMaW5lSW5kZXggPCAwIG9yICpwRGVsYXlMaW5lSW5kZXggPj0gKDIgKiB0YXBzbGVuKSAKKyAqCisgKi8KK09NWFJlc3VsdCBvbXhTUF9GSVJPbmVfRGlyZWN0X1MxNl9TZnMgKAorICAgIE9NWF9TMTYgdmFsLAorICAgIE9NWF9TMTYgKnBSZXN1bHQsCisgICAgY29uc3QgT01YX1MxNiAqcFRhcHNRMTUsCisgICAgT01YX0lOVCB0YXBzTGVuLAorICAgIE9NWF9TMTYgKnBEZWxheUxpbmUsCisgICAgT01YX0lOVCAqcERlbGF5TGluZUluZGV4LAorICAgIE9NWF9JTlQgc2NhbGVGYWN0b3IKKyk7CisKKworCisvKioKKyAqIEZ1bmN0aW9uOiAgb214U1BfRklST25lX0RpcmVjdF9TMTZfSVNmcyAgICgyLjIuMy4xLjIpCisgKgorICogRGVzY3JpcHRpb246CisgKiBTaW5nbGUtc2FtcGxlIEZJUiBmaWx0ZXJpbmcgZm9yIDE2LWJpdCBkYXRhIHR5cGUuIFRoZXNlIGZ1bmN0aW9ucyBhcHBseSAKKyAqIHRoZSBGSVIgZmlsdGVyIGRlZmluZWQgYnkgdGhlIGNvZWZmaWNpZW50IHZlY3RvciBwVGFwc1ExNSB0byBhIHNpbmdsZSAKKyAqIHNhbXBsZSBvZiBpbnB1dCBkYXRhLiBUaGUgb3V0cHV0IGlzIG11bHRpcGxpZWQgYnkgMiB0byB0aGUgbmVnYXRpdmUgcG93ZXIgCisgKiBvZiBzY2FsZWZhY3RvciAoaS5lLiwgMl4tc2NhbGVmYWN0b3IpIGJlZm9yZSByZXR1cm5pbmcgdG8gdGhlIHVzZXIuICAKKyAqIFNjYWxpbmcgYW5kIHJvdW5kaW5nIGNvbnZlbnRpb25zIGFyZSBkZWZpbmVkIGluIHNlY3Rpb24gMS42LjcuICAKKyAqIFRoZSBpbnRlcm5hbCBhY2N1bXVsYXRvciB3aWR0aCBtdXN0IGJlIGF0IGxlYXN0IDMyIGJpdHMuICAKKyAqIFRoZSByZXN1bHQgaXMgdW5kZWZpbmVkIGlmIGFueSBvZiB0aGUgcGFydGlhbGx5IGFjY3VtdWxhdGVkIHZhbHVlcyBleGNlZWRzIAorICogdGhlIHJhbmdlIG9mIGEgc2lnbmVkIDMyLWJpdCBpbnRlZ2VyLiAKKyAqCisgKiBJbnB1dCBBcmd1bWVudHM6CisgKiAgIAorICogICBwVmFsUmVzdWx0IC0gdGhlIHBvaW50ZXIgdG8gYSBzaW5nbGUgaW5wdXQgc2FtcGxlIHRvIHdoaWNoIHRoZSBmaWx0ZXIgaXMgCisgKiAgICAgICAgICAgIGFwcGxpZWQuIAorICogICBwVGFwc1ExNSAtIHBvaW50ZXIgdG8gdGhlIHZlY3RvciB0aGF0IGNvbnRhaW5zIHRoZSBmaWx0ZXIgY29lZmZpY2llbnRzLCAKKyAqICAgICAgICAgICAgcmVwcmVzZW50ZWQgaW4gUTAuMTUgZm9ybWF0IChhcyBkZWZpbmVkIGluIHNlY3Rpb24gMS42LjUpLiBHaXZlbiAKKyAqICAgICAgICAgICAgdGhhdDoKKyAqICAgICAgICAgICAgICAgICAgICAtMzI3NjggPSBwVGFwc1ExNShrKSA8IDMyNzY4LCAKKyAqICAgICAgICAgICAgICAgICAgICAgICAgIDAgPSBrIDwgdGFwc0xlbiwgCisgKiAgICAgICAgICAgIHRoZSByYW5nZSBvbiB0aGUgYWN0dWFsIGZpbHRlciBjb2VmZmljaWVudHMgaXMgLTEgPSBiSyA8MSwgYW5kIAorICogICAgICAgICAgICB0aGVyZWZvcmUgY29lZmZpY2llbnQgbm9ybWFsaXphdGlvbiBtYXkgYmUgcmVxdWlyZWQgZHVyaW5nIHRoZSAKKyAqICAgICAgICAgICAgZmlsdGVyIGRlc2lnbiBwcm9jZXNzLiAKKyAqICAgdGFwc0xlbiAtIHRoZSBudW1iZXIgb2YgdGFwcywgb3IsIGVxdWl2YWxlbnRseSwgdGhlIGZpbHRlciBvcmRlciArIDEgCisgKiAgIHBEZWxheUxpbmUgLSBwb2ludGVyIHRvIHRoZSAyLnRhcHNMZW4gLWVsZW1lbnQgZmlsdGVyIG1lbW9yeSBidWZmZXIgCisgKiAgICAgICAgICAgIChzdGF0ZSkuIFRoZSB1c2VyIGlzIHJlc3BvbnNpYmxlIGZvciBhbGxvY2F0aW9uLCBpbml0aWFsaXphdGlvbiwgCisgKiAgICAgICAgICAgIGFuZCBkZS1hbGxvY2F0aW9uLiBUaGUgZmlsdGVyIG1lbW9yeSBlbGVtZW50cyBhcmUgaW5pdGlhbGl6ZWQgdG8gCisgKiAgICAgICAgICAgIHplcm8gaW4gbW9zdCBhcHBsaWNhdGlvbnMuIAorICogICBwRGVsYXlMaW5lSW5kZXggLSBwb2ludGVyIHRvIHRoZSBmaWx0ZXIgbWVtb3J5IGluZGV4IHRoYXQgaXMgbWFpbnRhaW5lZCAKKyAqICAgICAgICAgICAgaW50ZXJuYWxseSBieSB0aGUgZnVuY3Rpb24uIFRoZSB1c2VyIHNob3VsZCBpbml0aWFsaXplIHRoZSB2YWx1ZSAKKyAqICAgICAgICAgICAgb2YgdGhpcyBpbmRleCB0byB6ZXJvLiAKKyAqICAgc2NhbGVGYWN0b3IgLSBzYXR1cmF0aW9uIGZpeGVkIHNjYWxlRmFjdG9yIAorICoKKyAqIE91dHB1dCBBcmd1bWVudHM6CisgKiAgIAorICogICBwVmFsUmVzdWx0IC0gcG9pbnRlciB0byB0aGUgZmlsdGVyZWQgb3V0cHV0IHNhbXBsZSAKKyAqCisgKiBSZXR1cm4gVmFsdWU6CisgKiAgICAKKyAqICAgIE9NWF9TdHNfTm9FcnIgLSBubyBlcnJvciAKKyAqICAgIE9NWF9TdHNfQmFkQXJnRXJyIC0gYmFkIGFyZ3VtZW50czsgcmV0dXJuZWQgaWYgb25lIG9yIG1vcmUgb2YgdGhlIAorICogICAgICAgICAgICAgIGZvbGxvd2luZyBpcyB0cnVlOiAKKyAqICAgIC0gICAgT25lIG9yIG1vcmUgb2YgdGhlIGZvbGxvd2luZyBwb2ludGVycyBpcyBOVUxMOiAKKyAqICAgICAgICAgICAgLSAgcFZhbFJlc3VsdCwgCisgKiAgICAgICAgICAgIC0gIHBUYXBzUTE1LCAKKyAqICAgICAgICAgICAgLSAgcERlbGF5TGluZSwgb3IgCisgKiAgICAgICAgICAgIC0gIHBEZWxheUxpbmVJbmRleCAKKyAqICAgIC0gICAgdGFwc2xlbiA8IDEgCisgKiAgICAtICAgIHNjYWxlRmFjdG9yIDwgMCAKKyAqICAgIC0gICAgKnBEZWxheUxpbmVJbmRleCA8IDAgb3IgKnBEZWxheUxpbmVJbmRleCA+PSAoMiAqIHRhcHNsZW4pIAorICoKKyAqLworT01YUmVzdWx0IG9teFNQX0ZJUk9uZV9EaXJlY3RfUzE2X0lTZnMgKAorICAgIE9NWF9TMTYgKnBWYWxSZXN1bHQsCisgICAgY29uc3QgT01YX1MxNiAqcFRhcHNRMTUsCisgICAgT01YX0lOVCB0YXBzTGVuLAorICAgIE9NWF9TMTYgKnBEZWxheUxpbmUsCisgICAgT01YX0lOVCAqcERlbGF5TGluZUluZGV4LAorICAgIE9NWF9JTlQgc2NhbGVGYWN0b3IKKyk7CisKKworCisvKioKKyAqIEZ1bmN0aW9uOiAgb214U1BfSUlSX0RpcmVjdF9TMTYgICAoMi4yLjMuMi4xKQorICoKKyAqIERlc2NyaXB0aW9uOgorICogQmxvY2sgSUlSIGZpbHRlcmluZyBmb3IgMTYtYml0IGRhdGEuIFRoaXMgZnVuY3Rpb24gYXBwbGllcyB0aGUgZGlyZWN0IGZvcm0gCisgKiBJSSBJSVIgZmlsdGVyIGRlZmluZWQgYnkgdGhlIGNvZWZmaWNpZW50IHZlY3RvciBwVGFwcyB0byBhIHZlY3RvciBvZiBpbnB1dCAKKyAqIGRhdGEuICBUaGUgaW50ZXJuYWwgYWNjdW11bGF0b3Igd2lkdGggbXVzdCBiZSBhdCBsZWFzdCAzMiBiaXRzLCBhbmQgdGhlIAorICogcmVzdWx0IGlzIHNhdHVyYXRlZCBpZiB0aGUgb3BlcmF0aW9uIHByb2R1Y2VzIGEgdmFsdWUgb3V0c2lkZSB0aGUgcmFuZ2Ugb2YgCisgKiBhIHNpZ25lZCAxNi1iaXQgaW50ZWdlciwgaS5lLiwgdGhlIG91dHB1dCB3aWxsIHNhdHVyYXRlIHRvIDB4ODAwMCAoLTMyNzY4KSAKKyAqIGZvciBhIG5lZ2F0aXZlIG92ZXJmbG93IG9yIDB4N2ZmZiAoMzI3NjcpIGZvciBhIHBvc2l0aXZlIG92ZXJmbG93LiAgVGhlIAorICogcmVzdWx0IGlzIHVuZGVmaW5lZCBpZiBhbnkgb2YgdGhlIHBhcnRpYWxseSBhY2N1bXVsYXRlZCB2YWx1ZXMgZXhjZWVkcyB0aGUgCisgKiByYW5nZSBvZiBhIHNpZ25lZCAzMi1iaXQgaW50ZWdlci4gCisgKgorICogSW5wdXQgQXJndW1lbnRzOgorICogICAKKyAqICAgcFNyYyAgLSBwb2ludGVyIHRvIHRoZSB2ZWN0b3Igb2YgaW5wdXQgc2FtcGxlcyB0byB3aGljaCB0aGUgCisgKiAgICAgICAgICAgIGZpbHRlciBpcyBhcHBsaWVkIAorICogICBsZW4gLSB0aGUgbnVtYmVyIG9mIHNhbXBsZXMgY29udGFpbmVkIGluIGJvdGggdGhlIGlucHV0IGFuZCBvdXRwdXQgCisgKiAgICAgICAgICAgIHZlY3RvcnMgCisgKiAgIHBUYXBzIC0gcG9pbnRlciB0byB0aGUgMkwrMi1lbGVtZW50IHZlY3RvciB0aGF0IGNvbnRhaW5zIHRoZSBjb21iaW5lZCAKKyAqICAgICAgICAgICAgbnVtZXJhdG9yIGFuZCBkZW5vbWluYXRvciBmaWx0ZXIgY29lZmZpY2llbnRzIGZyb20gdGhlIHN5c3RlbSAKKyAqICAgICAgICAgICAgdHJhbnNmZXIgZnVuY3Rpb24sIEgoeikuIENvZWZmaWNpZW50IHNjYWxpbmcgYW5kIGNvZWZmaWNpZW50IAorICogICAgICAgICAgICB2ZWN0b3Igb3JnYW5pemF0aW9uIHNob3VsZCBmb2xsb3cgdGhlIGNvbnZlbnRpb25zIGRlc2NyaWJlZCAKKyAqICAgICAgICAgICAgYWJvdmUuIFRoZSB2YWx1ZSBvZiB0aGUgY29lZmZpY2llbnQgc2NhbGVGYWN0b3IgZXhwb25lbnQgbXVzdCBiZSAKKyAqICAgICAgICAgICAgbm9uLW5lZ2F0aXZlIChzZj0wKS4gCisgKiAgIG9yZGVyIC0gdGhlIG1heGltdW0gb2YgdGhlIGRlZ3JlZXMgb2YgdGhlIG51bWVyYXRvciBhbmQgZGVub21pbmF0b3IgCisgKiAgICAgICAgICAgIGNvZWZmaWNpZW50IHBvbHlub21pYWxzIGZyb20gdGhlIHN5c3RlbSB0cmFuc2ZlciBmdW5jdGlvbiwgSCh6KS4gCisgKiAgICAgICAgICAgIEluIHRoZSBub3RhdGlvbiBvZiBzZWN0aW9uIDIuMi4zLjIsIHRoZSBwYXJhbWV0ZXIgCisgKiAgICAgICAgICAgIG9yZGVyPW1heChLLE0pPUwgZ2l2ZXMgdGhlIG1heGltdW0gZGVsYXksIGluIHNhbXBsZXMsIHVzZWQgdG8gCisgKiAgICAgICAgICAgIGNvbXB1dGUgZWFjaCBvdXRwdXQgc2FtcGxlLiAKKyAqICAgcERlbGF5TGluZSAtIHBvaW50ZXIgdG8gdGhlIEwtZWxlbWVudCBmaWx0ZXIgbWVtb3J5IGJ1ZmZlciAoc3RhdGUpLiBUaGUgCisgKiAgICAgICAgICAgIHVzZXIgaXMgcmVzcG9uc2libGUgZm9yIGFsbG9jYXRpb24sIGluaXRpYWxpemF0aW9uLCBhbmQgCisgKiAgICAgICAgICAgIGRlYWxsb2NhdGlvbi4gVGhlIGZpbHRlciBtZW1vcnkgZWxlbWVudHMgYXJlIGluaXRpYWxpemVkIHRvIHplcm8gCisgKiAgICAgICAgICAgIGluIG1vc3QgYXBwbGljYXRpb25zLiAKKyAqCisgKiBPdXRwdXQgQXJndW1lbnRzOgorICogICAKKyAqICAgcERzdCAtIHBvaW50ZXIgdG8gdGhlIHZlY3RvciBvZiBmaWx0ZXJlZCBvdXRwdXQgc2FtcGxlcyAKKyAqCisgKiBSZXR1cm4gVmFsdWU6CisgKiAgICAKKyAqICAgIE9NWF9TdHNfTm9FcnIgLSBubyBlcnJvciAKKyAqICAgIE9NWF9TdHNfQmFkQXJnRXJyIC0gYmFkIGFyZ3VtZW50czsgcmV0dXJuZWQgaWYgb25lIG9yIG1vcmUgb2YgdGhlIAorICogICAgICAgICAgICAgIGZvbGxvd2luZyBpcyB0cnVlOiAKKyAqICAgIC0gICAgb25lIG9yIG1vcmUgb2YgdGhlIGZvbGxvd2luZyBwb2ludGVycyBpcyBOVUxMOiAKKyAqICAgICAgICAgICAgIC0gIHBTcmMsIAorICogICAgICAgICAgICAgLSAgcERzdCwgCisgKiAgICAgICAgICAgICAtICBwVGFwcywgb3IgCisgKiAgICAgICAgICAgICAtICBwRGVsYXlMaW5lLiAKKyAqICAgIC0gICAgbGVuIDwgMCAKKyAqICAgIC0gICAgcFRhcHNbb3JkZXIrMV0gPCAwIChuZWdhdGl2ZSBzY2FsaW5nKSAKKyAqICAgIC0gICAgb3JkZXIgPCAxIAorICoKKyAqLworT01YUmVzdWx0IG9teFNQX0lJUl9EaXJlY3RfUzE2ICgKKyAgICBjb25zdCBPTVhfUzE2ICpwU3JjLAorICAgIE9NWF9TMTYgKnBEc3QsCisgICAgT01YX0lOVCBsZW4sCisgICAgY29uc3QgT01YX1MxNiAqcFRhcHMsCisgICAgT01YX0lOVCBvcmRlciwKKyAgICBPTVhfUzMyICpwRGVsYXlMaW5lCispOworCisKKworLyoqCisgKiBGdW5jdGlvbjogIG9teFNQX0lJUl9EaXJlY3RfUzE2X0kgICAoMi4yLjMuMi4xKQorICoKKyAqIERlc2NyaXB0aW9uOgorICogQmxvY2sgSUlSIGZpbHRlcmluZyBmb3IgMTYtYml0IGRhdGEuIFRoaXMgZnVuY3Rpb24gYXBwbGllcyB0aGUgZGlyZWN0IGZvcm0gCisgKiBJSSBJSVIgZmlsdGVyIGRlZmluZWQgYnkgdGhlIGNvZWZmaWNpZW50IHZlY3RvciBwVGFwcyB0byBhIHZlY3RvciBvZiBpbnB1dCAKKyAqIGRhdGEuICBUaGUgaW50ZXJuYWwgYWNjdW11bGF0b3Igd2lkdGggbXVzdCBiZSBhdCBsZWFzdCAzMiBiaXRzLCBhbmQgdGhlIAorICogcmVzdWx0IGlzIHNhdHVyYXRlZCBpZiB0aGUgb3BlcmF0aW9uIHByb2R1Y2VzIGEgdmFsdWUgb3V0c2lkZSB0aGUgcmFuZ2Ugb2YgCisgKiBhIHNpZ25lZCAxNi1iaXQgaW50ZWdlciwgaS5lLiwgdGhlIG91dHB1dCB3aWxsIHNhdHVyYXRlIHRvIDB4ODAwMCAoLTMyNzY4KSAKKyAqIGZvciBhIG5lZ2F0aXZlIG92ZXJmbG93IG9yIDB4N2ZmZiAoMzI3NjcpIGZvciBhIHBvc2l0aXZlIG92ZXJmbG93LiAgVGhlIAorICogcmVzdWx0IGlzIHVuZGVmaW5lZCBpZiBhbnkgb2YgdGhlIHBhcnRpYWxseSBhY2N1bXVsYXRlZCB2YWx1ZXMgZXhjZWVkcyB0aGUgCisgKiByYW5nZSBvZiBhIHNpZ25lZCAzMi1iaXQgaW50ZWdlci4gCisgKgorICogSW5wdXQgQXJndW1lbnRzOgorICogICAKKyAqICAgcFNyY0RzdCAtIHBvaW50ZXIgdG8gdGhlIHZlY3RvciBvZiBpbnB1dCBzYW1wbGVzIHRvIHdoaWNoIHRoZSAKKyAqICAgICAgICAgICAgZmlsdGVyIGlzIGFwcGxpZWQgCisgKiAgIGxlbiAtIHRoZSBudW1iZXIgb2Ygc2FtcGxlcyBjb250YWluZWQgaW4gYm90aCB0aGUgaW5wdXQgYW5kIG91dHB1dCAKKyAqICAgICAgICAgICAgdmVjdG9ycyAKKyAqICAgcFRhcHMgLSBwb2ludGVyIHRvIHRoZSAyTCsyLWVsZW1lbnQgdmVjdG9yIHRoYXQgY29udGFpbnMgdGhlIGNvbWJpbmVkIAorICogICAgICAgICAgICBudW1lcmF0b3IgYW5kIGRlbm9taW5hdG9yIGZpbHRlciBjb2VmZmljaWVudHMgZnJvbSB0aGUgc3lzdGVtIAorICogICAgICAgICAgICB0cmFuc2ZlciBmdW5jdGlvbiwgSCh6KS4gQ29lZmZpY2llbnQgc2NhbGluZyBhbmQgY29lZmZpY2llbnQgCisgKiAgICAgICAgICAgIHZlY3RvciBvcmdhbml6YXRpb24gc2hvdWxkIGZvbGxvdyB0aGUgY29udmVudGlvbnMgZGVzY3JpYmVkIAorICogICAgICAgICAgICBhYm92ZS4gVGhlIHZhbHVlIG9mIHRoZSBjb2VmZmljaWVudCBzY2FsZUZhY3RvciBleHBvbmVudCBtdXN0IGJlIAorICogICAgICAgICAgICBub24tbmVnYXRpdmUgKHNmPj0wKS4gCisgKiAgIG9yZGVyIC0gdGhlIG1heGltdW0gb2YgdGhlIGRlZ3JlZXMgb2YgdGhlIG51bWVyYXRvciBhbmQgZGVub21pbmF0b3IgCisgKiAgICAgICAgICAgIGNvZWZmaWNpZW50IHBvbHlub21pYWxzIGZyb20gdGhlIHN5c3RlbSB0cmFuc2ZlciBmdW5jdGlvbiwgSCh6KS4gCisgKiAgICAgICAgICAgIEluIHRoZSBub3RhdGlvbiBvZiBzZWN0aW9uIDIuMi4zLjIsIHRoZSBwYXJhbWV0ZXIgCisgKiAgICAgICAgICAgIG9yZGVyPW1heChLLE0pPUwgZ2l2ZXMgdGhlIG1heGltdW0gZGVsYXksIGluIHNhbXBsZXMsIHVzZWQgdG8gCisgKiAgICAgICAgICAgIGNvbXB1dGUgZWFjaCBvdXRwdXQgc2FtcGxlLiAKKyAqICAgcERlbGF5TGluZSAtIHBvaW50ZXIgdG8gdGhlIEwtZWxlbWVudCBmaWx0ZXIgbWVtb3J5IGJ1ZmZlciAoc3RhdGUpLiBUaGUgCisgKiAgICAgICAgICAgIHVzZXIgaXMgcmVzcG9uc2libGUgZm9yIGFsbG9jYXRpb24sIGluaXRpYWxpemF0aW9uLCBhbmQgCisgKiAgICAgICAgICAgIGRlYWxsb2NhdGlvbi4gVGhlIGZpbHRlciBtZW1vcnkgZWxlbWVudHMgYXJlIGluaXRpYWxpemVkIHRvIHplcm8gCisgKiAgICAgICAgICAgIGluIG1vc3QgYXBwbGljYXRpb25zLiAKKyAqCisgKiBPdXRwdXQgQXJndW1lbnRzOgorICogICAKKyAqICAgcFNyY0RzdCAtIHBvaW50ZXIgdG8gdGhlIHZlY3RvciBvZiBmaWx0ZXJlZCBvdXRwdXQgc2FtcGxlcyAKKyAqCisgKiBSZXR1cm4gVmFsdWU6CisgKiAgICAKKyAqICAgIE9NWF9TdHNfTm9FcnIgLSBubyBlcnJvciAKKyAqICAgIE9NWF9TdHNfQmFkQXJnRXJyIC0gYmFkIGFyZ3VtZW50czsgcmV0dXJuZWQgaWYgb25lIG9yIG1vcmUgb2YgdGhlIAorICogICAgICAgICAgICAgIGZvbGxvd2luZyBpcyB0cnVlOiAKKyAqICAgIC0gICAgb25lIG9yIG1vcmUgb2YgdGhlIGZvbGxvd2luZyBwb2ludGVycyBpcyBOVUxMOiAKKyAqICAgICAgICAgICAgIC0gIHBTcmNEc3QsIAorICogICAgICAgICAgICAgLSAgcFRhcHMsIG9yIAorICogICAgICAgICAgICAgLSAgcERlbGF5TGluZS4gCisgKiAgICAtICAgIGxlbiA8IDAgCisgKiAgICAtICAgIHBUYXBzW29yZGVyKzFdIDwgMCAobmVnYXRpdmUgc2NhbGluZykgCisgKiAgICAtICAgIG9yZGVyIDwgMSAKKyAqCisgKi8KK09NWFJlc3VsdCBvbXhTUF9JSVJfRGlyZWN0X1MxNl9JICgKKyAgICBPTVhfUzE2ICpwU3JjRHN0LAorICAgIE9NWF9JTlQgbGVuLAorICAgIGNvbnN0IE9NWF9TMTYgKnBUYXBzLAorICAgIE9NWF9JTlQgb3JkZXIsCisgICAgT01YX1MzMiAqcERlbGF5TGluZQorKTsKKworCisKKy8qKgorICogRnVuY3Rpb246ICBvbXhTUF9JSVJPbmVfRGlyZWN0X1MxNiAgICgyLjIuMy4yLjIpCisgKgorICogRGVzY3JpcHRpb246CisgKiBTaW5nbGUgc2FtcGxlIElJUiBmaWx0ZXJpbmcgZm9yIDE2LWJpdCBkYXRhLiAgVGhpcyBmdW5jdGlvbiBhcHBsaWVzIHRoZSAKKyAqIGRpcmVjdCBmb3JtIElJIElJUiBmaWx0ZXIgZGVmaW5lZCBieSB0aGUgY29lZmZpY2llbnQgdmVjdG9yIHBUYXBzIHRvIGEgCisgKiBzaW5nbGUgc2FtcGxlIG9mIGlucHV0IGRhdGEuIFRoZSBpbnRlcm5hbCBhY2N1bXVsYXRvciB3aWR0aCBtdXN0IGJlIGF0IAorICogbGVhc3QgMzIgYml0cywgYW5kIHRoZSByZXN1bHQgaXMgc2F0dXJhdGVkIGlmIHRoZSBvcGVyYXRpb24gcHJvZHVjZXMgYSAKKyAqIHZhbHVlIG91dHNpZGUgdGhlIHJhbmdlIG9mIGEgc2lnbmVkIDE2LWJpdCBpbnRlZ2VyLCBpLmUuLCB0aGUgb3V0cHV0IHdpbGwgCisgKiBzYXR1cmF0ZSB0byAweDgwMDAgKC0zMjc2OCkgZm9yIGEgbmVnYXRpdmUgb3ZlcmZsb3cgb3IgMHg3ZmZmICgzMjc2NykgZm9yIGEgCisgKiBwb3NpdGl2ZSBvdmVyZmxvdy4gIFRoZSByZXN1bHQgaXMgdW5kZWZpbmVkIGlmIGFueSBvZiB0aGUgcGFydGlhbGx5IAorICogYWNjdW11bGF0ZWQgdmFsdWVzIGV4Y2VlZHMgdGhlIHJhbmdlIG9mIGEgc2lnbmVkIDMyLWJpdCBpbnRlZ2VyLiAKKyAqCisgKiBJbnB1dCBBcmd1bWVudHM6CisgKiAgIAorICogICB2YWwgLSB0aGUgc2luZ2xlIGlucHV0IHNhbXBsZSB0byB3aGljaCB0aGUgZmlsdGVyIGlzIAorICogICAgICAgICAgICBhcHBsaWVkLiAgCisgKiAgIHBUYXBzIC0gcG9pbnRlciB0byB0aGUgMkwrMiAtZWxlbWVudCB2ZWN0b3IgdGhhdCBjb250YWlucyB0aGUgY29tYmluZWQgCisgKiAgICAgICAgICAgIG51bWVyYXRvciBhbmQgZGVub21pbmF0b3IgZmlsdGVyIGNvZWZmaWNpZW50cyBmcm9tIHRoZSBzeXN0ZW0gCisgKiAgICAgICAgICAgIHRyYW5zZmVyIGZ1bmN0aW9uLCBIKHopLiBDb2VmZmljaWVudCBzY2FsaW5nIGFuZCBjb2VmZmljaWVudCAKKyAqICAgICAgICAgICAgdmVjdG9yIG9yZ2FuaXphdGlvbiBzaG91bGQgZm9sbG93IHRoZSBjb252ZW50aW9ucyBkZXNjcmliZWQgCisgKiAgICAgICAgICAgIGFib3ZlLiBUaGUgdmFsdWUgb2YgdGhlIGNvZWZmaWNpZW50IHNjYWxlRmFjdG9yIGV4cG9uZW50IG11c3QgYmUgCisgKiAgICAgICAgICAgIG5vbi1uZWdhdGl2ZSAoc2Y+PTApLiAKKyAqICAgb3JkZXIgLSB0aGUgbWF4aW11bSBvZiB0aGUgZGVncmVlcyBvZiB0aGUgbnVtZXJhdG9yIGFuZCBkZW5vbWluYXRvciAKKyAqICAgICAgICAgICAgY29lZmZpY2llbnQgcG9seW5vbWlhbHMgZnJvbSB0aGUgc3lzdGVtIHRyYW5zZmVyIGZ1bmN0aW9uLCBIKHopLiAKKyAqICAgICAgICAgICAgSW4gdGhlIG5vdGF0aW9uIG9mIHNlY3Rpb24gMi4yLjMuMiwgdGhlIHBhcmFtZXRlciAKKyAqICAgICAgICAgICAgb3JkZXI9bWF4KEssTSk9TCBnaXZlcyB0aGUgbWF4aW11bSBkZWxheSwgaW4gc2FtcGxlcywgdXNlZCB0byAKKyAqICAgICAgICAgICAgY29tcHV0ZSBlYWNoIG91dHB1dCBzYW1wbGUuIAorICogICBwRGVsYXlMaW5lIC0gcG9pbnRlciB0byB0aGUgTC1lbGVtZW50IGZpbHRlciBtZW1vcnkgYnVmZmVyIChzdGF0ZSkuIFRoZSAKKyAqICAgICAgICAgICAgdXNlciBpcyByZXNwb25zaWJsZSBmb3IgYWxsb2NhdGlvbiwgaW5pdGlhbGl6YXRpb24sIGFuZCAKKyAqICAgICAgICAgICAgZGVhbGxvY2F0aW9uLiBUaGUgZmlsdGVyIG1lbW9yeSBlbGVtZW50cyBhcmUgaW5pdGlhbGl6ZWQgdG8gemVybyAKKyAqICAgICAgICAgICAgaW4gbW9zdCBhcHBsaWNhdGlvbnMuIAorICoKKyAqIE91dHB1dCBBcmd1bWVudHM6CisgKiAgIAorICogICBwUmVzdWx0IC0gcG9pbnRlciB0byB0aGUgZmlsdGVyZWQgb3V0cHV0IHNhbXBsZSAKKyAqCisgKiBSZXR1cm4gVmFsdWU6CisgKiAgICAKKyAqICAgIE9NWF9TdHNfTm9FcnIgLSBubyBlcnJvciAKKyAqICAgIE9NWF9TdHNfQmFkQXJnRXJyIC0gYmFkIGFyZ3VtZW50czsgcmV0dXJuZWQgaWYgb25lIG9yIG1vcmUgb2YgdGhlIAorICogICAgICAgICAgICAgIGZvbGxvd2luZyBpcyB0cnVlOiAKKyAqICAgIC0gICAgb25lIG9yIG1vcmUgb2YgdGhlIGZvbGxvd2luZyBwb2ludGVycyBpcyBOVUxMOiBwUmVzdWx0LCAKKyAqICAgICAgICAgICAgICBwVGFwcywgb3IgcERlbGF5TGluZS4gCisgKiAgICAtICAgIG9yZGVyIDwgMSAKKyAqICAgIC0gICAgcFRhcHNbb3JkZXIrMV0gPCAwIChuZWdhdGl2ZSBzY2FsaW5nKSAKKyAqCisgKi8KK09NWFJlc3VsdCBvbXhTUF9JSVJPbmVfRGlyZWN0X1MxNiAoCisgICAgT01YX1MxNiB2YWwsCisgICAgT01YX1MxNiAqcFJlc3VsdCwKKyAgICBjb25zdCBPTVhfUzE2ICpwVGFwcywKKyAgICBPTVhfSU5UIG9yZGVyLAorICAgIE9NWF9TMzIgKnBEZWxheUxpbmUKKyk7CisKKworCisvKioKKyAqIEZ1bmN0aW9uOiAgb214U1BfSUlST25lX0RpcmVjdF9TMTZfSSAgICgyLjIuMy4yLjIpCisgKgorICogRGVzY3JpcHRpb246CisgKiBTaW5nbGUgc2FtcGxlIElJUiBmaWx0ZXJpbmcgZm9yIDE2LWJpdCBkYXRhLiAgVGhpcyBmdW5jdGlvbiBhcHBsaWVzIHRoZSAKKyAqIGRpcmVjdCBmb3JtIElJIElJUiBmaWx0ZXIgZGVmaW5lZCBieSB0aGUgY29lZmZpY2llbnQgdmVjdG9yIHBUYXBzIHRvIGEgCisgKiBzaW5nbGUgc2FtcGxlIG9mIGlucHV0IGRhdGEuIFRoZSBpbnRlcm5hbCBhY2N1bXVsYXRvciB3aWR0aCBtdXN0IGJlIGF0IAorICogbGVhc3QgMzIgYml0cywgYW5kIHRoZSByZXN1bHQgaXMgc2F0dXJhdGVkIGlmIHRoZSBvcGVyYXRpb24gcHJvZHVjZXMgYSAKKyAqIHZhbHVlIG91dHNpZGUgdGhlIHJhbmdlIG9mIGEgc2lnbmVkIDE2LWJpdCBpbnRlZ2VyLCBpLmUuLCB0aGUgb3V0cHV0IHdpbGwgCisgKiBzYXR1cmF0ZSB0byAweDgwMDAgKC0zMjc2OCkgZm9yIGEgbmVnYXRpdmUgb3ZlcmZsb3cgb3IgMHg3ZmZmICgzMjc2NykgZm9yIGEgCisgKiBwb3NpdGl2ZSBvdmVyZmxvdy4gIFRoZSByZXN1bHQgaXMgdW5kZWZpbmVkIGlmIGFueSBvZiB0aGUgcGFydGlhbGx5IAorICogYWNjdW11bGF0ZWQgdmFsdWVzIGV4Y2VlZHMgdGhlIHJhbmdlIG9mIGEgc2lnbmVkIDMyLWJpdCBpbnRlZ2VyLiAKKyAqCisgKiBJbnB1dCBBcmd1bWVudHM6CisgKiAgIAorICogICBwVmFsUmVzdWx0IC0gcG9pbnRlciB0byB0aGUgc2luZ2xlIGlucHV0IHNhbXBsZSB0byB3aGljaCB0aGUgZmlsdGVyIGlzIAorICogICAgICAgICAgICBhcHBsaWVkLgorICogICBwVGFwcyAtIHBvaW50ZXIgdG8gdGhlIDJMKzIgLWVsZW1lbnQgdmVjdG9yIHRoYXQgY29udGFpbnMgdGhlIGNvbWJpbmVkIAorICogICAgICAgICAgICBudW1lcmF0b3IgYW5kIGRlbm9taW5hdG9yIGZpbHRlciBjb2VmZmljaWVudHMgZnJvbSB0aGUgc3lzdGVtIAorICogICAgICAgICAgICB0cmFuc2ZlciBmdW5jdGlvbiwgSCh6KS4gQ29lZmZpY2llbnQgc2NhbGluZyBhbmQgY29lZmZpY2llbnQgCisgKiAgICAgICAgICAgIHZlY3RvciBvcmdhbml6YXRpb24gc2hvdWxkIGZvbGxvdyB0aGUgY29udmVudGlvbnMgZGVzY3JpYmVkIAorICogICAgICAgICAgICBhYm92ZS4gVGhlIHZhbHVlIG9mIHRoZSBjb2VmZmljaWVudCBzY2FsZUZhY3RvciBleHBvbmVudCBtdXN0IGJlIAorICogICAgICAgICAgICBub24tbmVnYXRpdmUgKHNmPj0wKS4gCisgKiAgIG9yZGVyIC0gdGhlIG1heGltdW0gb2YgdGhlIGRlZ3JlZXMgb2YgdGhlIG51bWVyYXRvciBhbmQgZGVub21pbmF0b3IgCisgKiAgICAgICAgICAgIGNvZWZmaWNpZW50IHBvbHlub21pYWxzIGZyb20gdGhlIHN5c3RlbSB0cmFuc2ZlciBmdW5jdGlvbiwgSCh6KS4gCisgKiAgICAgICAgICAgIEluIHRoZSBub3RhdGlvbiBvZiBzZWN0aW9uIDIuMi4zLjIsIHRoZSBwYXJhbWV0ZXIgCisgKiAgICAgICAgICAgIG9yZGVyPW1heChLLE0pPUwgZ2l2ZXMgdGhlIG1heGltdW0gZGVsYXksIGluIHNhbXBsZXMsIHVzZWQgdG8gCisgKiAgICAgICAgICAgIGNvbXB1dGUgZWFjaCBvdXRwdXQgc2FtcGxlLiAKKyAqICAgcERlbGF5TGluZSAtIHBvaW50ZXIgdG8gdGhlIEwtZWxlbWVudCBmaWx0ZXIgbWVtb3J5IGJ1ZmZlciAoc3RhdGUpLiBUaGUgCisgKiAgICAgICAgICAgIHVzZXIgaXMgcmVzcG9uc2libGUgZm9yIGFsbG9jYXRpb24sIGluaXRpYWxpemF0aW9uLCBhbmQgCisgKiAgICAgICAgICAgIGRlYWxsb2NhdGlvbi4gVGhlIGZpbHRlciBtZW1vcnkgZWxlbWVudHMgYXJlIGluaXRpYWxpemVkIHRvIHplcm8gCisgKiAgICAgICAgICAgIGluIG1vc3QgYXBwbGljYXRpb25zLiAKKyAqCisgKiBPdXRwdXQgQXJndW1lbnRzOgorICogICAKKyAqICAgcFZhbFJlc3VsdCAtIHBvaW50ZXIgdG8gdGhlIGZpbHRlcmVkIG91dHB1dCBzYW1wbGUgCisgKgorICogUmV0dXJuIFZhbHVlOgorICogICAgCisgKiAgICBPTVhfU3RzX05vRXJyIC0gbm8gZXJyb3IgCisgKiAgICBPTVhfU3RzX0JhZEFyZ0VyciAtIGJhZCBhcmd1bWVudHM7IHJldHVybmVkIGlmIG9uZSBvciBtb3JlIG9mIHRoZSAKKyAqICAgICAgICAgICAgICBmb2xsb3dpbmcgaXMgdHJ1ZTogCisgKiAgICAtICAgIG9uZSBvciBtb3JlIG9mIHRoZSBmb2xsb3dpbmcgcG9pbnRlcnMgaXMgTlVMTDogIAorICogICAgICAgICAgICAgIHBWYWxSZXN1bHQsIHBUYXBzLCBvciBwRGVsYXlMaW5lLiAKKyAqICAgIC0gICAgb3JkZXIgPCAxIAorICogICAgLSAgICBwVGFwc1tvcmRlcisxXSA8IDAgKG5lZ2F0aXZlIHNjYWxpbmcpIAorICoKKyAqLworT01YUmVzdWx0IG9teFNQX0lJUk9uZV9EaXJlY3RfUzE2X0kgKAorICAgIE9NWF9TMTYgKnBWYWxSZXN1bHQsCisgICAgY29uc3QgT01YX1MxNiAqcFRhcHMsCisgICAgT01YX0lOVCBvcmRlciwKKyAgICBPTVhfUzMyICpwRGVsYXlMaW5lCispOworCisKKworLyoqCisgKiBGdW5jdGlvbjogIG9teFNQX0lJUl9CaVF1YWREaXJlY3RfUzE2ICAgKDIuMi4zLjMuMSkKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIEJsb2NrIGJpcXVhZCBJSVIgZmlsdGVyaW5nIGZvciAxNi1iaXQgZGF0YSB0eXBlLiBUaGlzIGZ1bmN0aW9uIGFwcGxpZXMgdGhlIAorICogZGlyZWN0IGZvcm0gSUkgYmlxdWFkIElJUiBjYXNjYWRlIGRlZmluZWQgYnkgdGhlIGNvZWZmaWNpZW50IHZlY3RvciBwVGFwcyAKKyAqIHRvIGEgdmVjdG9yIG9mIGlucHV0IGRhdGEuICBUaGUgaW50ZXJuYWwgYWNjdW11bGF0b3Igd2lkdGggbXVzdCBiZSBhdCBsZWFzdCAKKyAqIDMyIGJpdHMsIGFuZCB0aGUgcmVzdWx0IGlzIHNhdHVyYXRlZCBpZiB0aGUgb3BlcmF0aW9uIHByb2R1Y2VzIGEgdmFsdWUgCisgKiBvdXRzaWRlIHRoZSByYW5nZSBvZiBhIHNpZ25lZCAxNi1iaXQgaW50ZWdlciwgaS5lLiwgdGhlIG91dHB1dCB3aWxsIAorICogc2F0dXJhdGUgdG8gMHg4MDAwICgtMzI3NjgpIGZvciBhIG5lZ2F0aXZlIG92ZXJmbG93IG9yIDB4N2ZmZiAoMzI3NjcpIGZvciBhIAorICogcG9zaXRpdmUgb3ZlcmZsb3cuICBUaGUgcmVzdWx0IGlzIHVuZGVmaW5lZCBpZiBhbnkgb2YgdGhlIHBhcnRpYWxseSAKKyAqIGFjY3VtdWxhdGVkIHZhbHVlcyBleGNlZWRzIHRoZSByYW5nZSBvZiBhIHNpZ25lZCAzMi1iaXQgaW50ZWdlci4gCisgKgorICogSW5wdXQgQXJndW1lbnRzOgorICogICAKKyAqICAgcFNyYyAtIHBvaW50ZXIgdG8gdGhlIHZlY3RvciBvZiBpbnB1dCBzYW1wbGVzIHRvIHdoaWNoIHRoZSAKKyAqICAgICAgICAgICAgZmlsdGVyIGlzIGFwcGxpZWQgCisgKiAgIGxlbiAtIHRoZSBudW1iZXIgb2Ygc2FtcGxlcyBjb250YWluZWQgaW4gYm90aCB0aGUgaW5wdXQgYW5kIG91dHB1dCAKKyAqICAgICAgICAgICAgdmVjdG9ycyAKKyAqICAgcFRhcHMgLSBwb2ludGVyIHRvIHRoZSA2UCAtZWxlbWVudCB2ZWN0b3IgdGhhdCBjb250YWlucyB0aGUgY29tYmluZWQgCisgKiAgICAgICAgICAgIG51bWVyYXRvciBhbmQgZGVub21pbmF0b3IgZmlsdGVyIGNvZWZmaWNpZW50cyBmcm9tIHRoZSBiaXF1YWQgCisgKiAgICAgICAgICAgIGNhc2NhZGUuIENvZWZmaWNpZW50IHNjYWxpbmcgYW5kIGNvZWZmaWNpZW50IHZlY3RvciBvcmdhbml6YXRpb24gCisgKiAgICAgICAgICAgIHNob3VsZCBmb2xsb3cgdGhlIGNvbnZlbnRpb25zIGRlc2NyaWJlZCBhYm92ZS4gVGhlIHZhbHVlIG9mIHRoZSAKKyAqICAgICAgICAgICAgY29lZmZpY2llbnQgc2NhbGVGYWN0b3IgZXhwb25lbnQgbXVzdCBiZSBub24tbmVnYXRpdmUuIChzZnA+PTApLiAKKyAqICAgbnVtQmlxdWFkIC0gdGhlIG51bWJlciBvZiBiaXF1YWRzIGNvbnRhaW5lZCBpbiB0aGUgSUlSIGZpbHRlciBjYXNjYWRlOiAKKyAqICAgICAgICAgICAgKFApIAorICogICBwRGVsYXlMaW5lIC0gcG9pbnRlciB0byB0aGUgMlAgLWVsZW1lbnQgZmlsdGVyIG1lbW9yeSBidWZmZXIgKHN0YXRlKS4gCisgKiAgICAgICAgICAgIFRoZSB1c2VyIGlzIHJlc3BvbnNpYmxlIGZvciBhbGxvY2F0aW9uLCBpbml0aWFsaXphdGlvbiwgYW5kIAorICogICAgICAgICAgICBkZS1hbGxvY2F0aW9uLiBUaGUgZmlsdGVyIG1lbW9yeSBlbGVtZW50cyBhcmUgaW5pdGlhbGl6ZWQgdG8gCisgKiAgICAgICAgICAgIHplcm8gaW4gbW9zdCBhcHBsaWNhdGlvbnMuIAorICoKKyAqIE91dHB1dCBBcmd1bWVudHM6CisgKiAgIAorICogICBwRHN0IC0gcG9pbnRlciB0byB0aGUgdmVjdG9yIG9mIGZpbHRlcmVkIG91dHB1dCBzYW1wbGVzIAorICoKKyAqIFJldHVybiBWYWx1ZToKKyAqICAgIAorICogICAgT01YX1N0c19Ob0VyciAtIG5vIGVycm9yIAorICogICAgT01YX1N0c19CYWRBcmdFcnIgLSBiYWQgYXJndW1lbnRzOyByZXR1cm5lZCBpZiBvbmUgb3IgbW9yZSBvZiB0aGUgCisgKiAgICAgICAgICAgICAgZm9sbG93aW5nIGlzIHRydWU6IAorICogICAgLSAgICBvbmUgb3IgbW9yZSBvZiB0aGUgZm9sbG93aW5nIHBvaW50ZXJzIGlzIE5VTEw6IHBTcmMsIHBEc3QsIAorICogICAgICAgICAgICAgIHBUYXBzLCBvciBwRGVsYXlMaW5lLiAKKyAqICAgIC0gICAgbGVuIDwgMCAKKyAqICAgIC0gICAgbnVtQmlxdWFkIDwgMSAKKyAqICAgIC0gICAgcFRhcHNbMytuKjZdIDwgMCwgZm9yIDAgPD0gbiA8IG51bUJpcXVhZCAobmVnYXRpdmUgc2NhbGluZykgCisgKgorICovCitPTVhSZXN1bHQgb214U1BfSUlSX0JpUXVhZERpcmVjdF9TMTYgKAorICAgIGNvbnN0IE9NWF9TMTYgKnBTcmMsCisgICAgT01YX1MxNiAqcERzdCwKKyAgICBPTVhfSU5UIGxlbiwKKyAgICBjb25zdCBPTVhfUzE2ICpwVGFwcywKKyAgICBPTVhfSU5UIG51bUJpcXVhZCwKKyAgICBPTVhfUzMyICpwRGVsYXlMaW5lCispOworCisKKworLyoqCisgKiBGdW5jdGlvbjogIG9teFNQX0lJUl9CaVF1YWREaXJlY3RfUzE2X0kgICAoMi4yLjMuMy4xKQorICoKKyAqIERlc2NyaXB0aW9uOgorICogQmxvY2sgYmlxdWFkIElJUiBmaWx0ZXJpbmcgZm9yIDE2LWJpdCBkYXRhIHR5cGUuIFRoaXMgZnVuY3Rpb24gYXBwbGllcyB0aGUgCisgKiBkaXJlY3QgZm9ybSBJSSBiaXF1YWQgSUlSIGNhc2NhZGUgZGVmaW5lZCBieSB0aGUgY29lZmZpY2llbnQgdmVjdG9yIHBUYXBzIAorICogdG8gYSB2ZWN0b3Igb2YgaW5wdXQgZGF0YS4gIFRoZSBpbnRlcm5hbCBhY2N1bXVsYXRvciB3aWR0aCBtdXN0IGJlIGF0IGxlYXN0IAorICogMzIgYml0cywgYW5kIHRoZSByZXN1bHQgaXMgc2F0dXJhdGVkIGlmIHRoZSBvcGVyYXRpb24gcHJvZHVjZXMgYSB2YWx1ZSAKKyAqIG91dHNpZGUgdGhlIHJhbmdlIG9mIGEgc2lnbmVkIDE2LWJpdCBpbnRlZ2VyLCBpLmUuLCB0aGUgb3V0cHV0IHdpbGwgCisgKiBzYXR1cmF0ZSB0byAweDgwMDAgKC0zMjc2OCkgZm9yIGEgbmVnYXRpdmUgb3ZlcmZsb3cgb3IgMHg3ZmZmICgzMjc2NykgZm9yIGEgCisgKiBwb3NpdGl2ZSBvdmVyZmxvdy4gIFRoZSByZXN1bHQgaXMgdW5kZWZpbmVkIGlmIGFueSBvZiB0aGUgcGFydGlhbGx5IAorICogYWNjdW11bGF0ZWQgdmFsdWVzIGV4Y2VlZHMgdGhlIHJhbmdlIG9mIGEgc2lnbmVkIDMyLWJpdCBpbnRlZ2VyLiAKKyAqCisgKiBJbnB1dCBBcmd1bWVudHM6CisgKiAgIAorICogICBwU3JjRHN0IC0gcG9pbnRlciB0byB0aGUgdmVjdG9yIG9mIGlucHV0IHNhbXBsZXMgdG8gd2hpY2ggdGhlIAorICogICAgICAgICAgICBmaWx0ZXIgaXMgYXBwbGllZCAKKyAqICAgbGVuIC0gdGhlIG51bWJlciBvZiBzYW1wbGVzIGNvbnRhaW5lZCBpbiBib3RoIHRoZSBpbnB1dCBhbmQgb3V0cHV0IAorICogICAgICAgICAgICB2ZWN0b3JzIAorICogICBwVGFwcyAtIHBvaW50ZXIgdG8gdGhlIDZQIC1lbGVtZW50IHZlY3RvciB0aGF0IGNvbnRhaW5zIHRoZSBjb21iaW5lZCAKKyAqICAgICAgICAgICAgbnVtZXJhdG9yIGFuZCBkZW5vbWluYXRvciBmaWx0ZXIgY29lZmZpY2llbnRzIGZyb20gdGhlIGJpcXVhZCAKKyAqICAgICAgICAgICAgY2FzY2FkZS4gQ29lZmZpY2llbnQgc2NhbGluZyBhbmQgY29lZmZpY2llbnQgdmVjdG9yIG9yZ2FuaXphdGlvbiAKKyAqICAgICAgICAgICAgc2hvdWxkIGZvbGxvdyB0aGUgY29udmVudGlvbnMgZGVzY3JpYmVkIGFib3ZlLiBUaGUgdmFsdWUgb2YgdGhlIAorICogICAgICAgICAgICBjb2VmZmljaWVudCBzY2FsZUZhY3RvciBleHBvbmVudCBtdXN0IGJlIG5vbi1uZWdhdGl2ZS4gKHNmcD49MCkuIAorICogICBudW1CaXF1YWQgLSB0aGUgbnVtYmVyIG9mIGJpcXVhZHMgY29udGFpbmVkIGluIHRoZSBJSVIgZmlsdGVyIGNhc2NhZGU6IAorICogICAgICAgICAgICAoUCkgCisgKiAgIHBEZWxheUxpbmUgLSBwb2ludGVyIHRvIHRoZSAyUCAtZWxlbWVudCBmaWx0ZXIgbWVtb3J5IGJ1ZmZlciAoc3RhdGUpLiAKKyAqICAgICAgICAgICAgVGhlIHVzZXIgaXMgcmVzcG9uc2libGUgZm9yIGFsbG9jYXRpb24sIGluaXRpYWxpemF0aW9uLCBhbmQgCisgKiAgICAgICAgICAgIGRlLWFsbG9jYXRpb24uIFRoZSBmaWx0ZXIgbWVtb3J5IGVsZW1lbnRzIGFyZSBpbml0aWFsaXplZCB0byAKKyAqICAgICAgICAgICAgemVybyBpbiBtb3N0IGFwcGxpY2F0aW9ucy4gCisgKgorICogT3V0cHV0IEFyZ3VtZW50czoKKyAqICAgCisgKiAgIHBTcmNEc3QgLSBwb2ludGVyIHRvIHRoZSB2ZWN0b3Igb2YgZmlsdGVyZWQgb3V0cHV0IHNhbXBsZXMgCisgKgorICogUmV0dXJuIFZhbHVlOgorICogICAgCisgKiAgICBPTVhfU3RzX05vRXJyIC0gbm8gZXJyb3IgCisgKiAgICBPTVhfU3RzX0JhZEFyZ0VyciAtIGJhZCBhcmd1bWVudHM7IHJldHVybmVkIGlmIG9uZSBvciBtb3JlIG9mIHRoZSAKKyAqICAgICAgICAgICAgICBmb2xsb3dpbmcgaXMgdHJ1ZTogCisgKiAgICAtICAgIG9uZSBvciBtb3JlIG9mIHRoZSBmb2xsb3dpbmcgcG9pbnRlcnMgaXMgTlVMTDogCisgKiAgICAgICAgICAgICAgcFNyY0RzdCwgcFRhcHMsIG9yIHBEZWxheUxpbmUuIAorICogICAgLSAgICBsZW4gPCAwIAorICogICAgLSAgICBudW1CaXF1YWQgPCAxIAorICogICAgLSAgICBwVGFwc1szK24qNl0gPCAwLCBmb3IgMCA8PSBuIDwgbnVtQmlxdWFkIChuZWdhdGl2ZSBzY2FsaW5nKSAKKyAqCisgKi8KK09NWFJlc3VsdCBvbXhTUF9JSVJfQmlRdWFkRGlyZWN0X1MxNl9JICgKKyAgICBPTVhfUzE2ICpwU3JjRHN0LAorICAgIE9NWF9JTlQgbGVuLAorICAgIGNvbnN0IE9NWF9TMTYgKnBUYXBzLAorICAgIE9NWF9JTlQgbnVtQmlxdWFkLAorICAgIE9NWF9TMzIgKnBEZWxheUxpbmUKKyk7CisKKworCisvKioKKyAqIEZ1bmN0aW9uOiAgb214U1BfSUlST25lX0JpUXVhZERpcmVjdF9TMTYgICAoMi4yLjMuMy4yKQorICoKKyAqIERlc2NyaXB0aW9uOgorICogU2luZ2xlLXNhbXBsZSBiaXF1YWQgSUlSIGZpbHRlcmluZyBmb3IgMTYtYml0IGRhdGEgdHlwZS4gVGhpcyBmdW5jdGlvbiAKKyAqIGFwcGxpZXMgdGhlIGRpcmVjdCBmb3JtIElJIGJpcXVhZCBJSVIgY2FzY2FkZSBkZWZpbmVkIGJ5IHRoZSBjb2VmZmljaWVudCAKKyAqIHZlY3RvciBwVGFwcyB0byBhIHNpbmdsZSBzYW1wbGUgb2YgaW5wdXQgZGF0YS4gIFRoZSBpbnRlcm5hbCBhY2N1bXVsYXRvciAKKyAqIHdpZHRoIG11c3QgYmUgYXQgbGVhc3QgMzIgYml0cywgYW5kIHRoZSByZXN1bHQgaXMgc2F0dXJhdGVkIGlmIHRoZSAKKyAqIG9wZXJhdGlvbiBwcm9kdWNlcyBhIHZhbHVlIG91dHNpZGUgdGhlIHJhbmdlIG9mIGEgc2lnbmVkIDE2LWJpdCBpbnRlZ2VyLCAKKyAqIGkuZS4sIHRoZSBvdXRwdXQgd2lsbCBzYXR1cmF0ZSB0byAweDgwMDAgKC0zMjc2OCkgZm9yIGEgbmVnYXRpdmUgb3ZlcmZsb3cgCisgKiBvciAweDdmZmYgKDMyNzY3KSBmb3IgYSBwb3NpdGl2ZSBvdmVyZmxvdy4gIFRoZSByZXN1bHQgaXMgdW5kZWZpbmVkIGlmIGFueSAKKyAqIG9mIHRoZSBwYXJ0aWFsbHkgYWNjdW11bGF0ZWQgdmFsdWVzIGV4Y2VlZHMgdGhlIHJhbmdlIG9mIGEgc2lnbmVkIDMyLWJpdCAKKyAqIGludGVnZXIuIAorICoKKyAqIElucHV0IEFyZ3VtZW50czoKKyAqICAgCisgKiAgIHZhbCAgIC0gdGhlIHNpbmdsZSBpbnB1dCBzYW1wbGUgdG8gd2hpY2ggdGhlIGZpbHRlciBpcyAKKyAqICAgICAgICAgICAgYXBwbGllZC4gCisgKiAgIHBUYXBzIC0gcG9pbnRlciB0byB0aGUgNlAtZWxlbWVudCB2ZWN0b3IgdGhhdCBjb250YWlucyB0aGUgY29tYmluZWQgCisgKiAgICAgICAgICAgIG51bWVyYXRvciBhbmQgZGVub21pbmF0b3IgZmlsdGVyIGNvZWZmaWNpZW50cyBmcm9tIHRoZSBiaXF1YWQgCisgKiAgICAgICAgICAgIGNhc2NhZGUuIENvZWZmaWNpZW50IHNjYWxpbmcgYW5kIGNvZWZmaWNpZW50IHZlY3RvciBvcmdhbml6YXRpb24gCisgKiAgICAgICAgICAgIHNob3VsZCBmb2xsb3cgdGhlIGNvbnZlbnRpb25zIGRlc2NyaWJlZCBhYm92ZS4gVGhlIHZhbHVlIG9mIHRoZSAKKyAqICAgICAgICAgICAgY29lZmZpY2llbnQgc2NhbGVmYWN0b3IgZXhwb25lbnQgbXVzdCBiZSBub24tbmVnYXRpdmU6IChzZnA+PTApLiAKKyAqICAgbnVtQmlxdWFkIC0gdGhlIG51bWJlciBvZiBiaXF1YWRzIGNvbnRhaW5lZCBpbiB0aGUgSUlSIGZpbHRlciBjYXNjYWRlOiAKKyAqICAgICAgICAgICAgKFApIAorICogICBwRGVsYXlMaW5lIC0gcG9pbnRlciB0byB0aGUgMnAtZWxlbWVudCBmaWx0ZXIgbWVtb3J5IGJ1ZmZlciAoc3RhdGUpLiBUaGUgCisgKiAgICAgICAgICAgIHVzZXIgaXMgcmVzcG9uc2libGUgZm9yIGFsbG9jYXRpb24sIGluaXRpYWxpemF0aW9uLCBhbmQgCisgKiAgICAgICAgICAgIGRlYWxsb2NhdGlvbi4gVGhlIGZpbHRlciBtZW1vcnkgZWxlbWVudHMgYXJlIGluaXRpYWxpemVkIHRvIHplcm8gCisgKiAgICAgICAgICAgIGluIG1vc3QgYXBwbGljYXRpb25zLiAKKyAqCisgKiBPdXRwdXQgQXJndW1lbnRzOgorICogICAKKyAqICAgcFJlc3VsdCAtIHBvaW50ZXIgdG8gdGhlIGZpbHRlcmVkIG91dHB1dCBzYW1wbGUgCisgKgorICogUmV0dXJuIFZhbHVlOgorICogICAgCisgKiAgICBPTVhfU3RzX05vRXJyIC0gbm8gZXJyb3IgCisgKiAgICBPTVhfU3RzX0JhZEFyZ0VyciAtIGJhZCBhcmd1bWVudHM7IHJldHVybmVkIGlmIG9uZSBvciBtb3JlIG9mIHRoZSAKKyAqICAgICAgICAgICAgICBmb2xsb3dpbmcgaXMgdHJ1ZTogCisgKiAgICAtICAgIG9uZSBvciBtb3JlIG9mIHRoZSBmb2xsb3dpbmcgcG9pbnRlcnMgaXMgTlVMTDogcFJlc3VsdCwgCisgKiAgICAgICAgICAgICAgcFZhbFJlc3VsdCwgcFRhcHMsIG9yIHBEZWxheUxpbmUuIAorICogICAgLSAgICBudW1CaXF1YWQgPCAxIAorICogICAgLSAgICBwVGFwc1szK24qNl0gPCAwLCBmb3IgMCA8PSBuIDwgbnVtQmlxdWFkIChuZWdhdGl2ZSBzY2FsaW5nKSAKKyAqCisgKi8KK09NWFJlc3VsdCBvbXhTUF9JSVJPbmVfQmlRdWFkRGlyZWN0X1MxNiAoCisgICAgT01YX1MxNiB2YWwsCisgICAgT01YX1MxNiAqcFJlc3VsdCwKKyAgICBjb25zdCBPTVhfUzE2ICpwVGFwcywKKyAgICBPTVhfSU5UIG51bUJpcXVhZCwKKyAgICBPTVhfUzMyICpwRGVsYXlMaW5lCispOworCisKKworLyoqCisgKiBGdW5jdGlvbjogIG9teFNQX0lJUk9uZV9CaVF1YWREaXJlY3RfUzE2X0kgICAoMi4yLjMuMy4yKQorICoKKyAqIERlc2NyaXB0aW9uOgorICogU2luZ2xlLXNhbXBsZSBiaXF1YWQgSUlSIGZpbHRlcmluZyBmb3IgMTYtYml0IGRhdGEgdHlwZS4gVGhpcyBmdW5jdGlvbiAKKyAqIGFwcGxpZXMgdGhlIGRpcmVjdCBmb3JtIElJIGJpcXVhZCBJSVIgY2FzY2FkZSBkZWZpbmVkIGJ5IHRoZSBjb2VmZmljaWVudCAKKyAqIHZlY3RvciBwVGFwcyB0byBhIHNpbmdsZSBzYW1wbGUgb2YgaW5wdXQgZGF0YS4gIFRoZSBpbnRlcm5hbCBhY2N1bXVsYXRvciAKKyAqIHdpZHRoIG11c3QgYmUgYXQgbGVhc3QgMzIgYml0cywgYW5kIHRoZSByZXN1bHQgaXMgc2F0dXJhdGVkIGlmIHRoZSAKKyAqIG9wZXJhdGlvbiBwcm9kdWNlcyBhIHZhbHVlIG91dHNpZGUgdGhlIHJhbmdlIG9mIGEgc2lnbmVkIDE2LWJpdCBpbnRlZ2VyLCAKKyAqIGkuZS4sIHRoZSBvdXRwdXQgd2lsbCBzYXR1cmF0ZSB0byAweDgwMDAgKC0zMjc2OCkgZm9yIGEgbmVnYXRpdmUgb3ZlcmZsb3cgCisgKiBvciAweDdmZmYgKDMyNzY3KSBmb3IgYSBwb3NpdGl2ZSBvdmVyZmxvdy4gIFRoZSByZXN1bHQgaXMgdW5kZWZpbmVkIGlmIGFueSAKKyAqIG9mIHRoZSBwYXJ0aWFsbHkgYWNjdW11bGF0ZWQgdmFsdWVzIGV4Y2VlZHMgdGhlIHJhbmdlIG9mIGEgc2lnbmVkIDMyLWJpdCAKKyAqIGludGVnZXIuIAorICoKKyAqIElucHV0IEFyZ3VtZW50czoKKyAqICAgCisgKiAgIHBWYWxSZXN1bHQgLSBwb2ludGVyIHRvIHRoZSBzaW5nbGUgaW5wdXQgc2FtcGxlIHRvIHdoaWNoIHRoZSBmaWx0ZXIgaXMgCisgKiAgICAgICAgICAgIGFwcGxpZWQuIAorICogICBwVGFwcyAtIHBvaW50ZXIgdG8gdGhlIDZQLWVsZW1lbnQgdmVjdG9yIHRoYXQgY29udGFpbnMgdGhlIGNvbWJpbmVkIAorICogICAgICAgICAgICBudW1lcmF0b3IgYW5kIGRlbm9taW5hdG9yIGZpbHRlciBjb2VmZmljaWVudHMgZnJvbSB0aGUgYmlxdWFkIAorICogICAgICAgICAgICBjYXNjYWRlLiBDb2VmZmljaWVudCBzY2FsaW5nIGFuZCBjb2VmZmljaWVudCB2ZWN0b3Igb3JnYW5pemF0aW9uIAorICogICAgICAgICAgICBzaG91bGQgZm9sbG93IHRoZSBjb252ZW50aW9ucyBkZXNjcmliZWQgYWJvdmUuIFRoZSB2YWx1ZSBvZiB0aGUgCisgKiAgICAgICAgICAgIGNvZWZmaWNpZW50IHNjYWxlZmFjdG9yIGV4cG9uZW50IG11c3QgYmUgbm9uLW5lZ2F0aXZlOiAoc2ZwPj0wKS4gCisgKiAgIG51bUJpcXVhZCAtIHRoZSBudW1iZXIgb2YgYmlxdWFkcyBjb250YWluZWQgaW4gdGhlIElJUiBmaWx0ZXIgY2FzY2FkZTogCisgKiAgICAgICAgICAgIChQKSAKKyAqICAgcERlbGF5TGluZSAtIHBvaW50ZXIgdG8gdGhlIDJwLWVsZW1lbnQgZmlsdGVyIG1lbW9yeSBidWZmZXIgKHN0YXRlKS4gVGhlIAorICogICAgICAgICAgICB1c2VyIGlzIHJlc3BvbnNpYmxlIGZvciBhbGxvY2F0aW9uLCBpbml0aWFsaXphdGlvbiwgYW5kIAorICogICAgICAgICAgICBkZWFsbG9jYXRpb24uIFRoZSBmaWx0ZXIgbWVtb3J5IGVsZW1lbnRzIGFyZSBpbml0aWFsaXplZCB0byB6ZXJvIAorICogICAgICAgICAgICBpbiBtb3N0IGFwcGxpY2F0aW9ucy4gCisgKgorICogT3V0cHV0IEFyZ3VtZW50czoKKyAqICAgCisgKiAgIHBWYWxSZXN1bHQgLSBwb2ludGVyIHRvIHRoZSBmaWx0ZXJlZCBvdXRwdXQgc2FtcGxlIAorICoKKyAqIFJldHVybiBWYWx1ZToKKyAqICAgIAorICogICAgT01YX1N0c19Ob0VyciAtIG5vIGVycm9yIAorICogICAgT01YX1N0c19CYWRBcmdFcnIgLSBiYWQgYXJndW1lbnRzOyByZXR1cm5lZCBpZiBvbmUgb3IgbW9yZSBvZiB0aGUgCisgKiAgICAgICAgICAgICAgZm9sbG93aW5nIGlzIHRydWU6IAorICogICAgLSAgICBvbmUgb3IgbW9yZSBvZiB0aGUgZm9sbG93aW5nIHBvaW50ZXJzIGlzIE5VTEw6CisgKiAgICAgICAgICAgICAgcFZhbFJlc3VsdCwgcFRhcHMsIG9yIHBEZWxheUxpbmUuIAorICogICAgLSAgICBudW1CaXF1YWQgPCAxIAorICogICAgLSAgICBwVGFwc1szK24qNl0gPCAwLCBmb3IgMCA8PSBuIDwgbnVtQmlxdWFkIChuZWdhdGl2ZSBzY2FsaW5nKSAKKyAqCisgKi8KK09NWFJlc3VsdCBvbXhTUF9JSVJPbmVfQmlRdWFkRGlyZWN0X1MxNl9JICgKKyAgICBPTVhfUzE2ICpwVmFsUmVzdWx0LAorICAgIGNvbnN0IE9NWF9TMTYgKnBUYXBzLAorICAgIE9NWF9JTlQgbnVtQmlxdWFkLAorICAgIE9NWF9TMzIgKnBEZWxheUxpbmUKKyk7CisKKworCisvKioKKyAqIEZ1bmN0aW9uOiAgb214U1BfRmlsdGVyTWVkaWFuX1MzMiAgICgyLjIuMy40LjEpCisgKgorICogRGVzY3JpcHRpb246CisgKiBUaGlzIGZ1bmN0aW9uIGNvbXB1dGVzIHRoZSBtZWRpYW4gb3ZlciB0aGUgcmVnaW9uIHNwZWNpZmllZCBieSB0aGUgbWVkaWFuIAorICogbWFzayBmb3IgdGhlIGV2ZXJ5IGVsZW1lbnQgb2YgdGhlIGlucHV0IGFycmF5LiBUaGUgbWVkaWFuIG91dHB1dHMgYXJlIAorICogc3RvcmVkIGluIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIG9mIHRoZSBvdXRwdXQgdmVjdG9yLiAKKyAqCisgKiBJbnB1dCBBcmd1bWVudHM6CisgKiAgIAorICogICBwU3JjIC0gcG9pbnRlciB0byB0aGUgaW5wdXQgdmVjdG9yIAorICogICBsZW4gLSBudW1iZXIgb2YgZWxlbWVudHMgY29udGFpbmVkIGluIHRoZSBpbnB1dCBhbmQgb3V0cHV0IHZlY3RvcnMgKDAgPCAKKyAqICAgICAgICAgICAgbGVuIDwgNjU1MzYpIAorICogICBtYXNrU2l6ZSAtIG1lZGlhbiBtYXNrIHNpemU7IGlmIGFuIGV2ZW4gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGUgZnVuY3Rpb24gCisgKiAgICAgICAgICAgIHN1YnRyYWN0cyAxIGFuZCB1c2VzIHRoZSBvZGQgdmFsdWUgb2YgdGhlIGZpbHRlciBtYXNrIGZvciBtZWRpYW4gCisgKiAgICAgICAgICAgIGZpbHRlcmluZyAoMCA8IG1hc2tTaXplIDwgMjU2KSAKKyAqCisgKiBPdXRwdXQgQXJndW1lbnRzOgorICogICAKKyAqICAgcERzdCAtIHBvaW50ZXIgdG8gdGhlIG1lZGlhbi1maWx0ZXJlZCBvdXRwdXQgdmVjdG9yIAorICoKKyAqIFJldHVybiBWYWx1ZToKKyAqICAgIAorICogICAgT01YX1N0c19Ob0VyciAtIG5vIGVycm9yIAorICogICAgT01YX1N0c19CYWRBcmdFcnIgLSBiYWQgYXJndW1lbnRzOyByZXR1cm5lZCBpZiBvbmUgb3IgbW9yZSBvZiB0aGUgCisgKiAgICAgICAgICAgICAgZm9sbG93aW5nIGlzIHRydWU6IAorICogICAgLSAgIG9uZSBvciBtb3JlIG9mIHRoZSBmb2xsb3dpbmcgcG9pbnRlcnMgaXMgTlVMTDogcFNyYywgcERzdC4gCisgKiAgICAtICAgIGxlbiA8IDAgCisgKiAgICAtICAgIG1hc2tTaXplIDwgMSBvciBtYXNrU2l6ZT4gMjU1IAorICogICAgT01YX1N0c1NQX0V2ZW5NZWRpYW5NYXNrU2l6ZUVyciAtIGV2ZW4gbWFzayBzaXplIHJlcGxhY2VkIGJ5IG9kZCBtYXNrIAorICogICAgICAgICAgICAgIHNpemUgCisgKgorICovCitPTVhSZXN1bHQgb214U1BfRmlsdGVyTWVkaWFuX1MzMiAoCisgICAgY29uc3QgT01YX1MzMiAqcFNyYywKKyAgICBPTVhfUzMyICpwRHN0LAorICAgIE9NWF9JTlQgbGVuLAorICAgIE9NWF9JTlQgbWFza1NpemUKKyk7CisKKworCisvKioKKyAqIEZ1bmN0aW9uOiAgb214U1BfRmlsdGVyTWVkaWFuX1MzMl9JICAgKDIuMi4zLjQuMSkKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIFRoaXMgZnVuY3Rpb24gY29tcHV0ZXMgdGhlIG1lZGlhbiBvdmVyIHRoZSByZWdpb24gc3BlY2lmaWVkIGJ5IHRoZSBtZWRpYW4gCisgKiBtYXNrIGZvciB0aGUgZXZlcnkgZWxlbWVudCBvZiB0aGUgaW5wdXQgYXJyYXkuIFRoZSBtZWRpYW4gb3V0cHV0cyBhcmUgCisgKiBzdG9yZWQgaW4gdGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudHMgb2YgdGhlIG91dHB1dCB2ZWN0b3IuIAorICoKKyAqIElucHV0IEFyZ3VtZW50czoKKyAqICAgCisgKiAgIHBTcmNEc3QgLSBwb2ludGVyIHRvIHRoZSBpbnB1dCB2ZWN0b3IgCisgKiAgIGxlbiAtIG51bWJlciBvZiBlbGVtZW50cyBjb250YWluZWQgaW4gdGhlIGlucHV0IGFuZCBvdXRwdXQgdmVjdG9ycyAoMCA8IAorICogICAgICAgICAgICBsZW4gPCA2NTUzNikgCisgKiAgIG1hc2tTaXplIC0gbWVkaWFuIG1hc2sgc2l6ZTsgaWYgYW4gZXZlbiB2YWx1ZSBpcyBzcGVjaWZpZWQsIHRoZSBmdW5jdGlvbiAKKyAqICAgICAgICAgICAgc3VidHJhY3RzIDEgYW5kIHVzZXMgdGhlIG9kZCB2YWx1ZSBvZiB0aGUgZmlsdGVyIG1hc2sgZm9yIG1lZGlhbiAKKyAqICAgICAgICAgICAgZmlsdGVyaW5nICgwIDwgbWFza1NpemUgPCAyNTYpIAorICoKKyAqIE91dHB1dCBBcmd1bWVudHM6CisgKiAgIAorICogICBwU3JjRHN0IC0gcG9pbnRlciB0byB0aGUgbWVkaWFuLWZpbHRlcmVkIG91dHB1dCB2ZWN0b3IgCisgKgorICogUmV0dXJuIFZhbHVlOgorICogICAgCisgKiAgICBPTVhfU3RzX05vRXJyIC0gbm8gZXJyb3IgCisgKiAgICBPTVhfU3RzX0JhZEFyZ0VyciAtIGJhZCBhcmd1bWVudHM7IHJldHVybmVkIGlmIG9uZSBvciBtb3JlIG9mIHRoZSAKKyAqICAgICAgICAgICAgICBmb2xsb3dpbmcgaXMgdHJ1ZTogCisgKiAgICAtICAgIHBTcmNEc3QgaXMgTlVMTC4gCisgKiAgICAtICAgIGxlbiA8IDAgCisgKiAgICAtICAgIG1hc2tTaXplIDwgMSBvciBtYXNrU2l6ZT4gMjU1IAorICogICAgT01YX1N0c1NQX0V2ZW5NZWRpYW5NYXNrU2l6ZUVyciAtIGV2ZW4gbWFzayBzaXplIHJlcGxhY2VkIGJ5IG9kZCBtYXNrIAorICogICAgICAgICAgICAgIHNpemUgCisgKgorICovCitPTVhSZXN1bHQgb214U1BfRmlsdGVyTWVkaWFuX1MzMl9JICgKKyAgICBPTVhfUzMyICpwU3JjRHN0LAorICAgIE9NWF9JTlQgbGVuLAorICAgIE9NWF9JTlQgbWFza1NpemUKKyk7CisKKworCisvKioKKyAqIEZ1bmN0aW9uOiAgb214U1BfRkZUSW5pdF9DX1NDMTYgICAoMi4yLjQuMS4yKQorICoKKyAqIERlc2NyaXB0aW9uOgorICogVGhlc2UgZnVuY3Rpb25zIGluaXRpYWxpemUgdGhlIHNwZWNpZmljYXRpb24gc3RydWN0dXJlcyByZXF1aXJlZCBmb3IgdGhlIAorICogY29tcGxleCBGRlQgYW5kIElGRlQgZnVuY3Rpb25zLiBEZXNpcmVkIGJsb2NrIGxlbmd0aCBpcyBzcGVjaWZpZWQgYXMgYW4gCisgKiBpbnB1dC4gVGhlIGZ1bmN0aW9uIDxGRlRJbml0X0NfU0MxNj4gaXMgdXNlZCB0byBpbml0aWFsaXplIHRoZSAKKyAqIHNwZWNpZmljYXRpb24gc3RydWN0dXJlcyBmb3IgZnVuY3Rpb25zIDxGRlRGd2RfQ1RvQ19TQzE2X1Nmcz4gYW5kIAorICogPEZGVEludl9DVG9DX1NDMTZfU2ZzPi4KKyAqCisgKiBNZW1vcnkgZm9yIHRoZSBzcGVjaWZpY2F0aW9uIHN0cnVjdHVyZSAqcEZGVFNwZWMgCisgKiBtdXN0IGJlIGFsbG9jYXRlZCBwcmlvciB0byBjYWxsaW5nIHRoZXNlIGZ1bmN0aW9ucyBhbmQgc2hvdWxkIGJlIDQtYnl0ZSAKKyAqIGFsaWduZWQgZm9yIG9teFNQX0ZGVEluaXRfQ19TQzE2LiAKKyAqCisgKiBUaGUgc3BhY2UgcmVxdWlyZWQgZm9yICpwRkZUU3BlYywgaW4gYnl0ZXMsIGNhbiBiZSAKKyAqIGRldGVybWluZWQgdXNpbmcgPEZGVEdldEJ1ZlNpemVfQ19TQzE2Pi4gCisgKgorICogSW5wdXQgQXJndW1lbnRzOgorICogICAKKyAqICAgb3JkZXIgLSBiYXNlLTIgbG9nYXJpdGhtIG9mIHRoZSBkZXNpcmVkIGJsb2NrIGxlbmd0aDsgCisgKiAgICAgICAgICAgdmFsaWQgaW4gdGhlIHJhbmdlIFswLDEyXSAKKyAqCisgKiBPdXRwdXQgQXJndW1lbnRzOgorICogICAKKyAqICAgcEZGVFNwZWMgLSBwb2ludGVyIHRvIGluaXRpYWxpemVkIHNwZWNpZmljYXRpb24gc3RydWN0dXJlIAorICoKKyAqIFJldHVybiBWYWx1ZToKKyAqICAgIAorICogICAgT01YX1N0c19Ob0VyciAtbm8gZXJyb3IgCisgKiAgICBPTVhfU3RzX0JhZEFyZ0VyciAtIGJhZCBhcmd1bWVudHM7IHJldHVybmVkIGlmIG9uZSBvciBtb3JlIG9mIHRoZSAKKyAqICAgICAgICAgICAgICBmb2xsb3dpbmcgaXMgdHJ1ZTogCisgKiAgICAtICAgcEZGVFNwZWMgaXMgZWl0aGVyIE5VTEwgb3IgdmlvbGF0ZXMgdGhlIDQtYnl0ZSBhbGlnbm1lbnQgCisgKiAgICAgICAgICAgICAgcmVzdHJpY3Rpb25zIAorICogICAgLSAgIG9yZGVyIDwgMCBvciBvcmRlciA+IDEyIAorICoKKyAqLworT01YUmVzdWx0IG9teFNQX0ZGVEluaXRfQ19TQzE2ICgKKyAgICBPTVhGRlRTcGVjX0NfU0MxNiAqcEZGVFNwZWMsCisgICAgT01YX0lOVCBvcmRlcgorKTsKKworCisKKy8qKgorICogRnVuY3Rpb246ICBvbXhTUF9GRlRJbml0X0NfU0MzMiAgICgyLjIuNC4xLjIpCisgKgorICogRGVzY3JpcHRpb246CisgKiBUaGVzZSBmdW5jdGlvbnMgaW5pdGlhbGl6ZSB0aGUgc3BlY2lmaWNhdGlvbiBzdHJ1Y3R1cmVzIHJlcXVpcmVkIGZvciB0aGUgCisgKiBjb21wbGV4IEZGVCBhbmQgSUZGVCBmdW5jdGlvbnMuIERlc2lyZWQgYmxvY2sgbGVuZ3RoIGlzIHNwZWNpZmllZCBhcyBhbiAKKyAqIGlucHV0LiBUaGUgZnVuY3Rpb24gPEZGVEluaXRfQ19TQzMyPiBpcyB1c2VkIHRvIGluaXRpYWxpemUgCisgKiB0aGUgc3BlY2lmaWNhdGlvbiBzdHJ1Y3R1cmVzIGZvciB0aGUgZnVuY3Rpb25zIDxGRlRGd2RfQ1RvQ19TQzMyX1Nmcz4gYW5kIAorICogPEZGVEludl9DVG9DX1NDMzJfU2ZzPi4KKyAqCisgKiBNZW1vcnkgZm9yIHRoZSBzcGVjaWZpY2F0aW9uIHN0cnVjdHVyZSAqcEZGVFNwZWMgbXVzdCBiZSBhbGxvY2F0ZWQgcHJpb3IgCisgKiB0byBjYWxsaW5nIHRoZXNlIGZ1bmN0aW9ucyBhbmQgc2hvdWxkIGJlIDgtYnl0ZSBhbGlnbmVkIGZvciAKKyAqIG9teFNQX0ZGVEluaXRfQ19TQzMyLiAKKyAqCisgKiBUaGUgc3BhY2UgcmVxdWlyZWQgZm9yICpwRkZUU3BlYywgaW4gYnl0ZXMsIGNhbiBiZSAKKyAqIGRldGVybWluZWQgdXNpbmcgPEZGVEdldEJ1ZlNpemVfQ19TQzMyPi4gCisgKgorICogSW5wdXQgQXJndW1lbnRzOgorICogICAKKyAqICAgb3JkZXIgLSBiYXNlLTIgbG9nYXJpdGhtIG9mIHRoZSBkZXNpcmVkIGJsb2NrIGxlbmd0aDsgdmFsaWQgaW4gdGhlIHJhbmdlIAorICogICAgICAgICAgICBbMCwxMl0gCisgKgorICogT3V0cHV0IEFyZ3VtZW50czoKKyAqICAgCisgKiAgIHBGRlRTcGVjIC0gcG9pbnRlciB0byBpbml0aWFsaXplZCBzcGVjaWZpY2F0aW9uIHN0cnVjdHVyZSAKKyAqCisgKiBSZXR1cm4gVmFsdWU6CisgKiAgICAKKyAqICAgIE9NWF9TdHNfTm9FcnIgLW5vIGVycm9yIAorICogICAgT01YX1N0c19CYWRBcmdFcnIgLSBiYWQgYXJndW1lbnRzOyByZXR1cm5lZCBpZiBvbmUgb3IgbW9yZSBvZiB0aGUgCisgKiAgICAgICAgICAgICAgZm9sbG93aW5nIGlzIHRydWU6IAorICogICAgLSAgIHBGRlRTcGVjIGlzIGVpdGhlciBOVUxMIG9yIHZpb2xhdGVzIHRoZSA4LWJ5dGUgYWxpZ25tZW50IAorICogICAgICAgICAgICAgIHJlc3RyaWN0aW9ucyAKKyAqICAgIC0gICBvcmRlciA8IDAgb3Igb3JkZXIgPiAxMiAKKyAqCisgKi8KK09NWFJlc3VsdCBvbXhTUF9GRlRJbml0X0NfU0MzMiAoCisgICAgT01YRkZUU3BlY19DX1NDMzIgKnBGRlRTcGVjLAorICAgIE9NWF9JTlQgb3JkZXIKKyk7CisKKy8qKgorICogRnVuY3Rpb246ICBvbXhTUF9GRlRJbml0X0NfRkMzMiAgICgyLjIuNC4xLjIpCisgKgorICogRGVzY3JpcHRpb246CisgKiBUaGVzZSBmdW5jdGlvbnMgaW5pdGlhbGl6ZSB0aGUgc3BlY2lmaWNhdGlvbiBzdHJ1Y3R1cmVzIHJlcXVpcmVkIGZvciB0aGUgCisgKiBjb21wbGV4IEZGVCBhbmQgSUZGVCBmdW5jdGlvbnMuIERlc2lyZWQgYmxvY2sgbGVuZ3RoIGlzIHNwZWNpZmllZCBhcyBhbiAKKyAqIGlucHV0LiBUaGUgZnVuY3Rpb24gPEZGVEluaXRfQ19GQzMyPiBpcyB1c2VkIHRvIGluaXRpYWxpemUgCisgKiB0aGUgc3BlY2lmaWNhdGlvbiBzdHJ1Y3R1cmVzIGZvciB0aGUgZnVuY3Rpb25zIDxGRlRGd2RfQ1RvQ19GQzMyX1Nmcz4gYW5kIAorICogPEZGVEludl9DVG9DX0ZDMzJfU2ZzPi4KKyAqCisgKiBNZW1vcnkgZm9yIHRoZSBzcGVjaWZpY2F0aW9uIHN0cnVjdHVyZSAqcEZGVFNwZWMgbXVzdCBiZSBhbGxvY2F0ZWQgcHJpb3IgCisgKiB0byBjYWxsaW5nIHRoZXNlIGZ1bmN0aW9ucyBhbmQgc2hvdWxkIGJlIDgtYnl0ZSBhbGlnbmVkIGZvciAKKyAqIG9teFNQX0ZGVEluaXRfQ19GQzMyLiAKKyAqCisgKiBUaGUgc3BhY2UgcmVxdWlyZWQgZm9yICpwRkZUU3BlYywgaW4gYnl0ZXMsIGNhbiBiZSAKKyAqIGRldGVybWluZWQgdXNpbmcgPEZGVEdldEJ1ZlNpemVfQ19GQzMyPi4gCisgKgorICogSW5wdXQgQXJndW1lbnRzOgorICogICAKKyAqICAgb3JkZXIgLSBiYXNlLTIgbG9nYXJpdGhtIG9mIHRoZSBkZXNpcmVkIGJsb2NrIGxlbmd0aDsgdmFsaWQgaW4gdGhlIHJhbmdlIAorICogICAgICAgICAgICBbMCwxMl0gCisgKgorICogT3V0cHV0IEFyZ3VtZW50czoKKyAqICAgCisgKiAgIHBGRlRTcGVjIC0gcG9pbnRlciB0byBpbml0aWFsaXplZCBzcGVjaWZpY2F0aW9uIHN0cnVjdHVyZSAKKyAqCisgKiBSZXR1cm4gVmFsdWU6CisgKiAgICAKKyAqICAgIE9NWF9TdHNfTm9FcnIgLW5vIGVycm9yIAorICogICAgT01YX1N0c19CYWRBcmdFcnIgLSBiYWQgYXJndW1lbnRzOyByZXR1cm5lZCBpZiBvbmUgb3IgbW9yZSBvZiB0aGUgCisgKiAgICAgICAgICAgICAgZm9sbG93aW5nIGlzIHRydWU6IAorICogICAgLSAgIHBGRlRTcGVjIGlzIGVpdGhlciBOVUxMIG9yIHZpb2xhdGVzIHRoZSA4LWJ5dGUgYWxpZ25tZW50IAorICogICAgICAgICAgICAgIHJlc3RyaWN0aW9ucyAKKyAqICAgIC0gICBvcmRlciA8IDAgb3Igb3JkZXIgPiAxMiAKKyAqCisgKi8KK09NWFJlc3VsdCBvbXhTUF9GRlRJbml0X0NfRkMzMigKKyAgICBPTVhGRlRTcGVjX0NfRkMzMiogcEZGVFNwZWMsCisgICAgT01YX0lOVCBvcmRlcgorKTsKKworCisKKy8qKgorICogRnVuY3Rpb246ICBvbXhTUF9GRlRJbml0X1JfUzE2UzMyICAgKDIuMi40LjEuNCkKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIFRoZXNlIGZ1bmN0aW9ucyBpbml0aWFsaXplIHNwZWNpZmljYXRpb24gc3RydWN0dXJlcyByZXF1aXJlZCBmb3IgdGhlIHJlYWwgCisgKiBGRlQgYW5kIElGRlQgZnVuY3Rpb25zLiBUaGUgZnVuY3Rpb24gPEZGVEluaXRfUl9TMTZTMzI+IGlzIHVzZWQgdG8gCisgKiBpbml0aWFsaXplIHRoZSBzcGVjaWZpY2F0aW9uIHN0cnVjdHVyZXMgZm9yIGZ1bmN0aW9ucyAKKyAqIDxGRlRGd2RfUlRvQ0NTX1MxNlMzMl9TZnM+IGFuZCA8RkZUSW52X0NDU1RvUl9TMzJTMTZfU2ZzPi4KKyAqIAorICogTWVtb3J5IGZvciAKKyAqICpwRkZURndkU3BlYyBtdXN0IGJlIGFsbG9jYXRlZCBiZWZvcmUgY2FsbGluZyB0aGVzZSBmdW5jdGlvbnMgYW5kIHNob3VsZCBiZSAKKyAqIDgtYnl0ZSBhbGlnbmVkLiBUaGUgbnVtYmVyIG9mIGJ5dGVzIHJlcXVpcmVkIGZvciAqcEZGVEZ3ZFNwZWMgY2FuIGJlIAorICogZGV0ZXJtaW5lZCB1c2luZyA8RkZUR2V0QnVmU2l6ZV9SX1MxNlMzMj4uIAorICoKKyAqIElucHV0IEFyZ3VtZW50czoKKyAqICAgCisgKiAgIG9yZGVyIC0gYmFzZS0yIGxvZ2FyaXRobSBvZiB0aGUgZGVzaXJlZCBibG9jayBsZW5ndGg7IHZhbGlkIGluIHRoZSByYW5nZSAKKyAqICAgICAgICAgICAgWzAsMTJdIAorICoKKyAqIE91dHB1dCBBcmd1bWVudHM6CisgKiAgIAorICogICBwRkZURndkU3BlYyAtIHBvaW50ZXIgdG8gdGhlIGluaXRpYWxpemVkIHNwZWNpZmljYXRpb24gc3RydWN0dXJlIAorICoKKyAqIFJldHVybiBWYWx1ZToKKyAqICAgIAorICogICAgT01YX1N0c19Ob0VyciAtIG5vIGVycm9yIAorICogICAgT01YX1N0c19CYWRBcmdFcnIgLSBiYWQgYXJndW1lbnRzOyByZXR1cm5lZCBpZiBvbmUgb3IgbW9yZSBvZiB0aGUgCisgKiAgICAgICAgICAgICAgZm9sbG93aW5nIGlzIHRydWU6IAorICogICAgLSAgIHBGRlRGd2RTcGVjIGlzIGVpdGhlciBOVUxMIG9yIHZpb2xhdGVzIHRoZSA4LWJ5dGUgYWxpZ25tZW50IAorICogICAgICAgICAgICAgIHJlc3RyaWN0aW9ucyAKKyAqICAgIC0gICBvcmRlciA8IDAgb3Igb3JkZXIgPiAxMiAKKyAqCisgKi8KK09NWFJlc3VsdCBvbXhTUF9GRlRJbml0X1JfUzE2UzMyKAorICAgIE9NWEZGVFNwZWNfUl9TMTZTMzIqIHBGRlRGd2RTcGVjLAorICAgIE9NWF9JTlQgb3JkZXIKKyk7CisKKworCisvKioKKyAqIEZ1bmN0aW9uOiAgb214U1BfRkZUSW5pdF9SX1MzMiAgICgyLjIuNC4xLjQpCisgKgorICogRGVzY3JpcHRpb246CisgKiBUaGVzZSBmdW5jdGlvbnMgaW5pdGlhbGl6ZSBzcGVjaWZpY2F0aW9uIHN0cnVjdHVyZXMgcmVxdWlyZWQgZm9yIHRoZSByZWFsIAorICogRkZUIGFuZCBJRkZUIGZ1bmN0aW9ucy4gVGhlIGZ1bmN0aW9uIDxGRlRJbml0X1JfUzMyPiBpcyB1c2VkIHRvIGluaXRpYWxpemUgCisgKiB0aGUgc3BlY2lmaWNhdGlvbiBzdHJ1Y3R1cmVzIGZvciBmdW5jdGlvbnMgPEZGVEZ3ZF9SVG9DQ1NfUzMyX1Nmcz4gCisgKiBhbmQgPEZGVEludl9DQ1NUb1JfUzMyX1Nmcz4uIAorICoKKyAqIE1lbW9yeSBmb3IgKnBGRlRGd2RTcGVjIG11c3QgYmUgYWxsb2NhdGVkIGJlZm9yZSBjYWxsaW5nIHRoZXNlIGZ1bmN0aW9ucworICogYW5kIHNob3VsZCBiZSA4LWJ5dGUgYWxpZ25lZC4gCisgKgorICogVGhlIG51bWJlciBvZiBieXRlcyByZXF1aXJlZCBmb3IgKnBGRlRGd2RTcGVjIGNhbiBiZSAKKyAqIGRldGVybWluZWQgdXNpbmcgPEZGVEdldEJ1ZlNpemVfUl9TMzI+LiAKKyAqCisgKiBJbnB1dCBBcmd1bWVudHM6CisgKiAgIAorICogICBvcmRlciAtIGJhc2UtMiBsb2dhcml0aG0gb2YgdGhlIGRlc2lyZWQgYmxvY2sgbGVuZ3RoOyB2YWxpZCBpbiB0aGUgcmFuZ2UgCisgKiAgICAgICAgICAgIFswLDEyXSAKKyAqCisgKiBPdXRwdXQgQXJndW1lbnRzOgorICogICAKKyAqICAgcEZGVEZ3ZFNwZWMgLSBwb2ludGVyIHRvIHRoZSBpbml0aWFsaXplZCBzcGVjaWZpY2F0aW9uIHN0cnVjdHVyZSAKKyAqCisgKiBSZXR1cm4gVmFsdWU6CisgKiAgICAKKyAqICAgIE9NWF9TdHNfTm9FcnIgLSBubyBlcnJvciAKKyAqICAgIE9NWF9TdHNfQmFkQXJnRXJyIC0gYmFkIGFyZ3VtZW50czsgcmV0dXJuZWQgaWYgb25lIG9yIG1vcmUgb2YgdGhlIAorICogICAgICAgICAgICAgIGZvbGxvd2luZyBpcyB0cnVlOiAKKyAqICAgIC0gICBwRkZURndkU3BlYyBpcyBlaXRoZXIgTlVMTCBvciB2aW9sYXRlcyB0aGUgOC1ieXRlIGFsaWdubWVudCAKKyAqICAgICAgICAgICAgICByZXN0cmljdGlvbnMgCisgKiAgICAtICAgb3JkZXIgPCAwIG9yIG9yZGVyID4gMTIgCisgKgorICovCitPTVhSZXN1bHQgb214U1BfRkZUSW5pdF9SX1MzMiAoCisgICAgT01YRkZUU3BlY19SX1MzMipwRkZURndkU3BlYywKKyAgICBPTVhfSU5UIG9yZGVyCispOworCisvKioKKyAqIEZ1bmN0aW9uOiAgb214U1BfRkZUSW5pdF9SX0YzMgorICoKKyAqIERlc2NyaXB0aW9uOgorICogVGhlc2UgZnVuY3Rpb25zIGluaXRpYWxpemUgc3BlY2lmaWNhdGlvbiBzdHJ1Y3R1cmVzIHJlcXVpcmVkIGZvciB0aGUgcmVhbCAKKyAqIEZGVCBhbmQgSUZGVCBmdW5jdGlvbnMuIFRoZSBmdW5jdGlvbiA8RkZUSW5pdF9SX0YzMj4gaXMgdXNlZCB0byBpbml0aWFsaXplIAorICogdGhlIHNwZWNpZmljYXRpb24gc3RydWN0dXJlcyBmb3IgZnVuY3Rpb25zIDxGRlRGd2RfUlRvQ0NTX0YzMl9TZnM+IAorICogYW5kIDxGRlRJbnZfQ0NTVG9SX0YzMl9TZnM+LiAKKyAqCisgKiBNZW1vcnkgZm9yICpwRkZURndkU3BlYyBtdXN0IGJlIGFsbG9jYXRlZCBiZWZvcmUgY2FsbGluZyB0aGVzZSBmdW5jdGlvbnMKKyAqIGFuZCBzaG91bGQgYmUgOC1ieXRlIGFsaWduZWQuIAorICoKKyAqIFRoZSBudW1iZXIgb2YgYnl0ZXMgcmVxdWlyZWQgZm9yICpwRkZURndkU3BlYyBjYW4gYmUgCisgKiBkZXRlcm1pbmVkIHVzaW5nIDxGRlRHZXRCdWZTaXplX1JfRjMyPi4gCisgKgorICogSW5wdXQgQXJndW1lbnRzOgorICogICAKKyAqICAgb3JkZXIgLSBiYXNlLTIgbG9nYXJpdGhtIG9mIHRoZSBkZXNpcmVkIGJsb2NrIGxlbmd0aDsgdmFsaWQgaW4gdGhlIHJhbmdlIAorICogICAgICAgICAgICBbMCwxMl0gCisgKgorICogT3V0cHV0IEFyZ3VtZW50czoKKyAqICAgCisgKiAgIHBGRlRGd2RTcGVjIC0gcG9pbnRlciB0byB0aGUgaW5pdGlhbGl6ZWQgc3BlY2lmaWNhdGlvbiBzdHJ1Y3R1cmUgCisgKgorICogUmV0dXJuIFZhbHVlOgorICogICAgCisgKiAgICBPTVhfU3RzX05vRXJyIC0gbm8gZXJyb3IgCisgKiAgICBPTVhfU3RzX0JhZEFyZ0VyciAtIGJhZCBhcmd1bWVudHM7IHJldHVybmVkIGlmIG9uZSBvciBtb3JlIG9mIHRoZSAKKyAqICAgICAgICAgICAgICBmb2xsb3dpbmcgaXMgdHJ1ZTogCisgKiAgICAtICAgcEZGVEZ3ZFNwZWMgaXMgZWl0aGVyIE5VTEwgb3IgdmlvbGF0ZXMgdGhlIDgtYnl0ZSBhbGlnbm1lbnQgCisgKiAgICAgICAgICAgICAgcmVzdHJpY3Rpb25zIAorICogICAgLSAgIG9yZGVyIDwgMCBvciBvcmRlciA+IDEyIAorICoKKyAqLworT01YUmVzdWx0IG9teFNQX0ZGVEluaXRfUl9GMzIoCisgICAgT01YRkZUU3BlY19SX0YzMiogcEZGVEZ3ZFNwZWMsCisgICAgT01YX0lOVCBvcmRlcgorKTsKKworLyoqCisgKiBGdW5jdGlvbjogIG9teFNQX0ZGVEdldEJ1ZlNpemVfQ19TQzE2ICAgKDIuMi40LjEuNikKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIFRoZXNlIGZ1bmN0aW9ucyBjb21wdXRlIHRoZSBzaXplIG9mIHRoZSBzcGVjaWZpY2F0aW9uIHN0cnVjdHVyZSAKKyAqIHJlcXVpcmVkIGZvciB0aGUgbGVuZ3RoIDJeb3JkZXIgY29tcGxleCBGRlQgYW5kIElGRlQgZnVuY3Rpb25zLiBUaGUgZnVuY3Rpb24gCisgKiA8RkZUR2V0QnVmU2l6ZV9DX1NDMTY+IGlzIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgMTYtYml0IGZ1bmN0aW9ucyAKKyAqIDxGRlRGd2RfQ1RvQ19TQzE2X1Nmcz4gYW5kIDxGRlRJbnZfQ1RvQ19TQzE2X1Nmcz4uIAorICoKKyAqIElucHV0IEFyZ3VtZW50czoKKyAqICAgCisgKiAgIG9yZGVyIC0gYmFzZS0yIGxvZ2FyaXRobSBvZiB0aGUgZGVzaXJlZCBibG9jayBsZW5ndGg7IHZhbGlkIGluIHRoZSByYW5nZSAKKyAqICAgICAgICAgICAgWzAsMTJdIAorICoKKyAqIE91dHB1dCBBcmd1bWVudHM6CisgKiAgIAorICogICBwU2l6ZSAtIHBvaW50ZXIgdG8gdGhlIG51bWJlciBvZiBieXRlcyByZXF1aXJlZCBmb3IgdGhlIHNwZWNpZmljYXRpb24gCisgKiAgICAgICAgICAgIHN0cnVjdHVyZSAKKyAqCisgKiBSZXR1cm4gVmFsdWU6CisgKiAgICAKKyAqICAgIE9NWF9TdHNfTm9FcnIgLSBubyBlcnJvciAKKyAqICAgIE9NWF9TdHNfQmFkQXJnRXJyIC0gYmFkIGFyZ3VtZW50czsgcmV0dXJuZWQgaWYgb25lIG9yIG1vcmUgb2YgdGhlIAorICogICAgICAgICAgICAgIGZvbGxvd2luZyBpcyB0cnVlOiAKKyAqICAgIC0gICAgcFNpemUgaXMgTlVMTCAKKyAqICAgIC0gICAgb3JkZXIgPCAwIG9yIG9yZGVyID4gMTIgCisgKgorICovCitPTVhSZXN1bHQgb214U1BfRkZUR2V0QnVmU2l6ZV9DX1NDMTYgKAorICAgIE9NWF9JTlQgb3JkZXIsCisgICAgT01YX0lOVCAqcFNpemUKKyk7CisKKworCisvKioKKyAqIEZ1bmN0aW9uOiAgb214U1BfRkZUR2V0QnVmU2l6ZV9DX1NDMzIgICAoMi4yLjQuMS42KQorICoKKyAqIERlc2NyaXB0aW9uOgorICogVGhlc2UgZnVuY3Rpb25zIGNvbXB1dGUgdGhlIHNpemUgb2YgdGhlIHNwZWNpZmljYXRpb24gc3RydWN0dXJlIAorICogcmVxdWlyZWQgZm9yIHRoZSBsZW5ndGggMl5vcmRlciBjb21wbGV4IEZGVCBhbmQgSUZGVCBmdW5jdGlvbnMuIFRoZSBmdW5jdGlvbiAKKyAqIDxGRlRHZXRCdWZTaXplX0NfU0MzMj4gaXMgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSAzMi1iaXQgZnVuY3Rpb25zIAorICogPEZGVEZ3ZF9DVG9DX1NDMzJfU2ZzPiBhbmQgPEZGVEludl9DVG9DX1NDMzJfU2ZzPi4gCisgKgorICogSW5wdXQgQXJndW1lbnRzOgorICogICAKKyAqICAgb3JkZXIgLSBiYXNlLTIgbG9nYXJpdGhtIG9mIHRoZSBkZXNpcmVkIGJsb2NrIGxlbmd0aDsgdmFsaWQgaW4gdGhlIHJhbmdlIAorICogICAgICAgICAgICBbMCwxMl0gCisgKgorICogT3V0cHV0IEFyZ3VtZW50czoKKyAqICAgCisgKiAgIHBTaXplIC0gcG9pbnRlciB0byB0aGUgbnVtYmVyIG9mIGJ5dGVzIHJlcXVpcmVkIGZvciB0aGUgc3BlY2lmaWNhdGlvbiAKKyAqICAgICAgICAgICAgc3RydWN0dXJlIAorICoKKyAqIFJldHVybiBWYWx1ZToKKyAqICAgIAorICogICAgT01YX1N0c19Ob0VyciAtIG5vIGVycm9yIAorICogICAgT01YX1N0c19CYWRBcmdFcnIgLSBiYWQgYXJndW1lbnRzOyByZXR1cm5lZCBpZiBvbmUgb3IgbW9yZSBvZiB0aGUgCisgKiAgICAgICAgICAgICAgZm9sbG93aW5nIGlzIHRydWU6IAorICogICAgLSAgICBwU2l6ZSBpcyBOVUxMIAorICogICAgLSAgICBvcmRlciA8IDAgb3Igb3JkZXIgPiAxMiAKKyAqCisgKi8KK09NWFJlc3VsdCBvbXhTUF9GRlRHZXRCdWZTaXplX0NfU0MzMiAoCisgICAgT01YX0lOVCBvcmRlciwKKyAgICBPTVhfSU5UICpwU2l6ZQorKTsKKworLyoqCisgKiBGdW5jdGlvbjogIG9teFNQX0ZGVEdldEJ1ZlNpemVfQ19GQzMyCisgKgorICogRGVzY3JpcHRpb246CisgKiBUaGVzZSBmdW5jdGlvbnMgY29tcHV0ZSB0aGUgc2l6ZSBvZiB0aGUgc3BlY2lmaWNhdGlvbiBzdHJ1Y3R1cmUgCisgKiByZXF1aXJlZCBmb3IgdGhlIGxlbmd0aCAyXm9yZGVyIGNvbXBsZXggRkZUIGFuZCBJRkZUIGZ1bmN0aW9ucy4gVGhlIGZ1bmN0aW9uIAorICogPEZGVEdldEJ1ZlNpemVfQ19GQzMyPiBpcyB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIDMyLWJpdCBmdW5jdGlvbnMgCisgKiA8RkZURndkX0NUb0NfRkMzMl9TZnM+IGFuZCA8RkZUSW52X0NUb0NfRkMzMl9TZnM+LiAKKyAqCisgKiBJbnB1dCBBcmd1bWVudHM6CisgKiAgIAorICogICBvcmRlciAtIGJhc2UtMiBsb2dhcml0aG0gb2YgdGhlIGRlc2lyZWQgYmxvY2sgbGVuZ3RoOyB2YWxpZCBpbiB0aGUgcmFuZ2UgCisgKiAgICAgICAgICAgIFswLDEyXSAKKyAqCisgKiBPdXRwdXQgQXJndW1lbnRzOgorICogICAKKyAqICAgcFNpemUgLSBwb2ludGVyIHRvIHRoZSBudW1iZXIgb2YgYnl0ZXMgcmVxdWlyZWQgZm9yIHRoZSBzcGVjaWZpY2F0aW9uIAorICogICAgICAgICAgICBzdHJ1Y3R1cmUgCisgKgorICogUmV0dXJuIFZhbHVlOgorICogICAgCisgKiAgICBPTVhfU3RzX05vRXJyIC0gbm8gZXJyb3IgCisgKiAgICBPTVhfU3RzX0JhZEFyZ0VyciAtIGJhZCBhcmd1bWVudHM7IHJldHVybmVkIGlmIG9uZSBvciBtb3JlIG9mIHRoZSAKKyAqICAgICAgICAgICAgICBmb2xsb3dpbmcgaXMgdHJ1ZTogCisgKiAgICAtICAgIHBTaXplIGlzIE5VTEwgCisgKiAgICAtICAgIG9yZGVyIDwgMCBvciBvcmRlciA+IDEyIAorICoKKyAqLworT01YUmVzdWx0IG9teFNQX0ZGVEdldEJ1ZlNpemVfQ19GQzMyKAorICAgIE9NWF9JTlQgb3JkZXIsCisgICAgT01YX0lOVCogcFNpemUKKyk7CisKKworLyoqCisgKiBGdW5jdGlvbjogIG9teFNQX0ZGVEdldEJ1ZlNpemVfUl9TMTZTMzIgICAoMi4yLjQuMS44KQorICoKKyAqIERlc2NyaXB0aW9uOgorICogb3JkZXIgVGhlc2UgZnVuY3Rpb25zIGNvbXB1dGUgdGhlIHNpemUgb2YgdGhlIHNwZWNpZmljYXRpb24gc3RydWN0dXJlIAorICogcmVxdWlyZWQgZm9yIHRoZSBsZW5ndGggMl5vcmRlciByZWFsIEZGVCBhbmQgSUZGVCBmdW5jdGlvbnMuIFRoZSBmdW5jdGlvbiAKKyAqIDxGRlRHZXRCdWZTaXplX1JfUzE2UzMyPiBpcyB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIDE2LWJpdCBmdW5jdGlvbnMgCisgKiA8RkZURndkX1JUb0NDU19TMTZTMzJfU2ZzPiBhbmQgPEZGVEludl9DQ1NUb1JfUzMyUzE2X1Nmcz4uIAorICoKKyAqIElucHV0IEFyZ3VtZW50czoKKyAqICAgCisgKiAgIG9yZGVyIC0gYmFzZS0yIGxvZ2FyaXRobSBvZiB0aGUgbGVuZ3RoOyB2YWxpZCBpbiB0aGUgcmFuZ2UgWzAsMTJdIAorICoKKyAqIE91dHB1dCBBcmd1bWVudHM6CisgKiAgIAorICogICBwU2l6ZSAtIHBvaW50ZXIgdG8gdGhlIG51bWJlciBvZiBieXRlcyByZXF1aXJlZCBmb3IgdGhlIHNwZWNpZmljYXRpb24gCisgKiAgICAgICAgICAgIHN0cnVjdHVyZSAKKyAqCisgKiBSZXR1cm4gVmFsdWU6CisgKiAgICAKKyAqICAgIE9NWF9TdHNfTm9FcnIgLSBubyBlcnJvciAKKyAqICAgIE9NWF9TdHNfQmFkQXJnRXJyIC0gYmFkIGFyZ3VtZW50cyBUaGUgZnVuY3Rpb24gcmV0dXJucyAKKyAqICAgICAgICAgICAgICBPTVhfU3RzX0JhZEFyZ0VyciBpZiBvbmUgb3IgbW9yZSBvZiB0aGUgZm9sbG93aW5nIGlzIHRydWU6IAorICogICAgcFNpemUgaXMgTlVMTCAKKyAqICAgIG9yZGVyIDwgMCBvciBvcmRlciA+IDEyIAorICoKKyAqLworT01YUmVzdWx0IG9teFNQX0ZGVEdldEJ1ZlNpemVfUl9TMTZTMzIoCisgICAgT01YX0lOVCBvcmRlciwKKyAgICBPTVhfSU5UKiBwU2l6ZQorKTsKKworCisKKy8qKgorICogRnVuY3Rpb246ICBvbXhTUF9GRlRHZXRCdWZTaXplX1JfUzMyICAgKDIuMi40LjEuOCkKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIFRoZXNlIGZ1bmN0aW9ucyBjb21wdXRlIHRoZSBzaXplIG9mIHRoZSBzcGVjaWZpY2F0aW9uIHN0cnVjdHVyZSAKKyAqIHJlcXVpcmVkIGZvciB0aGUgbGVuZ3RoIDJeb3JkZXIgcmVhbCBGRlQgYW5kIElGRlQgZnVuY3Rpb25zLiAgVGhlIGZ1bmN0aW9uIAorICogPEZGVEdldEJ1ZlNpemVfUl9TMzI+IGlzIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgMzItYml0IGZ1bmN0aW9ucyAKKyAqIDxGRlRGd2RfUlRvQ0NTX1MzMl9TZnM+IGFuZCA8RkZUSW52X0NDU1RvUl9TMzJfU2ZzPi4gCisgKgorICogSW5wdXQgQXJndW1lbnRzOgorICogICAKKyAqICAgb3JkZXIgLSBiYXNlLTIgbG9nYXJpdGhtIG9mIHRoZSBsZW5ndGg7IHZhbGlkIGluIHRoZSByYW5nZSBbMCwxMl0gCisgKgorICogT3V0cHV0IEFyZ3VtZW50czoKKyAqICAgCisgKiAgIHBTaXplIC0gcG9pbnRlciB0byB0aGUgbnVtYmVyIG9mIGJ5dGVzIHJlcXVpcmVkIGZvciB0aGUgc3BlY2lmaWNhdGlvbiAKKyAqICAgICAgICAgICAgc3RydWN0dXJlIAorICoKKyAqIFJldHVybiBWYWx1ZToKKyAqICAgIAorICogICAgT01YX1N0c19Ob0VyciAtIG5vIGVycm9yIAorICogICAgT01YX1N0c19CYWRBcmdFcnIgLSBiYWQgYXJndW1lbnRzIFRoZSBmdW5jdGlvbiByZXR1cm5zIAorICogICAgICAgICAgICAgIE9NWF9TdHNfQmFkQXJnRXJyIGlmIG9uZSBvciBtb3JlIG9mIHRoZSBmb2xsb3dpbmcgaXMgdHJ1ZTogCisgKiAgICBwU2l6ZSBpcyBOVUxMIAorICogICAgb3JkZXIgPCAwIG9yIG9yZGVyID4gMTIgCisgKgorICovCitPTVhSZXN1bHQgb214U1BfRkZUR2V0QnVmU2l6ZV9SX1MzMiAoCisgICAgT01YX0lOVCBvcmRlciwKKyAgICBPTVhfSU5UICpwU2l6ZQorKTsKKworLyoqCisgKiBGdW5jdGlvbjogIG9teFNQX0ZGVEdldEJ1ZlNpemVfUl9GMzIKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIFRoZXNlIGZ1bmN0aW9ucyBjb21wdXRlIHRoZSBzaXplIG9mIHRoZSBzcGVjaWZpY2F0aW9uIHN0cnVjdHVyZSAKKyAqIHJlcXVpcmVkIGZvciB0aGUgbGVuZ3RoIDJeb3JkZXIgcmVhbCBGRlQgYW5kIElGRlQgZnVuY3Rpb25zLiAgVGhlIGZ1bmN0aW9uIAorICogPEZGVEdldEJ1ZlNpemVfUl9GMzI+IGlzIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgMzItYml0IGZ1bmN0aW9ucyAKKyAqIDxGRlRGd2RfUlRvQ0NTX0YzMl9TZnM+IGFuZCA8RkZUSW52X0NDU1RvUl9GMzJfU2ZzPi4gCisgKgorICogSW5wdXQgQXJndW1lbnRzOgorICogICAKKyAqICAgb3JkZXIgLSBiYXNlLTIgbG9nYXJpdGhtIG9mIHRoZSBsZW5ndGg7IHZhbGlkIGluIHRoZSByYW5nZSBbMCwxMl0gCisgKgorICogT3V0cHV0IEFyZ3VtZW50czoKKyAqICAgCisgKiAgIHBTaXplIC0gcG9pbnRlciB0byB0aGUgbnVtYmVyIG9mIGJ5dGVzIHJlcXVpcmVkIGZvciB0aGUgc3BlY2lmaWNhdGlvbiAKKyAqICAgICAgICAgICAgc3RydWN0dXJlIAorICoKKyAqIFJldHVybiBWYWx1ZToKKyAqICAgIAorICogICAgT01YX1N0c19Ob0VyciAtIG5vIGVycm9yIAorICogICAgT01YX1N0c19CYWRBcmdFcnIgLSBiYWQgYXJndW1lbnRzIFRoZSBmdW5jdGlvbiByZXR1cm5zIAorICogICAgICAgICAgICAgIE9NWF9TdHNfQmFkQXJnRXJyIGlmIG9uZSBvciBtb3JlIG9mIHRoZSBmb2xsb3dpbmcgaXMgdHJ1ZTogCisgKiAgICBwU2l6ZSBpcyBOVUxMIAorICogICAgb3JkZXIgPCAwIG9yIG9yZGVyID4gMTIgCisgKgorICovCitPTVhSZXN1bHQgb214U1BfRkZUR2V0QnVmU2l6ZV9SX0YzMigKKyAgICBPTVhfSU5UIG9yZGVyLAorICAgIE9NWF9JTlQqIHBTaXplCispOworCisKKworLyoqCisgKiBGdW5jdGlvbjogIG9teFNQX0ZGVEZ3ZF9DVG9DX1NDMTZfU2ZzICAgKDIuMi40LjIuMikKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIENvbXB1dGUgYW4gRkZUIGZvciBhIGNvbXBsZXggc2lnbmFsIG9mIGxlbmd0aCBvZiAyXm9yZGVyLCAKKyAqIHdoZXJlIDAgPD0gb3JkZXIgPD0gMTIuIAorICogVHJhbnNmb3JtIGxlbmd0aCBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBzcGVjaWZpY2F0aW9uIHN0cnVjdHVyZSwgd2hpY2ggCisgKiBtdXN0IGJlIGluaXRpYWxpemVkIHByaW9yIHRvIGNhbGxpbmcgdGhlIEZGVCBmdW5jdGlvbiB1c2luZyB0aGUgYXBwcm9wcmlhdGUgCisgKiBoZWxwZXIsIGkuZS4sIDxGRlRJbml0X0Nfc2MzMj4gb3IgPEZGVEluaXRfQ19TQzE2Pi4gVGhlIHJlbGF0aW9uc2hpcCAKKyAqIGJldHdlZW4gdGhlIGlucHV0IGFuZCBvdXRwdXQgc2VxdWVuY2VzIGNhbiBiZSBleHByZXNzZWQgaW4gdGVybXMgb2YgdGhlIAorICogREZULCBpLmUuLCAKKyAqCisgKiAgICAgIFhba10gPSAyXigtc2NhbGVGYWN0b3IpIC4gU1VNW249MC4uLk4tMV14W25dLmVeKC1qbmsuMi5waS9OKQorICogICAgICBrID0gMCwxLDIsLi4uLCBOLTEKKyAqICAgICAgTiA9IDJeb3JkZXIKKyAqCisgKiBJbnB1dCBBcmd1bWVudHM6CisgKiAgIHBTcmMgLSBwb2ludGVyIHRvIHRoZSBpbnB1dCBzaWduYWwsIGEgY29tcGxleC12YWx1ZWQgdmVjdG9yIG9mIGxlbmd0aCAyXm9yZGVyOyAKKyAqICAgICAgICAgICAgbXVzdCBiZSBhbGlnbmVkIG9uIGEgMzIgYnl0ZSBib3VuZGFyeS4gCisgKiAgIHBGRlRTcGVjIC0gcG9pbnRlciB0byB0aGUgcHJlYWxsb2NhdGVkIGFuZCBpbml0aWFsaXplZCBzcGVjaWZpY2F0aW9uIAorICogICAgICAgICAgICBzdHJ1Y3R1cmUgCisgKiAgIHNjYWxlRmFjdG9yIC0gb3V0cHV0IHNjYWxlIGZhY3RvcjsgdGhlIHJhbmdlIGZvciBpcyBbMCwxNl0gCisgKgorICogT3V0cHV0IEFyZ3VtZW50czoKKyAqICAgcERzdCAtIHBvaW50ZXIgdG8gdGhlIGNvbXBsZXgtdmFsdWVkIG91dHB1dCB2ZWN0b3IsIG9mIGxlbmd0aCAyXm9yZGVyOyAKKyAqICAgICAgICAgIG11c3QgYmUgYWxpZ25lZCBvbiBhbiAzMi1ieXRlIGJvdW5kYXJ5LiAKKyAqCisgKiBSZXR1cm4gVmFsdWU6CisgKiAgICAKKyAqICAgIE9NWF9TdHNfTm9FcnIgLSBubyBlcnJvciAKKyAqICAgIE9NWF9TdHNfQmFkQXJnRXJyIC0gcmV0dXJuZWQgaWYgb25lIG9yIG1vcmUgb2YgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIAorICogICAgICAgICAgICAgIGlzIHRydWU6IAorICogICAgLSAgIG9uZSBvciBtb3JlIG9mIHRoZSBmb2xsb3dpbmcgcG9pbnRlcnMgaXMgTlVMTDogcFNyYywgcERzdCwgb3IgCisgKiAgICAgICAgICAgICAgcEZGVFNwZWMuIAorICogICAgLSAgICBwU3JjIG9yIHBEc3QgaXMgbm90IDMyLWJ5dGUgYWxpZ25lZCAKKyAqICAgIC0gICAgc2NhbGVGYWN0b3I8MCBvciBzY2FsZUZhY3Rvcj4xNgorICoKKyAqLworCitPTVhSZXN1bHQgb214U1BfRkZURndkX0NUb0NfU0MxNl9TZnMgKAorICAgIGNvbnN0IE9NWF9TQzE2ICpwU3JjLAorICAgIE9NWF9TQzE2ICpwRHN0LAorICAgIGNvbnN0IE9NWEZGVFNwZWNfQ19TQzE2ICpwRkZUU3BlYywKKyAgICBPTVhfSU5UIHNjYWxlRmFjdG9yCispOworCitPTVhSZXN1bHQgb214U1BfRkZURndkX0NUb0NfU0MxNl9TZnNfbmVvbiAoCisgICAgY29uc3QgT01YX1NDMTYgKnBTcmMsCisgICAgT01YX1NDMTYgKnBEc3QsCisgICAgY29uc3QgT01YRkZUU3BlY19DX1NDMTYgKnBGRlRTcGVjLAorICAgIE9NWF9JTlQgc2NhbGVGYWN0b3IKKyk7CisKKy8qKgorICogRnVuY3Rpb246ICBvbXhTUF9GRlRGd2RfQ1RvQ19TQzMyX1NmcyAgICgyLjIuNC4yLjIpCisgKgorICogRGVzY3JpcHRpb246CisgKiBDb21wdXRlIGFuIEZGVCBmb3IgYSBjb21wbGV4IHNpZ25hbCBvZiBsZW5ndGggb2YgMl5vcmRlciwgCisgKiB3aGVyZSAwIDw9IG9yZGVyIDw9IDEyLiAKKyAqIFRyYW5zZm9ybSBsZW5ndGggaXMgZGV0ZXJtaW5lZCBieSB0aGUgc3BlY2lmaWNhdGlvbiBzdHJ1Y3R1cmUsIHdoaWNoIAorICogbXVzdCBiZSBpbml0aWFsaXplZCBwcmlvciB0byBjYWxsaW5nIHRoZSBGRlQgZnVuY3Rpb24gdXNpbmcgdGhlIGFwcHJvcHJpYXRlIAorICogaGVscGVyLCBpLmUuLCA8RkZUSW5pdF9DX3NjMzI+IG9yIDxGRlRJbml0X0NfU0MxNj4uIFRoZSByZWxhdGlvbnNoaXAgCisgKiBiZXR3ZWVuIHRoZSBpbnB1dCBhbmQgb3V0cHV0IHNlcXVlbmNlcyBjYW4gYmUgZXhwcmVzc2VkIGluIHRlcm1zIG9mIHRoZSAKKyAqIERGVCwgaS5lLiwgCisgKgorICogICAgICBYW2tdID0gMl4oLXNjYWxlRmFjdG9yKSAuIFNVTVtuPTAuLi5OLTFdeFtuXS5lXigtam5rLjIucGkvTikKKyAqICAgICAgayA9IDAsMSwyLC4uLiwgTi0xCisgKiAgICAgIE4gPSAyXm9yZGVyCisgKgorICogSW5wdXQgQXJndW1lbnRzOgorICogICBwU3JjIC0gcG9pbnRlciB0byB0aGUgaW5wdXQgc2lnbmFsLCBhIGNvbXBsZXgtdmFsdWVkIHZlY3RvciBvZiBsZW5ndGggMl5vcmRlcjsgCisgKiAgICAgICAgICAgIG11c3QgYmUgYWxpZ25lZCBvbiBhIDMyIGJ5dGUgYm91bmRhcnkuIAorICogICBwRkZUU3BlYyAtIHBvaW50ZXIgdG8gdGhlIHByZWFsbG9jYXRlZCBhbmQgaW5pdGlhbGl6ZWQgc3BlY2lmaWNhdGlvbiAKKyAqICAgICAgICAgICAgc3RydWN0dXJlIAorICogICBzY2FsZUZhY3RvciAtIG91dHB1dCBzY2FsZSBmYWN0b3I7IHRoZSByYW5nZSBpcyBbMCwzMl0gCisgKgorICogT3V0cHV0IEFyZ3VtZW50czoKKyAqICAgcERzdCAtIHBvaW50ZXIgdG8gdGhlIGNvbXBsZXgtdmFsdWVkIG91dHB1dCB2ZWN0b3IsIG9mIGxlbmd0aCAyXm9yZGVyOyBtdXN0IGJlIAorICogICAgICAgICAgICBhbGlnbmVkIG9uIGFuIDMyLWJ5dGUgYm91bmRhcnkuIAorICoKKyAqIFJldHVybiBWYWx1ZToKKyAqICAgIAorICogICAgT01YX1N0c19Ob0VyciAtIG5vIGVycm9yIAorICogICAgT01YX1N0c19CYWRBcmdFcnIgLSByZXR1cm5lZCBpZiBvbmUgb3IgbW9yZSBvZiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgCisgKiAgICAgICAgICAgICAgaXMgdHJ1ZTogCisgKiAgICAtICAgb25lIG9yIG1vcmUgb2YgdGhlIGZvbGxvd2luZyBwb2ludGVycyBpcyBOVUxMOiBwU3JjLCBwRHN0LCBvciAKKyAqICAgICAgICAgICAgICBwRkZUU3BlYy4gCisgKiAgICAtICAgIHBTcmMgb3IgcERzdCBpcyBub3QgMzItYnl0ZSBhbGlnbmVkIAorICogICAgLSAgICBzY2FsZUZhY3RvcjwwIG9yIHNjYWxlRmFjdG9yID4zMiAKKyAqCisgKi8KK09NWFJlc3VsdCBvbXhTUF9GRlRGd2RfQ1RvQ19TQzMyX1NmcyAoCisgICAgY29uc3QgT01YX1NDMzIgKnBTcmMsCisgICAgT01YX1NDMzIgKnBEc3QsCisgICAgY29uc3QgT01YRkZUU3BlY19DX1NDMzIgKnBGRlRTcGVjLAorICAgIE9NWF9JTlQgc2NhbGVGYWN0b3IKKyk7CisKKworCisvKioKKyAqIEZ1bmN0aW9uOiAgb214U1BfRkZUSW52X0NUb0NfU0MxNl9TZnMgICAoMi4yLjQuMi40KQorICoKKyAqIERlc2NyaXB0aW9uOgorICogVGhlc2UgZnVuY3Rpb25zIGNvbXB1dGUgYW4gaW52ZXJzZSBGRlQgZm9yIGEgY29tcGxleCBzaWduYWwgb2YgIGxlbmd0aAorICogb2YgMl5vcmRlciwgd2hlcmUgMCA8PSBvcmRlciA8PSAxMi4gVHJhbnNmb3JtIGxlbmd0aCBpcyBkZXRlcm1pbmVkIGJ5IHRoZSAKKyAqIHNwZWNpZmljYXRpb24gc3RydWN0dXJlLCB3aGljaCBtdXN0IGJlIGluaXRpYWxpemVkIHByaW9yIHRvIGNhbGxpbmcgdGhlIEZGVCAKKyAqIGZ1bmN0aW9uIHVzaW5nIHRoZSBhcHByb3ByaWF0ZSBoZWxwZXIsIGkuZS4sIDxGRlRJbml0X0Nfc2MzMj4gb3IgCisgKiA8RkZUSW5pdF9DX1NDMTY+LiBUaGUgcmVsYXRpb25zaGlwIGJldHdlZW4gdGhlIGlucHV0IGFuZCBvdXRwdXQgc2VxdWVuY2VzIAorICogY2FuIGJlIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiB0aGUgSURGVCwgaS5lLjogCisgKgorICogICAgIHhbbl0gPSAoMl4oLXNjYWxlZmFjdG9yKS9OKSAgLiBTVU1baz0wLC4uLixOLTFdIFhba10uZV4oam5rLjIucGkvTikKKyAqICAgICBuPTAsMSwyLC4uLk4tMQorICogICAgIE49Ml5vcmRlci4KKyAqCisgKiBJbnB1dCBBcmd1bWVudHM6CisgKiAgIHBTcmMgLSBwb2ludGVyIHRvIHRoZSBjb21wbGV4LXZhbHVlZCBpbnB1dCBzaWduYWwsIG9mIGxlbmd0aCAyXm9yZGVyIDsgCisgKiAgICAgICAgICBtdXN0IGJlIGFsaWduZWQgb24gYSAzMi1ieXRlIGJvdW5kYXJ5LiAKKyAqICAgcEZGVFNwZWMgLSBwb2ludGVyIHRvIHRoZSBwcmVhbGxvY2F0ZWQgYW5kIGluaXRpYWxpemVkIHNwZWNpZmljYXRpb24gCisgKiAgICAgICAgICAgIHN0cnVjdHVyZSAKKyAqICAgc2NhbGVGYWN0b3IgLSBzY2FsZSBmYWN0b3Igb2YgdGhlIG91dHB1dC4gVmFsaWQgdmFsdWUgaXMgMAorICogICAgICAgICAgb25seS4KKyAqCisgKiBPdXRwdXQgQXJndW1lbnRzOgorICogICBvcmRlciAKKyAqICAgcERzdCAtIHBvaW50ZXIgdG8gdGhlIGNvbXBsZXgtdmFsdWVkIG91dHB1dCBzaWduYWwsIG9mIGxlbmd0aCAyXm9yZGVyOyAKKyAqICAgICAgICAgIG11c3QgYmUgYWxpZ25lZCBvbiBhIDMyLWJ5dGUgYm91bmRhcnkuIAorICoKKyAqIFJldHVybiBWYWx1ZToKKyAqICAKKyAqICAgIFBvc2l0aXZlIHZhbHVlIC0gdGhlIHNoaWZ0IHNjYWxlIHRoYXQgd2FzIHBlcmZvcm1lZCBpbnNpZGUKKyAqICAgIE9NWF9TdHNfTm9FcnIgLSBubyBlcnJvcgorICogICAgT01YX1N0c19CYWRBcmdFcnIgLSByZXR1cm5lZCBpZiBvbmUgb3IgbW9yZSBvZiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgCisgKiAgICAgICAgICAgICAgaXMgdHJ1ZTogCisgKiAgICAtICAgb25lIG9yIG1vcmUgb2YgdGhlIGZvbGxvd2luZyBwb2ludGVycyBpcyBOVUxMOiBwU3JjLCBwRHN0LCBvciAKKyAqICAgICAgICAgICAgICBwRkZUU3BlYy4gCisgKiAgICAtICAgcFNyYyBvciBwRHN0IGlzIG5vdCAzMi1ieXRlIGFsaWduZWQgCisgKiAgICAtICAgc2NhbGVGYWN0b3I8MCBvciBzY2FsZUZhY3Rvcj4xNiAKKyAqCisgKi8KK09NWFJlc3VsdCBvbXhTUF9GRlRJbnZfQ1RvQ19TQzE2X1NmcyAoCisgICAgY29uc3QgT01YX1NDMTYgKnBTcmMsCisgICAgT01YX1NDMTYgKnBEc3QsCisgICAgY29uc3QgT01YRkZUU3BlY19DX1NDMTYgKnBGRlRTcGVjLAorICAgIE9NWF9JTlQgc2NhbGVGYWN0b3IKKyk7CisKK09NWFJlc3VsdCBvbXhTUF9GRlRJbnZfQ1RvQ19TQzE2X1Nmc19uZW9uICgKKyAgICBjb25zdCBPTVhfU0MxNiAqcFNyYywKKyAgICBPTVhfU0MxNiAqcERzdCwKKyAgICBjb25zdCBPTVhGRlRTcGVjX0NfU0MxNiAqcEZGVFNwZWMsCisgICAgT01YX0lOVCBzY2FsZUZhY3RvcgorKTsKKworCisKKworLyoqCisgKiBGdW5jdGlvbjogIG9teFNQX0ZGVEludl9DVG9DX1NDMzJfU2ZzICAgKDIuMi40LjIuNCkKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIFRoZXNlIGZ1bmN0aW9ucyBjb21wdXRlIGFuIGludmVyc2UgRkZUIGZvciBhIGNvbXBsZXggc2lnbmFsIG9mIGxlbmd0aAorICogb2YgMl5vcmRlciwgd2hlcmUgMCA8PSBvcmRlciA8PSAxMi4gVHJhbnNmb3JtIGxlbmd0aCBpcyBkZXRlcm1pbmVkIGJ5IHRoZSAKKyAqIHNwZWNpZmljYXRpb24gc3RydWN0dXJlLCB3aGljaCBtdXN0IGJlIGluaXRpYWxpemVkIHByaW9yIHRvIGNhbGxpbmcgdGhlIEZGVCAKKyAqIGZ1bmN0aW9uIHVzaW5nIHRoZSBhcHByb3ByaWF0ZSBoZWxwZXIsIGkuZS4sIDxGRlRJbml0X0Nfc2MzMj4gb3IgCisgKiA8RkZUSW5pdF9DX1NDMTY+LiBUaGUgcmVsYXRpb25zaGlwIGJldHdlZW4gdGhlIGlucHV0IGFuZCBvdXRwdXQgc2VxdWVuY2VzIAorICogY2FuIGJlIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiB0aGUgSURGVCwgaS5lLjogCisgKgorICogICAgIHhbbl0gPSAoMl4oLXNjYWxlZmFjdG9yKS9OKSAgLiBTVU1baz0wLC4uLixOLTFdIFhba10uZV4oam5rLjIucGkvTikKKyAqICAgICBuPTAsMSwyLC4uLk4tMQorICogICAgIE49Ml5vcmRlci4KKyAqCisgKiBJbnB1dCBBcmd1bWVudHM6CisgKiAgIHBTcmMgLSBwb2ludGVyIHRvIHRoZSBjb21wbGV4LXZhbHVlZCBpbnB1dCBzaWduYWwsIG9mIGxlbmd0aCAyXm9yZGVyIDsgCisgKiAgICAgICAgICBtdXN0IGJlIGFsaWduZWQgb24gYSAzMi1ieXRlIGJvdW5kYXJ5LiAKKyAqICAgcEZGVFNwZWMgLSBwb2ludGVyIHRvIHRoZSBwcmVhbGxvY2F0ZWQgYW5kIGluaXRpYWxpemVkIHNwZWNpZmljYXRpb24gCisgKiAgICAgICAgICAgIHN0cnVjdHVyZSAKKyAqICAgc2NhbGVGYWN0b3IgLSBzY2FsZSBmYWN0b3Igb2YgdGhlIG91dHB1dC4gVmFsaWQgcmFuZ2UgaXMgWzAsMzJdLiAKKyAqCisgKiBPdXRwdXQgQXJndW1lbnRzOgorICogICBvcmRlciAKKyAqICAgcERzdCAtIHBvaW50ZXIgdG8gdGhlIGNvbXBsZXgtdmFsdWVkIG91dHB1dCBzaWduYWwsIG9mIGxlbmd0aCAyXm9yZGVyOyAKKyAqICAgICAgICAgIG11c3QgYmUgYWxpZ25lZCBvbiBhIDMyLWJ5dGUgYm91bmRhcnkuIAorICoKKyAqIFJldHVybiBWYWx1ZToKKyAqICAgIAorICogICAgT01YX1N0c19Ob0VyciAtIG5vIGVycm9yIAorICogICAgT01YX1N0c19CYWRBcmdFcnIgLSByZXR1cm5lZCBpZiBvbmUgb3IgbW9yZSBvZiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgCisgKiAgICAgICAgICAgICAgaXMgdHJ1ZTogCisgKiAgICAtICAgb25lIG9yIG1vcmUgb2YgdGhlIGZvbGxvd2luZyBwb2ludGVycyBpcyBOVUxMOiBwU3JjLCBwRHN0LCBvciAKKyAqICAgICAgICAgICAgICBwRkZUU3BlYy4gCisgKiAgICAtICAgcFNyYyBvciBwRHN0IGlzIG5vdCAzMi1ieXRlIGFsaWduZWQgCisgKiAgICAtICAgc2NhbGVGYWN0b3I8MCBvciBzY2FsZUZhY3Rvcj4zMgorICoKKyAqLworT01YUmVzdWx0IG9teFNQX0ZGVEludl9DVG9DX1NDMzJfU2ZzICgKKyAgICBjb25zdCBPTVhfU0MzMiAqcFNyYywKKyAgICBPTVhfU0MzMiAqcERzdCwKKyAgICBjb25zdCBPTVhGRlRTcGVjX0NfU0MzMiAqcEZGVFNwZWMsCisgICAgT01YX0lOVCBzY2FsZUZhY3RvcgorKTsKKworCisKKy8qKgorICogRnVuY3Rpb246ICBvbXhTUF9GRlRGd2RfUlRvQ0NTX1MxNlMzMl9TZnMgICAoMi4yLjQuNC4yKQorICoKKyAqIERlc2NyaXB0aW9uOgorICogVGhlc2UgZnVuY3Rpb25zIGNvbXB1dGUgYW4gRkZUIGZvciBhIHJlYWwtdmFsdWVkIHNpZ25hbCBvZiBsZW5ndGggb2YgMl5vcmRlciwKKyAqIHdoZXJlIDAgPD0gb3JkZXIgPD0gMTIuIFRyYW5zZm9ybSBsZW5ndGggaXMgZGV0ZXJtaW5lZCBieSB0aGUgCisgKiBzcGVjaWZpY2F0aW9uIHN0cnVjdHVyZSwgd2hpY2ggbXVzdCBiZSBpbml0aWFsaXplZCBwcmlvciB0byBjYWxsaW5nIHRoZSBGRlQgCisgKiBmdW5jdGlvbiB1c2luZyB0aGUgYXBwcm9wcmlhdGUgaGVscGVyLCBpLmUuLCA8RkZUSW5pdF9SX1MxNlMzMj4uIAorICogVGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHRoZSBpbnB1dCBhbmQgb3V0cHV0IHNlcXVlbmNlcyAKKyAqIGNhbiBiZSBleHByZXNzZWQgaW4gdGVybXMgb2YgdGhlIERGVCwgaS5lLjoKKyAqCisgKiAgICAgeFtuXSA9ICgyXigtc2NhbGVmYWN0b3IpL04pICAuIFNVTVtrPTAsLi4uLE4tMV0gWFtrXS5lXihqbmsuMi5waS9OKQorICogICAgIG49MCwxLDIsLi4uTi0xCisgKiAgICAgTj0yXm9yZGVyLgorICoKKyAqIFRoZSBjb25qdWdhdGUtc3ltbWV0cmljIG91dHB1dCBzZXF1ZW5jZSBpcyByZXByZXNlbnRlZCB1c2luZyBhIENDUyB2ZWN0b3IsIAorICogd2hpY2ggaXMgb2YgbGVuZ3RoIE4rMiwgYW5kIGlzIG9yZ2FuaXplZCBhcyBmb2xsb3dzOiAKKyAqCisgKiAgIEluZGV4OiAgICAgIDAgIDEgIDIgIDMgIDQgIDUgICAuIC4gLiAgIE4tMiAgICAgICBOLTEgICAgICAgTiAgICAgICBOKzEgCisgKiAgIENvbXBvbmVudDogIFIwIDAgIFIxIEkxIFIyIEkyICAuIC4gLiAgIFJbTi8yLTFdICBJW04vMi0xXSAgUltOLzJdICAwIAorICoKKyAqIHdoZXJlIFJbbl0gYW5kIElbbl0sIHJlc3BlY3RpdmVseSwgZGVub3RlIHRoZSByZWFsIGFuZCBpbWFnaW5hcnkgY29tcG9uZW50cyAKKyAqIGZvciBGRlQgYmluICduJy4gQmlucyAgYXJlIG51bWJlcmVkIGZyb20gMCB0byBOLzIsIHdoZXJlIE4gaXMgdGhlIEZGVCBsZW5ndGguIAorICogQmluIGluZGV4IDAgY29ycmVzcG9uZHMgdG8gdGhlIERDIGNvbXBvbmVudCwgYW5kIGJpbiBpbmRleCBOLzIgY29ycmVzcG9uZHMgdG8gdGhlIAorICogZm9sZG92ZXIgZnJlcXVlbmN5LiAKKyAqCisgKiBJbnB1dCBBcmd1bWVudHM6CisgKiAgIHBTcmMgLSBwb2ludGVyIHRvIHRoZSByZWFsLXZhbHVlZCBpbnB1dCBzZXF1ZW5jZSwgb2YgbGVuZ3RoIDJeb3JkZXI7IAorICogICAgICAgICAgbXVzdCBiZSBhbGlnbmVkIG9uIGEgMzItYnl0ZSBib3VuZGFyeS4gCisgKiAgIHBGRlRTcGVjIC0gcG9pbnRlciB0byB0aGUgcHJlYWxsb2NhdGVkIGFuZCBpbml0aWFsaXplZCBzcGVjaWZpY2F0aW9uIAorICogICAgICAgICAgICBzdHJ1Y3R1cmUgCisgKiAgIHNjYWxlRmFjdG9yIC0gb3V0cHV0IHNjYWxlIGZhY3RvcjsgdmFsaWQgcmFuZ2UgaXMgWzAsIDMyXSAKKyAqCisgKiBPdXRwdXQgQXJndW1lbnRzOgorICogICBwRHN0IC0gcG9pbnRlciB0byBvdXRwdXQgc2VxdWVuY2UsIHJlcHJlc2VudGVkIHVzaW5nIENDUyBmb3JtYXQsIG9mIAorICogICAgICAgICAgICBsZW5ndGggKDJeb3JkZXIpKzI7IG11c3QgYmUgYWxpZ25lZCBvbiBhIDMyLWJ5dGUgYm91bmRhcnkuIAorICoKKyAqIFJldHVybiBWYWx1ZToKKyAqICAgIAorICogICAgT01YX1N0c19Ob0VyciAtIG5vIGVycm9yIAorICogICAgT01YX1N0c19CYWRBcmdFcnIgLSBiYWQgYXJndW1lbnRzLCBpZiBvbmUgb3IgbW9yZSBvZiB0aGUgZm9sbG93aW5nIGlzIHRydWU6IAorICogICAgLSAgICBvbmUgb2YgdGhlIHBvaW50ZXJzIHBTcmMsIHBEc3QsIG9yIHBGRlRTcGVjIGlzIE5VTEwgCisgKiAgICAtICAgIHBTcmMgb3IgcERzdCBpcyBub3QgYWxpZ25lZCBvbiBhIDMyLWJ5dGUgYm91bmRhcnkgCisgKiAgICAtICAgIHNjYWxlRmFjdG9yPDAgb3Igc2NhbGVGYWN0b3IgPjMyIAorICoKKyAqLworT01YUmVzdWx0IG9teFNQX0ZGVEZ3ZF9SVG9DQ1NfUzE2UzMyX1NmcyAoCisgICAgY29uc3QgT01YX1MxNiAqcFNyYywKKyAgICBPTVhfUzMyICpwRHN0LAorICAgIGNvbnN0IE9NWEZGVFNwZWNfUl9TMTZTMzIgKnBGRlRTcGVjLAorICAgIE9NWF9JTlQgc2NhbGVGYWN0b3IKKyk7CisKKworCisvKioKKyAqIEZ1bmN0aW9uOiAgb214U1BfRkZURndkX1JUb0NDU19TMzJfU2ZzICAgKDIuMi40LjQuMikKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIFRoZXNlIGZ1bmN0aW9ucyBjb21wdXRlIGFuIEZGVCBmb3IgYSByZWFsLXZhbHVlZCBzaWduYWwgb2YgbGVuZ3RoIG9mIDJeb3JkZXIsCisgKiB3aGVyZSAwIDw9IG9yZGVyIDw9IDEyLiBUcmFuc2Zvcm0gbGVuZ3RoIGlzIGRldGVybWluZWQgYnkgdGhlIAorICogc3BlY2lmaWNhdGlvbiBzdHJ1Y3R1cmUsIHdoaWNoIG11c3QgYmUgaW5pdGlhbGl6ZWQgcHJpb3IgdG8gY2FsbGluZyB0aGUgRkZUIAorICogZnVuY3Rpb24gdXNpbmcgdGhlIGFwcHJvcHJpYXRlIGhlbHBlciwgaS5lLiwgPEZGVEluaXRfUl9TMzI+LiAKKyAqIFRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiB0aGUgaW5wdXQgYW5kIG91dHB1dCBzZXF1ZW5jZXMgCisgKiBjYW4gYmUgZXhwcmVzc2VkIGluIHRlcm1zIG9mIHRoZSBERlQsIGkuZS46CisgKgorICogICAgIHhbbl0gPSAoMl4oLXNjYWxlZmFjdG9yKS9OKSAgLiBTVU1baz0wLC4uLixOLTFdIFhba10uZV4oam5rLjIucGkvTikKKyAqICAgICBuPTAsMSwyLC4uLk4tMQorICogICAgIE49Ml5vcmRlci4KKyAqCisgKiBUaGUgY29uanVnYXRlLXN5bW1ldHJpYyBvdXRwdXQgc2VxdWVuY2UgaXMgcmVwcmVzZW50ZWQgdXNpbmcgYSBDQ1MgdmVjdG9yLCAKKyAqIHdoaWNoIGlzIG9mIGxlbmd0aCBOKzIsIGFuZCBpcyBvcmdhbml6ZWQgYXMgZm9sbG93czogCisgKgorICogICBJbmRleDogICAgICAwICAxICAyICAzICA0ICA1ICAgLiAuIC4gICBOLTIgICAgICAgTi0xICAgICAgIE4gICAgICAgTisxIAorICogICBDb21wb25lbnQ6ICBSMCAwICBSMSBJMSBSMiBJMiAgLiAuIC4gICBSW04vMi0xXSAgSVtOLzItMV0gIFJbTi8yXSAgMCAKKyAqCisgKiB3aGVyZSBSW25dIGFuZCBJW25dLCByZXNwZWN0aXZlbHksIGRlbm90ZSB0aGUgcmVhbCBhbmQgaW1hZ2luYXJ5IGNvbXBvbmVudHMgCisgKiBmb3IgRkZUIGJpbiAnbicuIEJpbnMgIGFyZSBudW1iZXJlZCBmcm9tIDAgdG8gTi8yLCB3aGVyZSBOIGlzIHRoZSBGRlQgbGVuZ3RoLiAKKyAqIEJpbiBpbmRleCAwIGNvcnJlc3BvbmRzIHRvIHRoZSBEQyBjb21wb25lbnQsIGFuZCBiaW4gaW5kZXggTi8yIGNvcnJlc3BvbmRzIHRvIHRoZSAKKyAqIGZvbGRvdmVyIGZyZXF1ZW5jeS4gCisgKgorICogSW5wdXQgQXJndW1lbnRzOgorICogICBwU3JjIC0gcG9pbnRlciB0byB0aGUgcmVhbC12YWx1ZWQgaW5wdXQgc2VxdWVuY2UsIG9mIGxlbmd0aCAyXm9yZGVyOyAKKyAqICAgICAgICAgIG11c3QgYmUgYWxpZ25lZCBvbiBhIDMyLWJ5dGUgYm91bmRhcnkuIAorICogICBwRkZUU3BlYyAtIHBvaW50ZXIgdG8gdGhlIHByZWFsbG9jYXRlZCBhbmQgaW5pdGlhbGl6ZWQgc3BlY2lmaWNhdGlvbiAKKyAqICAgICAgICAgICAgc3RydWN0dXJlIAorICogICBzY2FsZUZhY3RvciAtIG91dHB1dCBzY2FsZSBmYWN0b3I7IHZhbGlkIHJhbmdlIGlzIFswLCAzMl0gCisgKgorICogT3V0cHV0IEFyZ3VtZW50czoKKyAqICAgcERzdCAtIHBvaW50ZXIgdG8gb3V0cHV0IHNlcXVlbmNlLCByZXByZXNlbnRlZCB1c2luZyBDQ1MgZm9ybWF0LCBvZiAKKyAqICAgICAgICAgICAgbGVuZ3RoICgyXm9yZGVyKSsyOyBtdXN0IGJlIGFsaWduZWQgb24gYSAzMi1ieXRlIGJvdW5kYXJ5LiAKKyAqCisgKiBSZXR1cm4gVmFsdWU6CisgKiAgICAKKyAqICAgIE9NWF9TdHNfTm9FcnIgLSBubyBlcnJvciAKKyAqICAgIE9NWF9TdHNfQmFkQXJnRXJyIC0gYmFkIGFyZ3VtZW50cywgaWYgb25lIG9yIG1vcmUgb2YgdGhlIGZvbGxvd2luZyBpcyB0cnVlOiAKKyAqICAgIC0gICAgb25lIG9mIHRoZSBwb2ludGVycyBwU3JjLCBwRHN0LCBvciBwRkZUU3BlYyBpcyBOVUxMIAorICogICAgLSAgICBwU3JjIG9yIHBEc3QgaXMgbm90IGFsaWduZWQgb24gYSAzMi1ieXRlIGJvdW5kYXJ5IAorICogICAgLSAgICBzY2FsZUZhY3RvcjwwIG9yIHNjYWxlRmFjdG9yID4zMiAKKyAqCisgKi8KK09NWFJlc3VsdCBvbXhTUF9GRlRGd2RfUlRvQ0NTX1MzMl9TZnMgKAorICAgIGNvbnN0IE9NWF9TMzIgKnBTcmMsCisgICAgT01YX1MzMiAqcERzdCwKKyAgICBjb25zdCBPTVhGRlRTcGVjX1JfUzMyICpwRkZUU3BlYywKKyAgICBPTVhfSU5UIHNjYWxlRmFjdG9yCispOworCisvKioKKyAqIEZ1bmN0aW9uOiAgb214U1BfRkZURndkX1JUb0NDU19GMzJfU2ZzCisgKgorICogRGVzY3JpcHRpb246CisgKiBUaGVzZSBmdW5jdGlvbnMgY29tcHV0ZSBhbiBGRlQgZm9yIGEgcmVhbC12YWx1ZWQgc2lnbmFsIG9mIGxlbmd0aAorICogb2YgMl5vcmRlciwgd2hlcmUgMCA8PSBvcmRlciA8PSAxMi4gVHJhbnNmb3JtIGxlbmd0aCBpcyBkZXRlcm1pbmVkCisgKiBieSB0aGUgc3BlY2lmaWNhdGlvbiBzdHJ1Y3R1cmUsIHdoaWNoIG11c3QgYmUgaW5pdGlhbGl6ZWQgcHJpb3IgdG8KKyAqIGNhbGxpbmcgdGhlIEZGVCBmdW5jdGlvbiB1c2luZyB0aGUgYXBwcm9wcmlhdGUgaGVscGVyLCBpLmUuLAorICogPEZGVEluaXRfUl9GMzI+LiBUaGUgcmVsYXRpb25zaGlwIGJldHdlZW4gdGhlIGlucHV0IGFuZCBvdXRwdXQKKyAqIHNlcXVlbmNlcyBjYW4gYmUgZXhwcmVzc2VkIGluIHRlcm1zIG9mIHRoZSBERlQsIGkuZS46CisgKgorICogICAgIHhbbl0gPSAoMl4oLXNjYWxlZmFjdG9yKS9OKSAgLiBTVU1baz0wLC4uLixOLTFdIFhba10uZV4oam5rLjIucGkvTikKKyAqICAgICBuPTAsMSwyLC4uLk4tMQorICogICAgIE49Ml5vcmRlci4KKyAqCisgKiBUaGUgY29uanVnYXRlLXN5bW1ldHJpYyBvdXRwdXQgc2VxdWVuY2UgaXMgcmVwcmVzZW50ZWQgdXNpbmcgYSBDQ1MgdmVjdG9yLCAKKyAqIHdoaWNoIGlzIG9mIGxlbmd0aCBOKzIsIGFuZCBpcyBvcmdhbml6ZWQgYXMgZm9sbG93czogCisgKgorICogICBJbmRleDogICAgICAwICAxICAyICAzICA0ICA1ICAgLiAuIC4gICBOLTIgICAgICAgTi0xICAgICAgIE4gICAgICAgTisxIAorICogICBDb21wb25lbnQ6ICBSMCAwICBSMSBJMSBSMiBJMiAgLiAuIC4gICBSW04vMi0xXSAgSVtOLzItMV0gIFJbTi8yXSAgMCAKKyAqCisgKiB3aGVyZSBSW25dIGFuZCBJW25dLCByZXNwZWN0aXZlbHksIGRlbm90ZSB0aGUgcmVhbCBhbmQgaW1hZ2luYXJ5CisgKiBjb21wb25lbnRzIGZvciBGRlQgYmluICduJy4gQmlucyBhcmUgbnVtYmVyZWQgZnJvbSAwIHRvIE4vMiwgd2hlcmUKKyAqIE4gaXMgdGhlIEZGVCBsZW5ndGguIEJpbiBpbmRleCAwIGNvcnJlc3BvbmRzIHRvIHRoZSBEQyBjb21wb25lbnQsCisgKiBhbmQgYmluIGluZGV4IE4vMiBjb3JyZXNwb25kcyB0byB0aGUgZm9sZG92ZXIgZnJlcXVlbmN5LgorICoKKyAqIElucHV0IEFyZ3VtZW50czoKKyAqICAgcFNyYyAtIHBvaW50ZXIgdG8gdGhlIHJlYWwtdmFsdWVkIGlucHV0IHNlcXVlbmNlLCBvZiBsZW5ndGggMl5vcmRlcjsgCisgKiAgICAgICAgICBtdXN0IGJlIGFsaWduZWQgb24gYSAzMi1ieXRlIGJvdW5kYXJ5LiAKKyAqICAgcEZGVFNwZWMgLSBwb2ludGVyIHRvIHRoZSBwcmVhbGxvY2F0ZWQgYW5kIGluaXRpYWxpemVkIHNwZWNpZmljYXRpb24gCisgKiAgICAgICAgICAgIHN0cnVjdHVyZSAKKyAqCisgKiBPdXRwdXQgQXJndW1lbnRzOgorICogICBwRHN0IC0gcG9pbnRlciB0byBvdXRwdXQgc2VxdWVuY2UsIHJlcHJlc2VudGVkIHVzaW5nIENDUyBmb3JtYXQsIG9mIAorICogICAgICAgICAgICBsZW5ndGggKDJeb3JkZXIpKzI7IG11c3QgYmUgYWxpZ25lZCBvbiBhIDMyLWJ5dGUgYm91bmRhcnkuIAorICoKKyAqIFJldHVybiBWYWx1ZToKKyAqICAgIAorICogICAgT01YX1N0c19Ob0VyciAtIG5vIGVycm9yIAorCisgKiAgICBPTVhfU3RzX0JhZEFyZ0VyciAtIGJhZCBhcmd1bWVudHMsIGlmIG9uZSBvciBtb3JlIG9mIHRoZQorICogICAgZm9sbG93aW5nIGlzIHRydWU6IC0gb25lIG9mIHRoZSBwb2ludGVycyBwU3JjLCBwRHN0LCBvciBwRkZUU3BlYworICogICAgaXMgTlVMTCAtIHBTcmMgb3IgcERzdCBpcyBub3QgYWxpZ25lZCBvbiBhIDMyLWJ5dGUgYm91bmRhcnkKKyAqCisgKi8KK09NWFJlc3VsdCBvbXhTUF9GRlRGd2RfUlRvQ0NTX0YzMl9TZnMoCisgICAgY29uc3QgT01YX0YzMiogcFNyYywKKyAgICBPTVhfRjMyKiBwRHN0LAorICAgIGNvbnN0IE9NWEZGVFNwZWNfUl9GMzIqIHBGRlRTcGVjCispOworCisKKworLyoqCisgKiBGdW5jdGlvbjogIG9teFNQX0ZGVEludl9DQ1NUb1JfUzMyUzE2X1NmcyAgICgyLjIuNC40LjQpCisgKgorICogRGVzY3JpcHRpb246CisgKiBUaGVzZSBmdW5jdGlvbnMgY29tcHV0ZSB0aGUgaW52ZXJzZSBGRlQgZm9yIGEgY29uanVnYXRlLXN5bW1ldHJpYyBpbnB1dCAKKyAqIHNlcXVlbmNlLiAgVHJhbnNmb3JtIGxlbmd0aCBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBzcGVjaWZpY2F0aW9uIHN0cnVjdHVyZSwgCisgKiB3aGljaCBtdXN0IGJlIGluaXRpYWxpemVkIHByaW9yIHRvIGNhbGxpbmcgdGhlIEZGVCBmdW5jdGlvbiB1c2luZyAKKyAqIDxGRlRJbml0X1JfUzE2UzMyPi4gRm9yIGEgdHJhbnNmb3JtIG9mIGxlbmd0aCBNLCB0aGUgaW5wdXQgc2VxdWVuY2UgaXMgCisgKiByZXByZXNlbnRlZCB1c2luZyBhIHBhY2tlZCBDQ1MgdmVjdG9yIG9mIGxlbmd0aCBNKzIsIGFuZCBpcyBvcmdhbml6ZWQgCisgKiBhcyBmb2xsb3dzOiAKKyAqCisgKiAgIEluZGV4OiAgICAgMCAgICAxICAyICAgIDMgICAgNCAgICA1ICAgIC4gLiAuICBNLTIgICAgICAgTS0xICAgICAgTSAgICAgIE0rMSAKKyAqICAgQ29tcG9uZW50ICBSWzBdIDAgIFJbMV0gSVsxXSBSWzJdIElbMl0gLiAuIC4gIFJbTS8yLTFdICBJW00vMi0xXSBSW00vMl0gMCAKKyAqCisgKiB3aGVyZSBSW25dIGFuZCBJW25dLCByZXNwZWN0aXZlbHksIGRlbm90ZSB0aGUgcmVhbCBhbmQgaW1hZ2luYXJ5IGNvbXBvbmVudHMgZm9yIEZGVCBiaW4gbi4gCisgKiBCaW5zIGFyZSBudW1iZXJlZCBmcm9tIDAgdG8gTS8yLCB3aGVyZSBNIGlzIHRoZSBGRlQgbGVuZ3RoLiAgQmluIGluZGV4IDAgCisgKiBjb3JyZXNwb25kcyB0byB0aGUgREMgY29tcG9uZW50LCBhbmQgYmluIGluZGV4IE0vMiBjb3JyZXNwb25kcyB0byB0aGUgCisgKiBmb2xkb3ZlciBmcmVxdWVuY3kuIAorICoKKyAqIElucHV0IEFyZ3VtZW50czoKKyAqICAgcFNyYyAtIHBvaW50ZXIgdG8gdGhlIGNvbXBsZXgtdmFsdWVkIGlucHV0IHNlcXVlbmNlIHJlcHJlc2VudGVkIHVzaW5nIAorICogICAgICAgICAgICBDQ1MgZm9ybWF0LCBvZiBsZW5ndGggKDJeb3JkZXIpICsgMjsgbXVzdCBiZSBhbGlnbmVkIG9uIGEgMzItYnl0ZSAKKyAqICAgICAgICAgICAgYm91bmRhcnkuIAorICogICBwRkZUU3BlYyAtIHBvaW50ZXIgdG8gdGhlIHByZWFsbG9jYXRlZCBhbmQgaW5pdGlhbGl6ZWQgc3BlY2lmaWNhdGlvbiAKKyAqICAgICAgICAgICAgc3RydWN0dXJlIAorICogICBzY2FsZUZhY3RvciAtIG91dHB1dCBzY2FsZWZhY3RvcjsgcmFuZ2UgaXMgWzAsMTZdCisgKgorICogT3V0cHV0IEFyZ3VtZW50czoKKyAqICAgcERzdCAtIHBvaW50ZXIgdG8gdGhlIHJlYWwtdmFsdWVkIG91dHB1dCBzZXF1ZW5jZSwgb2YgbGVuZ3RoIDJeb3JkZXIgOyBtdXN0IGJlIAorICogICAgICAgICAgICBhbGlnbmVkIG9uIGEgMzItYnl0ZSBib3VuZGFyeS4gCisgKgorICogUmV0dXJuIFZhbHVlOgorICogICAgCisgKiAgICBPTVhfU3RzX05vRXJyIC0gbm8gZXJyb3IgCisgKiAgICBPTVhfU3RzX0JhZEFyZ0VyciAtIGJhZCBhcmd1bWVudHMgaWYgb25lIG9yIG1vcmUgb2YgdGhlIGZvbGxvd2luZyBpcyB0cnVlOiAKKyAqICAgIC0gICAgcFNyYywgcERzdCwgb3IgcEZGVFNwZWMgaXMgTlVMTCAKKyAqICAgIC0gICAgcFNyYyBvciBwRHN0IGlzIG5vdCBhbGlnbmVkIG9uIGEgMzItYnl0ZSBib3VuZGFyeSAKKyAqICAgIC0gICAgc2NhbGVGYWN0b3I8MCBvciBzY2FsZUZhY3RvciA+MTYKKyAqCisgKi8KK09NWFJlc3VsdCBvbXhTUF9GRlRJbnZfQ0NTVG9SX1MzMlMxNl9TZnMgKAorICAgIGNvbnN0IE9NWF9TMzIgKnBTcmMsCisgICAgT01YX1MxNiAqcERzdCwKKyAgICBjb25zdCBPTVhGRlRTcGVjX1JfUzE2UzMyICpwRkZUU3BlYywKKyAgICBPTVhfSU5UIHNjYWxlRmFjdG9yCispOworCisKKworLyoqCisgKiBGdW5jdGlvbjogIG9teFNQX0ZGVEludl9DQ1NUb1JfUzMyX1NmcyAgICgyLjIuNC40LjQpCisgKgorICogRGVzY3JpcHRpb246CisgKiBUaGVzZSBmdW5jdGlvbnMgY29tcHV0ZSB0aGUgaW52ZXJzZSBGRlQgZm9yIGEgY29uanVnYXRlLXN5bW1ldHJpYyBpbnB1dCAKKyAqIHNlcXVlbmNlLiAgVHJhbnNmb3JtIGxlbmd0aCBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBzcGVjaWZpY2F0aW9uIHN0cnVjdHVyZSwgCisgKiB3aGljaCBtdXN0IGJlIGluaXRpYWxpemVkIHByaW9yIHRvIGNhbGxpbmcgdGhlIEZGVCBmdW5jdGlvbiB1c2luZyAKKyAqIDxGRlRJbml0X1JfUzMyPi4gRm9yIGEgdHJhbnNmb3JtIG9mIGxlbmd0aCBNLCB0aGUgaW5wdXQgc2VxdWVuY2UgaXMgCisgKiByZXByZXNlbnRlZCB1c2luZyBhIHBhY2tlZCBDQ1MgdmVjdG9yIG9mIGxlbmd0aCBNKzIsIGFuZCBpcyBvcmdhbml6ZWQgCisgKiBhcyBmb2xsb3dzOiAKKyAqCisgKiAgIEluZGV4OiAgICAgMCAgICAxICAyICAgIDMgICAgNCAgICA1ICAgIC4gLiAuICBNLTIgICAgICAgTS0xICAgICAgTSAgICAgIE0rMSAKKyAqICAgQ29tcG9uZW50ICBSWzBdIDAgIFJbMV0gSVsxXSBSWzJdIElbMl0gLiAuIC4gIFJbTS8yLTFdICBJW00vMi0xXSBSW00vMl0gMCAKKyAqCisgKiB3aGVyZSBSW25dIGFuZCBJW25dLCByZXNwZWN0aXZlbHksIGRlbm90ZSB0aGUgcmVhbCBhbmQgaW1hZ2luYXJ5IGNvbXBvbmVudHMgZm9yIEZGVCBiaW4gbi4gCisgKiBCaW5zIGFyZSBudW1iZXJlZCBmcm9tIDAgdG8gTS8yLCB3aGVyZSBNIGlzIHRoZSBGRlQgbGVuZ3RoLiAgQmluIGluZGV4IDAgCisgKiBjb3JyZXNwb25kcyB0byB0aGUgREMgY29tcG9uZW50LCBhbmQgYmluIGluZGV4IE0vMiBjb3JyZXNwb25kcyB0byB0aGUgCisgKiBmb2xkb3ZlciBmcmVxdWVuY3kuIAorICoKKyAqIElucHV0IEFyZ3VtZW50czoKKyAqICAgcFNyYyAtIHBvaW50ZXIgdG8gdGhlIGNvbXBsZXgtdmFsdWVkIGlucHV0IHNlcXVlbmNlIHJlcHJlc2VudGVkIHVzaW5nIAorICogICAgICAgICAgICBDQ1MgZm9ybWF0LCBvZiBsZW5ndGggKDJeb3JkZXIpICsgMjsgbXVzdCBiZSBhbGlnbmVkIG9uIGEgMzItYnl0ZSAKKyAqICAgICAgICAgICAgYm91bmRhcnkuIAorICogICBwRkZUU3BlYyAtIHBvaW50ZXIgdG8gdGhlIHByZWFsbG9jYXRlZCBhbmQgaW5pdGlhbGl6ZWQgc3BlY2lmaWNhdGlvbiAKKyAqICAgICAgICAgICAgc3RydWN0dXJlIAorICogICBzY2FsZUZhY3RvciAtIG91dHB1dCBzY2FsZWZhY3RvcjsgcmFuZ2UgaXMgWzAsMzJdIAorICoKKyAqIE91dHB1dCBBcmd1bWVudHM6CisgKiAgIHBEc3QgLSBwb2ludGVyIHRvIHRoZSByZWFsLXZhbHVlZCBvdXRwdXQgc2VxdWVuY2UsIG9mIGxlbmd0aCAyXm9yZGVyIDsgbXVzdCBiZSAKKyAqICAgICAgICAgICAgYWxpZ25lZCBvbiBhIDMyLWJ5dGUgYm91bmRhcnkuIAorICoKKyAqIFJldHVybiBWYWx1ZToKKyAqICAgIAorICogICAgT01YX1N0c19Ob0VyciAtIG5vIGVycm9yIAorICogICAgT01YX1N0c19CYWRBcmdFcnIgLSBiYWQgYXJndW1lbnRzIGlmIG9uZSBvciBtb3JlIG9mIHRoZSBmb2xsb3dpbmcgaXMgdHJ1ZTogCisgKiAgICAtICAgIHBTcmMsIHBEc3QsIG9yIHBGRlRTcGVjIGlzIE5VTEwgCisgKiAgICAtICAgIHBTcmMgb3IgcERzdCBpcyBub3QgYWxpZ25lZCBvbiBhIDMyLWJ5dGUgYm91bmRhcnkgCisgKiAgICAtICAgIHNjYWxlRmFjdG9yPDAgb3Igc2NhbGVGYWN0b3IgPjMyCisgKgorICovCitPTVhSZXN1bHQgb214U1BfRkZUSW52X0NDU1RvUl9TMzJfU2ZzICgKKyAgICBjb25zdCBPTVhfUzMyICpwU3JjLAorICAgIE9NWF9TMzIgKnBEc3QsCisgICAgY29uc3QgT01YRkZUU3BlY19SX1MzMiAqcEZGVFNwZWMsCisgICAgT01YX0lOVCBzY2FsZUZhY3RvcgorKTsKKworLyoqCisgKiBGdW5jdGlvbjogIG9teFNQX0ZGVEludl9DQ1NUb1JfRjMyX1NmcworICoKKyAqIERlc2NyaXB0aW9uOgorICogVGhlc2UgZnVuY3Rpb25zIGNvbXB1dGUgdGhlIGludmVyc2UgRkZUIGZvciBhIGNvbmp1Z2F0ZS1zeW1tZXRyaWMgaW5wdXQgCisgKiBzZXF1ZW5jZS4gIFRyYW5zZm9ybSBsZW5ndGggaXMgZGV0ZXJtaW5lZCBieSB0aGUgc3BlY2lmaWNhdGlvbiBzdHJ1Y3R1cmUsIAorICogd2hpY2ggbXVzdCBiZSBpbml0aWFsaXplZCBwcmlvciB0byBjYWxsaW5nIHRoZSBGRlQgZnVuY3Rpb24gdXNpbmcgCisgKiA8RkZUSW5pdF9SX0YzMj4uIEZvciBhIHRyYW5zZm9ybSBvZiBsZW5ndGggTSwgdGhlIGlucHV0IHNlcXVlbmNlIGlzIAorICogcmVwcmVzZW50ZWQgdXNpbmcgYSBwYWNrZWQgQ0NTIHZlY3RvciBvZiBsZW5ndGggTSsyLCBhbmQgaXMgb3JnYW5pemVkIAorICogYXMgZm9sbG93czogCisgKgorICogICBJbmRleDogICAwICAxICAyICAgIDMgICAgNCAgICA1ICAgIC4gLiAuICBNLTIgICAgICAgTS0xICAgICAgTSAgICAgIE0rMSAKKyAqICAgQ29tcDogIFJbMF0gMCAgUlsxXSBJWzFdIFJbMl0gSVsyXSAuIC4gLiAgUltNLzItMV0gIElbTS8yLTFdIFJbTS8yXSAwIAorICoKKyAqIHdoZXJlIFJbbl0gYW5kIElbbl0sIHJlc3BlY3RpdmVseSwgZGVub3RlIHRoZSByZWFsIGFuZCBpbWFnaW5hcnkKKyAqIGNvbXBvbmVudHMgZm9yIEZGVCBiaW4gbi4gQmlucyBhcmUgbnVtYmVyZWQgZnJvbSAwIHRvIE0vMiwgd2hlcmUgTQorICogaXMgdGhlIEZGVCBsZW5ndGguICBCaW4gaW5kZXggMCBjb3JyZXNwb25kcyB0byB0aGUgREMgY29tcG9uZW50LAorICogYW5kIGJpbiBpbmRleCBNLzIgY29ycmVzcG9uZHMgdG8gdGhlIGZvbGRvdmVyIGZyZXF1ZW5jeS4KKyAqCisgKiBJbnB1dCBBcmd1bWVudHM6CisgKiAgIHBTcmMgLSBwb2ludGVyIHRvIHRoZSBjb21wbGV4LXZhbHVlZCBpbnB1dCBzZXF1ZW5jZSByZXByZXNlbnRlZAorICogICAgICAgICAgdXNpbmcgQ0NTIGZvcm1hdCwgb2YgbGVuZ3RoICgyXm9yZGVyKSArIDI7IG11c3QgYmUgYWxpZ25lZCBvbiBhCisgKiAgICAgICAgICAzMi1ieXRlIGJvdW5kYXJ5LgorICogICBwRkZUU3BlYyAtIHBvaW50ZXIgdG8gdGhlIHByZWFsbG9jYXRlZCBhbmQgaW5pdGlhbGl6ZWQKKyAqICAgICAgICAgICAgICBzcGVjaWZpY2F0aW9uIHN0cnVjdHVyZQorICoKKyAqIE91dHB1dCBBcmd1bWVudHM6CisgKiAgIHBEc3QgLSBwb2ludGVyIHRvIHRoZSByZWFsLXZhbHVlZCBvdXRwdXQgc2VxdWVuY2UsIG9mIGxlbmd0aAorICogICAgICAgICAgMl5vcmRlciA7IG11c3QgYmUgYWxpZ25lZCBvbiBhIDMyLWJ5dGUgYm91bmRhcnkuCisgKgorICogUmV0dXJuIFZhbHVlOgorICogICAgCisgKiAgICBPTVhfU3RzX05vRXJyIC0gbm8gZXJyb3IgCisKKyAqICAgIE9NWF9TdHNfQmFkQXJnRXJyIC0gYmFkIGFyZ3VtZW50cyBpZiBvbmUgb3IgbW9yZSBvZiB0aGUKKyAqICAgICAgZm9sbG93aW5nIGlzIHRydWU6CisgKiAgICAtICAgIHBTcmMsIHBEc3QsIG9yIHBGRlRTcGVjIGlzIE5VTEwgCisgKiAgICAtICAgIHBTcmMgb3IgcERzdCBpcyBub3QgYWxpZ25lZCBvbiBhIDMyLWJ5dGUgYm91bmRhcnkgCisgKiAgICAtICAgIHNjYWxlRmFjdG9yPDAgb3Igc2NhbGVGYWN0b3IgPjMyCisgKgorICovCitPTVhSZXN1bHQgb214U1BfRkZUSW52X0NDU1RvUl9GMzJfU2ZzKAorICAgIGNvbnN0IE9NWF9GMzIqIHBTcmMsCisgICAgT01YX0YzMiogcERzdCwKKyAgICBjb25zdCBPTVhGRlRTcGVjX1JfRjMyKiBwRkZUU3BlYworKTsKKworCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiogZW5kIG9mICNkZWZpbmUgX09NWFNQX0hfICovCisKKy8qKiBFT0YgKi8KKwpkaWZmIC0tZ2l0IGEvZGwvb214U1BfRkZURndkX0NUb0NfRkMzMl9TZnNfcy5TIGIvZGwvb214U1BfRkZURndkX0NUb0NfRkMzMl9TZnNfcy5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1YzE2NTMKLS0tIC9kZXYvbnVsbAorKysgYi9kbC9vbXhTUF9GRlRGd2RfQ1RvQ19GQzMyX1Nmc19zLlMKQEAgLTAsMCArMSwxOTIgQEAKK0AvLworQC8vICBDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitALy8KK0AvLyAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorQC8vICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKK0AvLyAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorQC8vICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CitALy8gIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorQC8vCitALy8gIFRoaXMgaXMgYSBtb2RpZmljYXRpb24gb2Ygb214U1BfRkZURndkX0NUb0NfU0MzMl9TZnNfcy5zCitALy8gIHRvIHN1cHBvcnQgZmxvYXQgaW5zdGVhZCBvZiBTQzMyLgorQC8vCisKK0AvLworQC8vIERlc2NyaXB0aW9uOgorQC8vIENvbXB1dGUgYW4gaW52ZXJzZSBGRlQgZm9yIGEgY29tcGxleCBzaWduYWwKK0AvLworQC8vCisKKworQC8vIEluY2x1ZGUgc3RhbmRhcmQgaGVhZGVycworCisjaW5jbHVkZSAib214dHlwZXNfcy5oIgorI2luY2x1ZGUgImFybUNPTU1fcy5oIgorCitALy8gSW1wb3J0IHN5bWJvbHMgcmVxdWlyZWQgZnJvbSBvdGhlciBmaWxlcworQC8vIChGb3IgZXhhbXBsZSB0YWJsZXMpCisKKyAgICAgICAgLmV4dGVybiAgYXJtU1BfRkZURndkX0NUb0NfRkMzMl9SYWRpeDJfZnNfT3V0T2ZQbGFjZV91bnNhZmUKKyAgICAgICAgLmV4dGVybiAgYXJtU1BfRkZURndkX0NUb0NfRkMzMl9SYWRpeDRfZnNfT3V0T2ZQbGFjZV91bnNhZmUKKyAgICAgICAgLmV4dGVybiAgYXJtU1BfRkZURndkX0NUb0NfRkMzMl9SYWRpeDhfZnNfT3V0T2ZQbGFjZV91bnNhZmUKKyAgICAgICAgLmV4dGVybiAgYXJtU1BfRkZURndkX0NUb0NfRkMzMl9SYWRpeDRfT3V0T2ZQbGFjZV91bnNhZmUKKyAgICAgICAgLmV4dGVybiAgYXJtU1BfRkZURndkX0NUb0NfRkMzMl9SYWRpeDJfT3V0T2ZQbGFjZV91bnNhZmUKKworQC8vIFNldCBkZWJ1Z2dpbmcgbGV2ZWwKK0AvL0RFQlVHX09OICAgIFNFVEwge1RSVUV9CisKKworCitALy8gR3VhcmRpbmcgaW1wbGVtZW50YXRpb24gYnkgdGhlIHByb2Nlc3NvciBuYW1lCisKKworCisgICAgQC8vIEd1YXJkaW5nIGltcGxlbWVudGF0aW9uIGJ5IHRoZSBwcm9jZXNzb3IgbmFtZQorCitALy8gSW1wb3J0IHN5bWJvbHMgcmVxdWlyZWQgZnJvbSBvdGhlciBmaWxlcworQC8vIChGb3IgZXhhbXBsZSB0YWJsZXMpCisgICAgICAgIC5leHRlcm4gIGFybVNQX0ZGVEZ3ZF9DVG9DX0ZDMzJfUmFkaXgyX2xzX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIC5leHRlcm4gIGFybVNQX0ZGVEZ3ZF9DVG9DX0ZDMzJfU2ZzX1JhZGl4Ml9sc19PdXRPZlBsYWNlX3Vuc2FmZQorCisKK0AvL0lucHV0IFJlZ2lzdGVycworCisjZGVmaW5lIHBTcmMgICAgICAgICAgICByMAorI2RlZmluZSBwRHN0ICAgICAgICAgICAgcjEKKyNkZWZpbmUgcEZGVFNwZWMgICAgICAgIHIyCisKKworQC8vIE91dHB1dCByZWdpc3RlcnMKKyNkZWZpbmUgcmVzdWx0ICAgICAgICAgIHIwCisKK0AvL0xvY2FsIFNjcmF0Y2ggUmVnaXN0ZXJzCisKKyNkZWZpbmUgYXJnVHdpZGRsZSAgICAgIHIxCisjZGVmaW5lIGFyZ0RzdCAgICAgICAgICByMgorI2RlZmluZSBhcmdTY2FsZSAgICAgICAgcjQKKyNkZWZpbmUgdG1wT3JkZXIgICAgICAgIHI0CisjZGVmaW5lIHBUd2lkZGxlICAgICAgICByNAorI2RlZmluZSBwT3V0ICAgICAgICAgICAgcjUKKyNkZWZpbmUgc3ViRkZUU2l6ZSAgICAgIHI3CisjZGVmaW5lIHN1YkZGVE51bSAgICAgICByNgorI2RlZmluZSBOICAgICAgICAgICAgICAgcjYKKyNkZWZpbmUgb3JkZXIgICAgICAgICAgIHIxNAorI2RlZmluZSBkaWZmICAgICAgICAgICAgcjkKK0AvLyBUb3RhbCBudW0gb2YgcmFkaXggc3RhZ2VzIHJlcXVpcmVkIHRvIGNvbXBsZSB0aGUgRkZUCisjZGVmaW5lIGNvdW50ICAgICAgICAgICByOAorI2RlZmluZSB4MHIgICAgICAgICAgICAgcjQKKyNkZWZpbmUgeDBpICAgICAgICAgICAgIHI1CisjZGVmaW5lIGRpZmZNaW51c09uZSAgICByMgorCitALy8gTmVvbiByZWdpc3RlcnMKKworI2RlZmluZSBkWDAgICAgIEQwLkYzMgorCisKKyAgICBALy8gQWxsb2NhdGUgc3RhY2sgbWVtb3J5IHJlcXVpcmVkIGJ5IHRoZSBmdW5jdGlvbgorCisgICAgQC8vIFdyaXRlIGZ1bmN0aW9uIGhlYWRlcgorICAgICAgICBNX1NUQVJUICAgICBvbXhTUF9GRlRGd2RfQ1RvQ19GQzMyX1NmcyxyMTEsZDE1CisKK0AgU3RydWN0dXJlIG9mZnNldHMgZm9yIHRoZSBGRlRTcGVjCisgICAgICAgIC5zZXQgICAgQVJNc0ZGVFNwZWNfTiwgMAorICAgICAgICAuc2V0ICAgIEFSTXNGRlRTcGVjX3BCaXRSZXYsIDQKKyAgICAgICAgLnNldCAgICBBUk1zRkZUU3BlY19wVHdpZGRsZSwgOAorICAgICAgICAuc2V0ICAgIEFSTXNGRlRTcGVjX3BCdWYsIDEyCisKKyAgICAgICAgQC8vIERlZmluZSBzdGFjayBhcmd1bWVudHMKKworICAgICAgICBALy8gUmVhZCB0aGUgc2l6ZSBmcm9tIHN0cnVjdHVyZSBhbmQgdGFrZSBsb2cKKyAgICAgICAgTERSICAgICBOLCBbcEZGVFNwZWMsICNBUk1zRkZUU3BlY19OXQorCisgICAgICAgIEAvLyBSZWFkIG90aGVyIHN0cnVjdHVyZSBwYXJhbWV0ZXJzCisgICAgICAgIExEUiAgICAgcFR3aWRkbGUsIFtwRkZUU3BlYywgI0FSTXNGRlRTcGVjX3BUd2lkZGxlXQorICAgICAgICBMRFIgICAgIHBPdXQsIFtwRkZUU3BlYywgI0FSTXNGRlRTcGVjX3BCdWZdCisKKyAgICAgICAgQ0xaICAgICBvcmRlcixOICAgICAgICAgICAgICAgICAgICAgICAgICAgICBALy8gTiA9IDJeb3JkZXIKKyAgICAgICAgUlNCICAgICBvcmRlcixvcmRlciwjMzEKKyAgICAgICAgTU9WICAgICBzdWJGRlRTaXplLCMxCisgICAgICAgIEAvL01PViAgICAgc3ViRkZUTnVtLE4KKworICAgICAgICBDTVAgICAgIG9yZGVyLCMzCisgICAgICAgIEJHVCAgICAgb3JkZXJHcmVhdGVydGhhbjMgICAgICAgICAgICAgICAgICAgQC8vIG9yZGVyID4gMworCisgICAgICAgIENNUCAgICAgb3JkZXIsIzEKKyAgICAgICAgQkdFICAgICBvcmRlckdyZWF0ZXJ0aGFuMCAgICAgICAgICAgICAgICAgICBALy8gb3JkZXIgPiAwCisgICAgICAgIFZMRDEgICAgZFgwLFtwU3JjXQorICAgICAgICBWU1QxICAgIGRYMCxbcERzdF0KKyAgICAgICAgTU9WICAgICBwU3JjLHBEc3QKKyAgICAgICAgQkxUICAgICBGRlRFbmQKKworb3JkZXJHcmVhdGVydGhhbjA6CisgICAgICAgIEAvLyBzZXQgdGhlIGJ1ZmZlcnMgYXBwcm9wcmlhdGVseSBmb3IgdmFyaW91cyBvcmRlcnMKKyAgICAgICAgQ01QICAgICBvcmRlciwjMgorICAgICAgICBNT1ZORSAgIGFyZ0RzdCxwRHN0CisgICAgICAgIE1PVkVRICAgYXJnRHN0LHBPdXQKKyAgICAgICAgQC8vIFBhc3MgdGhlIGZpcnN0IHN0YWdlIGRlc3RpbmF0aW9uIGluIFJONQorICAgICAgICBNT1ZFUSAgIHBPdXQscERzdAorICAgICAgICBNT1YgICAgIGFyZ1R3aWRkbGUscFR3aWRkbGUKKworICAgICAgICBDTVAgICAgIG9yZGVyLCMxCisgICAgICAgIEJHVCAgICAgb3JkZXJHcmVhdGVydGhhbjEKKyAgICAgICAgQC8vIG9yZGVyID0gMQorICAgICAgICBCTCAgICBhcm1TUF9GRlRGd2RfQ1RvQ19GQzMyX1JhZGl4Ml9mc19PdXRPZlBsYWNlX3Vuc2FmZQorICAgICAgICBCICAgICAgIEZGVEVuZAorCitvcmRlckdyZWF0ZXJ0aGFuMToKKyAgICAgICAgQ01QICAgICBvcmRlciwjMgorICAgICAgICBCR1QgICAgIG9yZGVyR3JlYXRlcnRoYW4yCisgICAgICAgIEAvLyBvcmRlciA9IDIKKyAgICAgICAgQkwgICAgYXJtU1BfRkZURndkX0NUb0NfRkMzMl9SYWRpeDJfZnNfT3V0T2ZQbGFjZV91bnNhZmUKKyAgICAgICAgQkwgICAgYXJtU1BfRkZURndkX0NUb0NfRkMzMl9SYWRpeDJfbHNfT3V0T2ZQbGFjZV91bnNhZmUKKyAgICAgICAgQiAgICAgICBGRlRFbmQKKworb3JkZXJHcmVhdGVydGhhbjI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQC8vIG9yZGVyID0zCisgICAgICAgIEJMICAgIGFybVNQX0ZGVEZ3ZF9DVG9DX0ZDMzJfUmFkaXgyX2ZzX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIEJMICAgIGFybVNQX0ZGVEZ3ZF9DVG9DX0ZDMzJfUmFkaXgyX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIEJMICAgIGFybVNQX0ZGVEZ3ZF9DVG9DX0ZDMzJfUmFkaXgyX2xzX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIEIgICAgICAgRkZURW5kCisKK29yZGVyR3JlYXRlcnRoYW4zOgorICAgICAgICBALy8gU2V0IGlucHV0IGFyZ3MgdG8gZmZ0IHN0YWdlcworICAgICAgICBUU1QgICAgIG9yZGVyLCAjMgorICAgICAgICBNT1ZORSAgIGFyZ0RzdCxwRHN0CisgICAgICAgIE1PVkVRICAgYXJnRHN0LHBPdXQKKyAgICAgICAgQC8vIFBhc3MgdGhlIGZpcnN0IHN0YWdlIGRlc3RpbmF0aW9uIGluIFJONQorICAgICAgICBNT1ZFUSAgIHBPdXQscERzdAorICAgICAgICBNT1YgICAgIGFyZ1R3aWRkbGUscFR3aWRkbGUKKworICAgICAgICBALy9jaGVjayBmb3IgZXZlbiBvciBvZGQgb3JkZXIKKyAgICAgICAgQC8vIE5PVEU6IFRoZSBmb2xsb3dpbmcgY29tYmluYXRpb24gb2YgQkwncyB3b3VsZCB3b3JrIGZpbmUgZXZlbiB0aG91Z2gKKyAgICAgICAgQC8vIHRoZSBmaXJzdCBCTCB3b3VsZCBjb3JydXB0IHRoZSBmbGFncy4gVGhpcyBpcyBiZWNhdXNlIHRoZSBlbmQgb2YKKyAgICAgICAgQC8vIHRoZSAiZ3JwWmVyb1NldExvb3AiIGxvb3AgaW5zaWRlCisgICAgICAgIEAvLyBhcm1TUF9GRlRGd2RfQ1RvQ19GQzMyX1JhZGl4NF9mc19PdXRPZlBsYWNlX3Vuc2FmZSBzZXRzIHRoZSBaIGZsYWcKKyAgICAgICAgQC8vIHRvIEVRCisKKyAgICAgICAgVFNUICAgICBvcmRlciwjMHgwMDAwMDAwMQorICAgICAgICBCTEVRICAgIGFybVNQX0ZGVEZ3ZF9DVG9DX0ZDMzJfUmFkaXg0X2ZzX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIEJMTkUgICAgYXJtU1BfRkZURndkX0NUb0NfRkMzMl9SYWRpeDhfZnNfT3V0T2ZQbGFjZV91bnNhZmUKKworICAgICAgICBDTVAgICAgICAgIHN1YkZGVE51bSwjNAorICAgICAgICBCTFQgICAgIEZGVEVuZAorCisKK3Vuc2NhbGVkUmFkaXg0TG9vcDoKKyAgICAgICAgQkVRICAgICAgICBsYXN0U3RhZ2VVbnNjYWxlZFJhZGl4NAorICAgICAgICAgQkwgICAgICAgIGFybVNQX0ZGVEZ3ZF9DVG9DX0ZDMzJfUmFkaXg0X091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgICBDTVAgICAgICAgIHN1YkZGVE51bSwjNAorICAgICAgICAgQiAgICAgICAgdW5zY2FsZWRSYWRpeDRMb29wCisKK2xhc3RTdGFnZVVuc2NhbGVkUmFkaXg0OgorICAgICAgICBCTCAgICAgIGFybVNQX0ZGVEZ3ZF9DVG9DX0ZDMzJfUmFkaXg0X2xzX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIEIgICAgICAgIEZGVEVuZAorCitGRlRFbmQ6CisKKyAgICAgICAgQC8vIFNldCByZXR1cm4gdmFsdWUKKyAgICAgICAgTU9WICAgICByZXN1bHQsICNPTVhfU3RzX05vRXJyCisKKyAgICAgICAgQC8vIFdyaXRlIGZ1bmN0aW9uIHRhaWwKKyAgICAgICAgTV9FTkQKKworICAgICAgICAuZW5kCmRpZmYgLS1naXQgYS9kbC9vbXhTUF9GRlRGd2RfQ1RvQ19TQzMyX1Nmc19zLlMgYi9kbC9vbXhTUF9GRlRGd2RfQ1RvQ19TQzMyX1Nmc19zLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTcyODdlYwotLS0gL2Rldi9udWxsCisrKyBiL2RsL29teFNQX0ZGVEZ3ZF9DVG9DX1NDMzJfU2ZzX3MuUwpAQCAtMCwwICsxLDMzNSBAQAorQC8vCitALy8gIENvcHlyaWdodCAoYykgMjAxMyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KK0AvLworQC8vICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCitALy8gIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorQC8vICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCitALy8gIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKK0AvLyAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCitALy8KK0AvLyAgVGhpcyBmaWxlIHdhcyBvcmlnaW5hbGx5IGxpY2Vuc2VkIGFzIGZvbGxvd3MuIEl0IGhhcyBiZWVuCitALy8gIHJlbGljZW5zZWQgd2l0aCBwZXJtaXNzaW9uIGZyb20gdGhlIGNvcHlyaWdodCBob2xkZXJzLgorQC8vCitALy8gCitALy8gRmlsZSBOYW1lOiAgb214U1BfRkZURndkX0NUb0NfU0MzMl9TZnNfcy5zCitALy8gT3Blbk1BWCBETDogdjEuMC4yCitALy8gTGFzdCBNb2RpZmllZCBSZXZpc2lvbjogICA2Njg0CitALy8gTGFzdCBNb2RpZmllZCBEYXRlOiAgICAgICBNb24sIDA5IEp1bCAyMDA3CitALy8gCitALy8gKGMpIENvcHlyaWdodCAyMDA3LTIwMDggQVJNIExpbWl0ZWQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitALy8gCitALy8gCitALy8KK0AvLyBEZXNjcmlwdGlvbjoKK0AvLyBDb21wdXRlIGFuIGludmVyc2UgRkZUIGZvciBhIGNvbXBsZXggc2lnbmFsCitALy8gCisKKyAgICAgICAgCitALy8gSW5jbHVkZSBzdGFuZGFyZCBoZWFkZXJzCisKKyNpbmNsdWRlICJvbXh0eXBlc19zLmgiCisjaW5jbHVkZSAiYXJtQ09NTV9zLmgiCisgICAgICAgIAorQC8vIEltcG9ydCBzeW1ib2xzIHJlcXVpcmVkIGZyb20gb3RoZXIgZmlsZXMKK0AvLyAoRm9yIGV4YW1wbGUgdGFibGVzKQorICAgICAgICAKKyAgICAgICAgLmV4dGVybiAgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9TZnNfUmFkaXgyX2ZzX091dE9mUGxhY2VfdW5zYWZlIAorICAgICAgICAuZXh0ZXJuICBhcm1TUF9GRlRGd2RfQ1RvQ19TQzMyX1JhZGl4Ml9mc19PdXRPZlBsYWNlX3Vuc2FmZQorICAgICAgICAuZXh0ZXJuICBhcm1TUF9GRlRGd2RfQ1RvQ19TQzMyX1JhZGl4NF9mc19PdXRPZlBsYWNlX3Vuc2FmZSAKKyAgICAgICAgLmV4dGVybiAgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9SYWRpeDhfZnNfT3V0T2ZQbGFjZV91bnNhZmUgCisgICAgICAgIC5leHRlcm4gIGFybVNQX0ZGVEZ3ZF9DVG9DX1NDMzJfUmFkaXg0X091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIC5leHRlcm4gIGFybVNQX0ZGVEZ3ZF9DVG9DX1NDMzJfU2ZzX1JhZGl4NF9mc19PdXRPZlBsYWNlX3Vuc2FmZSAKKyAgICAgICAgLmV4dGVybiAgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9TZnNfUmFkaXg4X2ZzX091dE9mUGxhY2VfdW5zYWZlIAorICAgICAgICAuZXh0ZXJuICBhcm1TUF9GRlRGd2RfQ1RvQ19TQzMyX1Nmc19SYWRpeDRfT3V0T2ZQbGFjZV91bnNhZmUKKyAgICAgICAgLmV4dGVybiAgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9TZnNfUmFkaXgyX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIC5leHRlcm4gIGFybVNQX0ZGVEZ3ZF9DVG9DX1NDMzJfUmFkaXgyX091dE9mUGxhY2VfdW5zYWZlICAgCisgICAgICAgIAorQC8vIFNldCBkZWJ1Z2dpbmcgbGV2ZWwgICAgICAgIAorQC8vREVCVUdfT04gICAgU0VUTCB7VFJVRX0KKworCisKK0AvLyBHdWFyZGluZyBpbXBsZW1lbnRhdGlvbiBieSB0aGUgcHJvY2Vzc29yIG5hbWUKKyAgICAKKyAgICAKKyAgICAKKyAgICBALy8gR3VhcmRpbmcgaW1wbGVtZW50YXRpb24gYnkgdGhlIHByb2Nlc3NvciBuYW1lCisgICAgCitALy8gSW1wb3J0IHN5bWJvbHMgcmVxdWlyZWQgZnJvbSBvdGhlciBmaWxlcworQC8vIChGb3IgZXhhbXBsZSB0YWJsZXMpCisgICAgICAgIC5leHRlcm4gIGFybVNQX0ZGVEZ3ZF9DVG9DX1NDMzJfUmFkaXg0X2xzX091dE9mUGxhY2VfdW5zYWZlICAgICAKKyAgICAgICAgLmV4dGVybiAgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9SYWRpeDJfbHNfT3V0T2ZQbGFjZV91bnNhZmUKKyAgICAgICAgLmV4dGVybiAgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9TZnNfUmFkaXg0X2xzX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIC5leHRlcm4gIGFybVNQX0ZGVEZ3ZF9DVG9DX1NDMzJfU2ZzX1JhZGl4Ml9sc19PdXRPZlBsYWNlX3Vuc2FmZSAgICAgIAorICAgICAKKyAgICAKK0AvL0lucHV0IFJlZ2lzdGVycworCisjZGVmaW5lIHBTcmMJCXIwCisjZGVmaW5lIHBEc3QJCXIxCisjZGVmaW5lIHBGRlRTcGVjCXIyCisjZGVmaW5lIHNjYWxlCQlyMworCisKK0AvLyBPdXRwdXQgcmVnaXN0ZXJzCisjZGVmaW5lIHJlc3VsdAkJcjAKKworQC8vTG9jYWwgU2NyYXRjaCBSZWdpc3RlcnMKKworI2RlZmluZSBhcmdUd2lkZGxlCXIxCisjZGVmaW5lIGFyZ0RzdAkJcjIKKyNkZWZpbmUgYXJnU2NhbGUJcjQKKyNkZWZpbmUgdG1wT3JkZXIJcjQKKyNkZWZpbmUgcFR3aWRkbGUJcjQKKyNkZWZpbmUgcE91dAkJcjUKKyNkZWZpbmUgc3ViRkZUU2l6ZQlyNyAgICAgCisjZGVmaW5lIHN1YkZGVE51bQlyNgorI2RlZmluZSBOCQlyNgorI2RlZmluZSBvcmRlcgkJcjE0CisjZGVmaW5lIGRpZmYJCXI5CitALy8gVG90YWwgbnVtIG9mIHJhZGl4IHN0YWdlcyByZXF1aXJlZCB0byBjb21wbGUgdGhlIEZGVAkKKyNkZWZpbmUgY291bnQJCXI4CisjZGVmaW5lIHgwcgkJcjQgICAgCisjZGVmaW5lIHgwaQkJcjUKKyNkZWZpbmUgZGlmZk1pbnVzT25lCXIyCisjZGVmaW5lIHJvdW5kCQlyMworCitALy8gTmVvbiByZWdpc3RlcnMKKworI2RlZmluZSBkWDAJRDAuUzMyCisjZGVmaW5lIGRTaGlmdAlEMS5TMzIKKworCisKKyAgICBALy8gQWxsb2NhdGUgc3RhY2sgbWVtb3J5IHJlcXVpcmVkIGJ5IHRoZSBmdW5jdGlvbgorICAgICAgICBNX0FMTE9DNCAgICAgICAgZGlmZk9uU3RhY2ssIDQKKworICAgIEAvLyBXcml0ZSBmdW5jdGlvbiBoZWFkZXIKKyAgICAgICAgTV9TVEFSVCAgICAgb214U1BfRkZURndkX0NUb0NfU0MzMl9TZnMscjExLGQxNQorICAgICAgICAKK0AgU3RydWN0dXJlIG9mZnNldHMgZm9yIHRoZSBGRlRTcGVjCQkKKwkuc2V0CUFSTXNGRlRTcGVjX04sIDAKKwkuc2V0CUFSTXNGRlRTcGVjX3BCaXRSZXYsIDQKKwkuc2V0CUFSTXNGRlRTcGVjX3BUd2lkZGxlLCA4CisJLnNldAlBUk1zRkZUU3BlY19wQnVmLCAxMgorICAgICAgICAKKyAgICAgICAgQC8vIERlZmluZSBzdGFjayBhcmd1bWVudHMKKyAgICAgICAgCisgICAgICAgIEAvLyBSZWFkIHRoZSBzaXplIGZyb20gc3RydWN0dXJlIGFuZCB0YWtlIGxvZworICAgICAgICBMRFIgICAgIE4sIFtwRkZUU3BlYywgI0FSTXNGRlRTcGVjX05dCisgICAgICAgIAorICAgICAgICBALy8gUmVhZCBvdGhlciBzdHJ1Y3R1cmUgcGFyYW1ldGVycworICAgICAgICBMRFIgICAgIHBUd2lkZGxlLCBbcEZGVFNwZWMsICNBUk1zRkZUU3BlY19wVHdpZGRsZV0KKyAgICAgICAgTERSICAgICBwT3V0LCBbcEZGVFNwZWMsICNBUk1zRkZUU3BlY19wQnVmXQorICAgICAgICAgICAgICAgIAorICAgICAgICBDTFogICAgIG9yZGVyLE4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyBOID0gMl5vcmRlciAKKyAgICAgICAgUlNCICAgICBvcmRlcixvcmRlciwjMzEgICAgIAorICAgICAgICBNT1YgICAgIHN1YkZGVFNpemUsIzEKKyAgICAgICAgQC8vTU9WICAgICBzdWJGRlROdW0sTgorICAgICAgICAKKyAgICAgICAgQ01QICAgICBvcmRlciwjMworICAgICAgICBCR1QgICAgIG9yZGVyR3JlYXRlcnRoYW4zICAgICAgICAgICAgICAgICAgIEAvLyBvcmRlciA+IDMKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgQ01QICAgICBvcmRlciwjMQorICAgICAgICBCR0UgICAgIG9yZGVyR3JlYXRlcnRoYW4wICAgICAgICAgICAgICAgICAgIEAvLyBvcmRlciA+IDAKKyAgICAgICAgTV9TVFIgICBzY2FsZSwgZGlmZk9uU3RhY2ssTFQgICAgICAgICAgICAgICBALy8gb3JkZXIgPSAwCisgICAgICAgIFZMRDEgICAgZFgwLFtwU3JjXQorICAgICAgICBWU1QxICAgIGRYMCxbcERzdF0KKyAgICAgICAgTU9WICAgICBwU3JjLHBEc3QKKyAgICAgICAgQkxUICAgICBGRlRFbmQKKyAgICAgICAgCitvcmRlckdyZWF0ZXJ0aGFuMDoJCisgICAgICAgIEAvLyBzZXQgdGhlIGJ1ZmZlcnMgYXBwcm9wcmlhdGVseSBmb3IgdmFyaW91cyBvcmRlcnMKKyAgICAgICAgQ01QICAgICBvcmRlciwjMgorICAgICAgICBNT1ZORSAgIGFyZ0RzdCxwRHN0ICAgICAgICAKKyAgICAgICAgTU9WRVEgICBhcmdEc3QscE91dAorICAgICAgICBNT1ZFUSAgIHBPdXQscERzdCAgICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyBQYXNzIHRoZSBmaXJzdCBzdGFnZSBkZXN0aW5hdGlvbiBpbiBSTjUKKyAgICAgICAgTU9WICAgICBhcmdUd2lkZGxlLHBUd2lkZGxlCisgICAgICAgIAorICAgICAgICBTVUJTICAgICBkaWZmLHNjYWxlLG9yZGVyCisgICAgICAgIE1fU1RSICAgZGlmZixkaWZmT25TdGFjaworICAgICAgICBNT1ZHVCAgIHNjYWxlLG9yZGVyCisgICAgICAgIEAvLyBOb3cgc2NhbGUgPD0gb3JkZXIKKyAgICAgICAgCisgICAgICAgIENNUCAgICAgb3JkZXIsIzEKKyAgICAgICAgQkdUICAgICBvcmRlckdyZWF0ZXJ0aGFuMQorICAgICAgICBTVUJTICAgIHNjYWxlLHNjYWxlLCMxCisgICAgICAgIEJMRVEgICAgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9TZnNfUmFkaXgyX2ZzX091dE9mUGxhY2VfdW5zYWZlICBALy8gb3JkZXIgPSAxCisgICAgICAgIEJMTFQgICAgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9SYWRpeDJfZnNfT3V0T2ZQbGFjZV91bnNhZmUgICAgICBALy8gb3JkZXIgPSAxCisgICAgICAgIEIgICAgICAgRkZURW5kCisKK29yZGVyR3JlYXRlcnRoYW4xOgkKKyAgICAgICAgQ01QICAgICBvcmRlciwjMgorICAgICAgICBNT1YgICAgIGFyZ1NjYWxlLHNjYWxlCisgICAgICAgIEJHVCAgICAgb3JkZXJHcmVhdGVydGhhbjIKKyAgICAgICAgU1VCUyAgICBhcmdTY2FsZSxhcmdTY2FsZSwjMQorICAgICAgICBCTEdFICAgIGFybVNQX0ZGVEZ3ZF9DVG9DX1NDMzJfU2ZzX1JhZGl4Ml9mc19PdXRPZlBsYWNlX3Vuc2FmZSAgICAgIEAvLyBvcmRlciA9MiAgICAgICAgICAKKyAgICAgICAgQkxMVCAgICBhcm1TUF9GRlRGd2RfQ1RvQ19TQzMyX1JhZGl4Ml9mc19PdXRPZlBsYWNlX3Vuc2FmZSAgCisgICAgICAgIFNVQlMgICAgYXJnU2NhbGUsYXJnU2NhbGUsIzEKKyAgICAgICAgQkxFUSAgICBhcm1TUF9GRlRGd2RfQ1RvQ19TQzMyX1Nmc19SYWRpeDJfbHNfT3V0T2ZQbGFjZV91bnNhZmUgIAorICAgICAgICBCTExUICAgIGFybVNQX0ZGVEZ3ZF9DVG9DX1NDMzJfUmFkaXgyX2xzX091dE9mUGxhY2VfdW5zYWZlICAKKyAgICAgICAgQiAgICAgICBGRlRFbmQKKyAgICAgICAgCitvcmRlckdyZWF0ZXJ0aGFuMjoJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQC8vIG9yZGVyID0zICAgICAgICAKKyAgICAgICAgU1VCUyAgICBhcmdTY2FsZSxhcmdTY2FsZSwjMQorICAgICAgICBCTEdFICAgIGFybVNQX0ZGVEZ3ZF9DVG9DX1NDMzJfU2ZzX1JhZGl4Ml9mc19PdXRPZlBsYWNlX3Vuc2FmZSAvLyAiZnMiIG1lYW5zIGZpcnN0IHN0YWdlCisgICAgICAgIEJMTFQgICAgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9SYWRpeDJfZnNfT3V0T2ZQbGFjZV91bnNhZmUgIAorICAgICAgICBTVUJTICAgIGFyZ1NjYWxlLGFyZ1NjYWxlLCMxCisgICAgICAgIEJMR0UgICAgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9TZnNfUmFkaXgyX091dE9mUGxhY2VfdW5zYWZlICAKKyAgICAgICAgQkxMVCAgICBhcm1TUF9GRlRGd2RfQ1RvQ19TQzMyX1JhZGl4Ml9PdXRPZlBsYWNlX3Vuc2FmZQorICAgICAgICBTVUJTICAgIGFyZ1NjYWxlLGFyZ1NjYWxlLCMxCisgICAgICAgIEJMRVEgICAgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9TZnNfUmFkaXgyX2xzX091dE9mUGxhY2VfdW5zYWZlIC8vICJscyIgbWVhbnMgbGFzdCBzdGFnZQorICAgICAgICBCTExUICAgIGFybVNQX0ZGVEZ3ZF9DVG9DX1NDMzJfUmFkaXgyX2xzX091dE9mUGxhY2VfdW5zYWZlICAgIAorICAgICAgICBCICAgICAgIEZGVEVuZAorCisgICAgICAgIAorCitvcmRlckdyZWF0ZXJ0aGFuMzoJICAgICAgIAorICAgICAgICBALy8gY2hlY2sgc2NhbGUgPSAwIG9yIHNjYWxlID0gb3JkZXIKKyAgICAgICAgU1VCUyAgICBkaWZmLCBzY2FsZSwgb3JkZXIgICAgICAgICAgICAgICAgIEAvLyBzY2FsZSA+IG9yZGVyIAorICAgICAgICBNT1ZHVCAgIHNjYWxlLG9yZGVyICAgICAKKyAgICAgICAgQkdFICAgICBzcGVjaWFsU2NhbGVDYXNlICAgICAgICAgICAgICAgICAgIEAvLyBzY2FsZSA9IDAgb3Igc2NhbGUgPSBvcmRlciAKKyAgICAgICAgQ01QICAgICBzY2FsZSwjMAorICAgICAgICBCRVEgICAgIHNwZWNpYWxTY2FsZUNhc2UKKyAgICAgICAgQiAgICAgICBnZW5lcmFsU2NhbGVDYXNlCisgICAgICAgIAorc3BlY2lhbFNjYWxlQ2FzZToJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQC8vICBzY2FsZSA9IDAgb3Igc2NhbGUgPSBvcmRlciAgYW5kIG9yZGVyID49IDIgICAgIAorICAgICAgICAKKyAgICAgICAgVFNUICAgICBvcmRlciwgIzIgICAgICAgICAgICAgICAgICAgICAgICAgICBALy8gU2V0IGlucHV0IGFyZ3MgdG8gZmZ0IHN0YWdlcworICAgICAgICBNT1ZORSAgIGFyZ0RzdCxwRHN0ICAgICAgICAKKyAgICAgICAgTU9WRVEgICBhcmdEc3QscE91dAorICAgICAgICBNT1ZFUSAgIHBPdXQscERzdCAgICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyBQYXNzIHRoZSBmaXJzdCBzdGFnZSBkZXN0aW5hdGlvbiBpbiBSTjUKKyAgICAgICAgTU9WICAgICBhcmdUd2lkZGxlLHBUd2lkZGxlICAKKworICAgICAgICBDTVAgICAgICBkaWZmLCMwCisgICAgICAgIE1fU1RSICAgIGRpZmYsIGRpZmZPblN0YWNrCisgICAgICAgIEJHRSAgICAgIHNjYWxlRXF1YWxzT3JkZXIgIAorICAgICAgIAorICAgICAgICBALy9jaGVjayBmb3IgZXZlbiBvciBvZGQgb3JkZXIKKyAgICAgICAgQC8vIE5PVEU6IFRoZSBmb2xsb3dpbmcgY29tYmluYXRpb24gb2YgQkwncyB3b3VsZCB3b3JrIGZpbmUgZXZlbnRob3VnaCB0aGUgZmlyc3QKKyAgICAgICAgQC8vIEJMIHdvdWxkIGNvcnJ1cHQgdGhlIGZsYWdzLiBUaGlzIGlzIGJlY2F1c2UgdGhlIGVuZCBvZiB0aGUgImdycFplcm9TZXRMb29wIiBsb29wIGluc2lkZSAKKyAgICAgICAgQC8vIGFybVNQX0ZGVEZ3ZF9DVG9DX1NDMzJfUmFkaXg0X2ZzX091dE9mUGxhY2VfdW5zYWZlIHNldHMgdGhlIFogZmxhZyB0byBFUQorICAgICAgICAKKyAgICAgICAgVFNUICAgICBvcmRlciwjMHgwMDAwMDAwMQorICAgICAgICBCTEVRICAgIGFybVNQX0ZGVEZ3ZF9DVG9DX1NDMzJfUmFkaXg0X2ZzX091dE9mUGxhY2VfdW5zYWZlIAorICAgICAgICBCTE5FICAgIGFybVNQX0ZGVEZ3ZF9DVG9DX1NDMzJfUmFkaXg4X2ZzX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIAorICAgICAgICBDTVAgICAgICAgIHN1YkZGVE51bSwjNAorICAgICAgICBCTFQgICAgIEZGVEVuZAorICAgICAgICAgCisKK3Vuc2NhbGVkUmFkaXg0TG9vcDoJCisgICAgICAgIEJFUSAgICAgICAgbGFzdFN0YWdlVW5zY2FsZWRSYWRpeDQKKyAgICAgICAgIEJMICAgICAgICBhcm1TUF9GRlRGd2RfQ1RvQ19TQzMyX1JhZGl4NF9PdXRPZlBsYWNlX3Vuc2FmZQorICAgICAgICAgQ01QICAgICAgICBzdWJGRlROdW0sIzQKKyAgICAgICAgIEIgICAgICAgIHVuc2NhbGVkUmFkaXg0TG9vcAorICAgICAgICAgCitsYXN0U3RhZ2VVbnNjYWxlZFJhZGl4NDoJCisgICAgICAgIEJMICAgICAgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9SYWRpeDRfbHNfT3V0T2ZQbGFjZV91bnNhZmUgCisgICAgICAgIEIgICAgICAgIEZGVEVuZCAgICAgICAgCisgICAgICAgICAKKworc2NhbGVFcXVhbHNPcmRlcjoJICAgICAgICAgCisgICAgICAgIEAvL2NoZWNrIGZvciBldmVuIG9yIG9kZCBvcmRlcgorICAgICAgICBALy8gTk9URTogVGhlIGZvbGxvd2luZyBjb21iaW5hdGlvbiBvZiBCTCdzIHdvdWxkIHdvcmsgZmluZSBldmVudGhvdWdoIHRoZSBmaXJzdAorICAgICAgICBALy8gQkwgd291bGQgY29ycnVwdCB0aGUgZmxhZ3MuIFRoaXMgaXMgYmVjYXVzZSB0aGUgZW5kIG9mIHRoZSAiZ3JwWmVyb1NldExvb3AiIGxvb3AgaW5zaWRlIAorICAgICAgICBALy8gYXJtU1BfRkZURndkX0NUb0NfU0MzMl9SYWRpeDRfZnNfT3V0T2ZQbGFjZV91bnNhZmUgc2V0cyB0aGUgWiBmbGFnIHRvIEVRCisgICAgICAgICAgICAgICAgCisgICAgICAgIFRTVCAgICAgb3JkZXIsIzB4MDAwMDAwMDEKKyAgICAgICAgQkxFUSAgICBhcm1TUF9GRlRGd2RfQ1RvQ19TQzMyX1Nmc19SYWRpeDRfZnNfT3V0T2ZQbGFjZV91bnNhZmUgCisgICAgICAgIEJMTkUgICAgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9TZnNfUmFkaXg4X2ZzX091dE9mUGxhY2VfdW5zYWZlIAorICAgICAgICAKKyAgICAgICAgQ01QICAgICAgICBzdWJGRlROdW0sIzQKKyAgICAgICAgQkxUICAgICBGRlRFbmQKKyAgICAgICAgCisKK3NjYWxlZFJhZGl4NExvb3A6CQorICAgICAgICBCRVEgICAgICAgIGxhc3RTdGFnZVNjYWxlZFJhZGl4NAorICAgICAgICAgQkwgICAgICAgIGFybVNQX0ZGVEZ3ZF9DVG9DX1NDMzJfU2ZzX1JhZGl4NF9PdXRPZlBsYWNlX3Vuc2FmZQorICAgICAgICAgQ01QICAgICAgICBzdWJGRlROdW0sIzQKKyAgICAgICAgIEIgICAgICAgIHNjYWxlZFJhZGl4NExvb3AgICAgICAgICAKKyAgICAgICAgIAorbGFzdFN0YWdlU2NhbGVkUmFkaXg0OgkKKyAgICAgICAgQkwgICAgICBhcm1TUF9GRlRGd2RfQ1RvQ19TQzMyX1Nmc19SYWRpeDRfbHNfT3V0T2ZQbGFjZV91bnNhZmUgCisgICAgICAgIEIgICAgICAgIEZGVEVuZCAgICAgICAgCisgICAgICAgIAorZ2VuZXJhbFNjYWxlQ2FzZToJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyAwIDwgc2NhbGUgPCBvcmRlciBhbmQgb3JkZXIgPj0gMgorICAgICAgICBALy8gRGV0ZXJtaW5lIHRoZSBjb3JyZWN0IGRlc3RpbmF0aW9uIGJ1ZmZlcgorICAgICAgICBTVUIgICAgIGRpZmYsb3JkZXIsc2NhbGUKKyAgICAgICAgVFNUICAgICBkaWZmLCMweDAxCisgICAgICAgIEFEREVRICAgY291bnQsc2NhbGUsZGlmZixMU1IgIzEgICAgICAgICBALy8gY291bnQgPSBzY2FsZSArIChvcmRlciAtIHNjYWxlKS8yCisgICAgICAgIE1PVk5FICAgY291bnQsb3JkZXIKKyAgICAgICAgVFNUICAgICBjb3VudCwjMHgwMSAgICAgICAgICAgICAgICAgICAgIEAvLyBJcyBjb3VudCBldmVuIG9yIG9kZCA/CisgICAgICAgIAorICAgICAgICBNT1ZORSAgIGFyZ0RzdCxwRHN0ICAgICAgICAgICAgICAgICAgICAgQC8vIFNldCBpbnB1dCBhcmdzIHRvIGZmdCBzdGFnZXMKKyAgICAgICAgTU9WRVEgICBhcmdEc3QscE91dAorICAgICAgICBNT1ZFUSAgIHBPdXQscERzdCAgICAgICAgICAgICAgICAgICAgICAgQC8vIFBhc3MgdGhlIGZpcnN0IHN0YWdlIGRlc3RpbmF0aW9uIGluIFJONQorICAgICAgICBNT1YgICAgIGFyZ1R3aWRkbGUscFR3aWRkbGUgIAorCisgICAgICAgIE1fU1RSICAgZGlmZiwgZGlmZk9uU3RhY2sgICAgCisgICAgICAgIAorICAgICAgICBNT1YgICAgIGFyZ1NjYWxlLHNjYWxlICAgICAgICAgICAgICAgICAgQC8vIFB1dCBzY2FsZSBpbiBSTjQgc28gYXMgdG8gc2F2ZSBhbmQgcmVzdG9yZQorICAgICAgICBCTCAgICAgIGFybVNQX0ZGVEZ3ZF9DVG9DX1NDMzJfU2ZzX1JhZGl4Ml9mc19PdXRPZlBsYWNlX3Vuc2FmZSAgICAgQC8vIHNjYWxlZCBmaXJzdCBzdGFnZQorICAgICAgICBTVUJTICAgIGFyZ1NjYWxlLGFyZ1NjYWxlLCMxCisgICAgICAgIAorc2NhbGVkUmFkaXgyTG9vcDoJICAgICAgICAKKyAgICAgICAgQkxHVCAgICBhcm1TUF9GRlRGd2RfQ1RvQ19TQzMyX1Nmc19SYWRpeDJfT3V0T2ZQbGFjZV91bnNhZmUKKyAgICAgICAgU1VCUyAgICBhcmdTY2FsZSxhcmdTY2FsZSwjMSAgICAgICAgICAgIEAvLyBzYXZlIGFuZCByZXN0b3JlIHNjYWxlIChSTjQpIGluIHRoZSBzY2FsZWQgc3RhZ2VzCisgICAgICAgIEJHVCAgICAgc2NhbGVkUmFkaXgyTG9vcAorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIE1fTERSICAgZGlmZiwgZGlmZk9uU3RhY2sgIAorICAgICAgICBALy9jaGVjayBmb3IgZXZlbiBvciBvZGQgb3JkZXIKKyAgICAgICAgVFNUICAgICBkaWZmLCMweDAwMDAwMDAxCisgICAgICAgIEJFUSAgICAgZ2VuZXJhbFVuc2NhbGVkUmFkaXg0TG9vcAorICAgICAgICBCICAgICAgIHVuc2NhbGVkUmFkaXgyTG9vcAorCitnZW5lcmFsVW5zY2FsZWRSYWRpeDRMb29wOgkKKyAgICAgICAgQ01QICAgICAgICBzdWJGRlROdW0sIzQKKyAgICAgICAgIEJFUSAgICAgICAgZ2VuZXJhbExhc3RTdGFnZVVuc2NhbGVkUmFkaXg0CisgICAgICAgICBCTCAgICAgICAgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9SYWRpeDRfT3V0T2ZQbGFjZV91bnNhZmUKKyAgICAgICAgIEIgICAgICAgIGdlbmVyYWxVbnNjYWxlZFJhZGl4NExvb3AgCisgICAgICAgICAKK2dlbmVyYWxMYXN0U3RhZ2VVbnNjYWxlZFJhZGl4NDoJCisgICAgICAgIEJMICAgICAgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9SYWRpeDRfbHNfT3V0T2ZQbGFjZV91bnNhZmUgCisgICAgICAgIEIgICAgICAgIEVuZCAgICAgICAgICAgICAKKyAgICAgICAgICAgICAKKwordW5zY2FsZWRSYWRpeDJMb29wOgkKKyAgICAgICAgQ01QICAgICAgICBzdWJGRlROdW0sIzIKKyAgICAgICAgIEJFUSAgICAgICAgZ2VuZXJhbExhc3RTdGFnZVVuc2NhbGVkUmFkaXgyCisgICAgICAgICBCTCAgICAgICAgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9SYWRpeDJfT3V0T2ZQbGFjZV91bnNhZmUKKyAgICAgICAgIEIgICAgICAgIHVuc2NhbGVkUmFkaXgyTG9vcCAgICAgICAgCisKK2dlbmVyYWxMYXN0U3RhZ2VVbnNjYWxlZFJhZGl4MjoJCisgICAgICAgIEJMICAgICAgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9SYWRpeDJfbHNfT3V0T2ZQbGFjZV91bnNhZmUgCisgICAgICAgIEIgICAgICAgIEVuZCAgICAgICAgICAgICAKKworICAgICAgIAorRkZURW5kOgkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQC8vIERvZXMgb25seSB0aGUgc2NhbGluZworICAgICAgICAKKyAgICAgICAgTV9MRFIgICBkaWZmLCBkaWZmT25TdGFjayAgCisgICAgICAgIENNUCAgICAgZGlmZiwjMAorICAgICAgICBCTEUgICAgIEVuZAorICAgICAgICAKKyAgICAgICAgUlNCICAgICBkaWZmLGRpZmYsIzAgICAgICAgICAgICAgICAgICAgICAgICBALy8gdG8gdXNlIFZSU0hMIGZvciByaWdodCBzaGlmdCBieSBhIHZhcmlhYmxlCisgICAgICAgIFZEVVAgICAgZFNoaWZ0LGRpZmYgICAgIAorICAgICAgICAKK3NjYWxlRkZURGF0YToJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyBOID0gc3ViRkZUU2l6ZSAgOyBkYXRhcHRyID0gcERzdCAgOyBzY2FsZSA9IGRpZmYKKyAgICAgICAgVkxEMSAgICB7ZFgwfSxbcFNyY10gICAgICAgICAgICBALy8gcFNyYyBjb250YWlucyBwRHN0IHBvaW50ZXIKKyAgICAgICAgU1VCUyAgICBzdWJGRlRTaXplLHN1YkZGVFNpemUsIzEKKyAgICAgICAgVlJTSEwgICBkWDAsZFNoaWZ0CisgICAgICAgIFZTVDEgICAge2RYMH0sW3BTcmNdIQorICAgICAgICAgICAgICAgIAorICAgICAgICBCR1QgICAgIHNjYWxlRkZURGF0YQorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgCitFbmQ6CSAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBALy8gU2V0IHJldHVybiB2YWx1ZQorICAgICAgICBNT1YgICAgIHJlc3VsdCwgI09NWF9TdHNfTm9FcnIgICAgICAgCisKKyAgICAgICAgQC8vIFdyaXRlIGZ1bmN0aW9uIHRhaWwKKyAgICAgICAgTV9FTkQKKyAgICAgICAgCisJLmVuZApkaWZmIC0tZ2l0IGEvZGwvb214U1BfRkZURndkX1JUb0NDU19GMzJfU2ZzX3MuUyBiL2RsL29teFNQX0ZGVEZ3ZF9SVG9DQ1NfRjMyX1Nmc19zLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODUwZmE5YwotLS0gL2Rldi9udWxsCisrKyBiL2RsL29teFNQX0ZGVEZ3ZF9SVG9DQ1NfRjMyX1Nmc19zLlMKQEAgLTAsMCArMSw0MDYgQEAKK0AvLworQC8vICBDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitALy8KK0AvLyAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorQC8vICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKK0AvLyAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorQC8vICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CitALy8gIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorQC8vCitALy8gIFRoaXMgaXMgYSBtb2RpZmljYXRpb24gb2Ygb214U1BfRkZURndkX1JUb0NDU19TMzJfU2ZzX3MucworQC8vICB0byBzdXBwb3J0IGZsb2F0IGluc3RlYWQgb2YgU0MzMi4KK0AvLworCitALy8KK0AvLyBEZXNjcmlwdGlvbjoKK0AvLyBDb21wdXRlIEZGVCBmb3IgYSByZWFsIHNpZ25hbAorQC8vCitALy8KKworCitALy8gSW5jbHVkZSBzdGFuZGFyZCBoZWFkZXJzCisKKyNpbmNsdWRlICJvbXh0eXBlc19zLmgiCisjaW5jbHVkZSAiYXJtQ09NTV9zLmgiCisKKworQC8vIEltcG9ydCBzeW1ib2xzIHJlcXVpcmVkIGZyb20gb3RoZXIgZmlsZXMKK0AvLyAoRm9yIGV4YW1wbGUgdGFibGVzKQorCisgICAgICAgIC5leHRlcm4gIGFybVNQX0ZGVEZ3ZF9DVG9DX0ZDMzJfUmFkaXgyX2ZzX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIC5leHRlcm4gIGFybVNQX0ZGVEZ3ZF9DVG9DX0ZDMzJfUmFkaXg0X2ZzX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIC5leHRlcm4gIGFybVNQX0ZGVEZ3ZF9DVG9DX0ZDMzJfUmFkaXg4X2ZzX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIC5leHRlcm4gIGFybVNQX0ZGVEZ3ZF9DVG9DX0ZDMzJfUmFkaXg0X091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIC5leHRlcm4gIGFybVNQX0ZGVEZ3ZF9DVG9DX0ZDMzJfUmFkaXg0X2ZzX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIC5leHRlcm4gIGFybVNQX0ZGVEZ3ZF9DVG9DX0ZDMzJfUmFkaXg4X2ZzX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIC5leHRlcm4gIGFybVNQX0ZGVEZ3ZF9DVG9DX0ZDMzJfUmFkaXgyX091dE9mUGxhY2VfdW5zYWZlCisKK0AvLyBTZXQgZGVidWdnaW5nIGxldmVsCitALy9ERUJVR19PTiAgICBTRVRMIHtUUlVFfQorCisKKworQC8vIEd1YXJkaW5nIGltcGxlbWVudGF0aW9uIGJ5IHRoZSBwcm9jZXNzb3IgbmFtZQorCisKKworICAgIEAvLyBHdWFyZGluZyBpbXBsZW1lbnRhdGlvbiBieSB0aGUgcHJvY2Vzc29yIG5hbWUKKworQC8vIEltcG9ydCBzeW1ib2xzIHJlcXVpcmVkIGZyb20gb3RoZXIgZmlsZXMKK0AvLyAoRm9yIGV4YW1wbGUgdGFibGVzKQorICAgICAgICAuZXh0ZXJuICBhcm1TUF9GRlRGd2RfQ1RvQ19GQzMyX1JhZGl4NF9sc19PdXRPZlBsYWNlX3Vuc2FmZQorICAgICAgICAuZXh0ZXJuICBhcm1TUF9GRlRGd2RfQ1RvQ19GQzMyX1JhZGl4Ml9sc19PdXRPZlBsYWNlX3Vuc2FmZQorCisKK0AvL0lucHV0IFJlZ2lzdGVycworCisjZGVmaW5lIHBTcmMgICAgICAgICAgICByMAorI2RlZmluZSBwRHN0ICAgICAgICAgICAgcjEKKyNkZWZpbmUgcEZGVFNwZWMgICAgICAgIHIyCisjZGVmaW5lIHNjYWxlICAgICAgICAgICByMworCisKK0AvLyBPdXRwdXQgcmVnaXN0ZXJzCisjZGVmaW5lIHJlc3VsdCAgICAgICAgICByMAorCitALy9Mb2NhbCBTY3JhdGNoIFJlZ2lzdGVycworCisjZGVmaW5lIGFyZ1R3aWRkbGUgICAgICByMQorI2RlZmluZSBhcmdEc3QgICAgICAgICAgcjIKKyNkZWZpbmUgYXJnU2NhbGUgICAgICAgIHI0CisjZGVmaW5lIHRtcE9yZGVyICAgICAgICByNAorI2RlZmluZSBwVHdpZGRsZSAgICAgICAgcjQKKyNkZWZpbmUgcE91dCAgICAgICAgICAgIHI1CisjZGVmaW5lIHN1YkZGVFNpemUgICAgICByNworI2RlZmluZSBzdWJGRlROdW0gICAgICAgcjYKKyNkZWZpbmUgTiAgICAgICAgICAgICAgIHI2CisjZGVmaW5lIG9yZGVyICAgICAgICAgICByMTQKKyNkZWZpbmUgZGlmZiAgICAgICAgICAgIHI5CitALy8gVG90YWwgbnVtIG9mIHJhZGl4IHN0YWdlcyByZXF1aXJlZCB0byBjb21wbGUgdGhlIEZGVAorI2RlZmluZSBjb3VudCAgICAgICAgICAgcjgKKyNkZWZpbmUgeDByICAgICAgICAgICAgIHI0CisjZGVmaW5lIHgwaSAgICAgICAgICAgICByNQorI2RlZmluZSBkaWZmTWludXNPbmUgICAgcjIKKyNkZWZpbmUgc3ViRkZUU2l6ZVRtcCAgIHI2CisjZGVmaW5lIHN0ZXAgICAgICAgICAgICByMworI2RlZmluZSBzdGVwMSAgICAgICAgICAgcjQKKyNkZWZpbmUgdHdTdGVwICAgICAgICAgIHI4CisjZGVmaW5lIHplcm8gICAgICAgICAgICByOQorI2RlZmluZSBwVHdpZGRsZVRtcCAgICAgcjUKKyNkZWZpbmUgdDAgICAgICAgICAgICAgIHIxMAorCitALy8gTmVvbiByZWdpc3RlcnMKKworI2RlZmluZSBkWDAgICAgICAgZDAuZjMyCisjZGVmaW5lIGR6ZXJvICAgICBkMS5mMzIKKyNkZWZpbmUgZFplcm8gICAgIGQyLmYzMgorI2RlZmluZSBkU2hpZnQgICAgZDMuZjMyCisjZGVmaW5lIGRYMHIgICAgICBkMi5mMzIKKyNkZWZpbmUgZFgwaSAgICAgIGQzLmYzMgorI2RlZmluZSBkWDFyICAgICAgZDQuZjMyCisjZGVmaW5lIGRYMWkgICAgICBkNS5mMzIKKyNkZWZpbmUgZFQwICAgICAgIGQ2LmYzMgorI2RlZmluZSBkVDEgICAgICAgZDcuZjMyCisjZGVmaW5lIGRUMiAgICAgICBkOC5mMzIKKyNkZWZpbmUgZFQzICAgICAgIGQ5LmYzMgorI2RlZmluZSBxVDAgICAgICAgZDEwLmYzMgorI2RlZmluZSBxVDEgICAgICAgZDEyLmYzMgorI2RlZmluZSBkVzByICAgICAgZDE0LmYzMgorI2RlZmluZSBkVzBpICAgICAgZDE1LmYzMgorI2RlZmluZSBkVzFyICAgICAgZDE2LmYzMgorI2RlZmluZSBkVzFpICAgICAgZDE3LmYzMgorI2RlZmluZSBkWTByICAgICAgZDE0LmYzMgorI2RlZmluZSBkWTBpICAgICAgZDE1LmYzMgorI2RlZmluZSBkWTFyICAgICAgZDE2LmYzMgorI2RlZmluZSBkWTFpICAgICAgZDE3LmYzMgorI2RlZmluZSBkWTByUzY0ICAgZDE0LnM2NAorI2RlZmluZSBkWTBpUzY0ICAgZDE1LnM2NAorI2RlZmluZSBxVDIgICAgICAgZDE4LmYzMgorI2RlZmluZSBxVDMgICAgICAgZDIwLmYzMgorQC8vIGxhc3RUaHJlZWVsZW1lbnRzCisjZGVmaW5lIGRYMSAgICAgICBkMy5mMzIKKyNkZWZpbmUgZFcwICAgICAgIGQ0LmYzMgorI2RlZmluZSBkVzEgICAgICAgZDUuZjMyCisjZGVmaW5lIGRZMCAgICAgICBkMTAuZjMyCisjZGVmaW5lIGRZMSAgICAgICBkMTEuZjMyCisjZGVmaW5lIGRZMiAgICAgICBkMTIuZjMyCisjZGVmaW5lIGRZMyAgICAgICBkMTMuZjMyCisKKyNkZWZpbmUgaGFsZiAgICAgIGQwLmYzMgorCitIQUxGOiAgIC5mbG9hdCAgMC41CisKKyAgICBALy8gQWxsb2NhdGUgc3RhY2sgbWVtb3J5IHJlcXVpcmVkIGJ5IHRoZSBmdW5jdGlvbgorCisgICAgQC8vIFdyaXRlIGZ1bmN0aW9uIGhlYWRlcgorICAgICAgICBNX1NUQVJUICAgICBvbXhTUF9GRlRGd2RfUlRvQ0NTX0YzMl9TZnMscjExLGQxNQorCitAIFN0cnVjdHVyZSBvZmZzZXRzIGZvciB0aGUgRkZUU3BlYworICAgICAgICAuc2V0ICAgIEFSTXNGRlRTcGVjX04sIDAKKyAgICAgICAgLnNldCAgICBBUk1zRkZUU3BlY19wQml0UmV2LCA0CisgICAgICAgIC5zZXQgICAgQVJNc0ZGVFNwZWNfcFR3aWRkbGUsIDgKKyAgICAgICAgLnNldCAgICBBUk1zRkZUU3BlY19wQnVmLCAxMgorCisgICAgICAgIEAvLyBEZWZpbmUgc3RhY2sgYXJndW1lbnRzCisKKyAgICAgICAgQC8vIFJlYWQgdGhlIHNpemUgZnJvbSBzdHJ1Y3R1cmUgYW5kIHRha2UgbG9nCisgICAgICAgIExEUiAgICAgTiwgW3BGRlRTcGVjLCAjQVJNc0ZGVFNwZWNfTl0KKworICAgICAgICBALy8gUmVhZCBvdGhlciBzdHJ1Y3R1cmUgcGFyYW1ldGVycworICAgICAgICBMRFIgICAgIHBUd2lkZGxlLCBbcEZGVFNwZWMsICNBUk1zRkZUU3BlY19wVHdpZGRsZV0KKyAgICAgICAgTERSICAgICBwT3V0LCBbcEZGVFNwZWMsICNBUk1zRkZUU3BlY19wQnVmXQorCisgICAgICAgIEAvLyAgTj0xIFRyZWF0IHNlcGVyYXRlbHkKKyAgICAgICAgQ01QICAgICBOLCMxCisgICAgICAgIEJHVCAgICAgc2l6ZUdyZWF0ZXJUaGFuT25lCisgICAgICAgIFZMRDEgICAgZFgwWzBdLFtwU3JjXQorICAgICAgICBNT1YgICAgIHplcm8sIzAKKyAgICAgICAgVk1PViAgICBkemVyb1swXSx6ZXJvCisgICAgICAgIFZNT1YgICAgZFplcm9bMF0semVybworICAgICAgICBWU1QzICAgIHtkWDBbMF0sZHplcm9bMF0sZFplcm9bMF19LFtwRHN0XQorCisgICAgICAgIEIgICAgICAgRW5kCisKKworCitzaXplR3JlYXRlclRoYW5PbmU6CisgICAgICAgIEAvLyBEbyBhIE4vMiBwb2ludCBjb21wbGV4IEZGVCBpbmNsdWRpbmcgdGhlIHNjYWxpbmcKKworICAgICAgICBNT1YgICAgIE4sTixBU1IgIzEgICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyBOLzIgcG9pbnQgY29tcGxleCBGRlQKKworICAgICAgICBDTFogICAgIG9yZGVyLE4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyBOID0gMl5vcmRlcgorICAgICAgICBSU0IgICAgIG9yZGVyLG9yZGVyLCMzMQorICAgICAgICBNT1YgICAgIHN1YkZGVFNpemUsIzEKKyAgICAgICAgQC8vTU9WICAgICBzdWJGRlROdW0sTgorCisgICAgICAgIENNUCAgICAgb3JkZXIsIzMKKyAgICAgICAgQkdUICAgICBvcmRlckdyZWF0ZXJ0aGFuMyAgICAgICAgICAgICAgICAgICBALy8gb3JkZXIgPiAzCisKKyAgICAgICAgQ01QICAgICBvcmRlciwjMQorICAgICAgICBCR0UgICAgIG9yZGVyR3JlYXRlcnRoYW4wICAgICAgICAgICAgICAgICAgIEAvLyBvcmRlciA+IDAKKyAgICAgICAgVkxEMSAgICBkWDAsW3BTcmNdCisgICAgICAgIFZTVDEgICAgZFgwLFtwT3V0XQorICAgICAgICBNT1YgICAgIHBTcmMscE91dAorICAgICAgICBNT1YgICAgIGFyZ0RzdCxwRHN0CisgICAgICAgIEJMVCAgICAgRkZURW5kCisKK29yZGVyR3JlYXRlcnRoYW4wOgorICAgICAgICBALy8gc2V0IHRoZSBidWZmZXJzIGFwcHJvcHJpYXRlbHkgZm9yIHZhcmlvdXMgb3JkZXJzCisgICAgICAgIENNUCAgICAgb3JkZXIsIzIKKyAgICAgICAgTU9WRVEgICBhcmdEc3QscERzdAorICAgICAgICBNT1ZORSAgIGFyZ0RzdCxwT3V0CisgICAgICAgIEAvLyBQYXNzIHRoZSBmaXJzdCBzdGFnZSBkZXN0aW5hdGlvbiBpbiBSTjUKKyAgICAgICAgTU9WTkUgICBwT3V0LHBEc3QKKyAgICAgICAgTU9WICAgICBhcmdUd2lkZGxlLHBUd2lkZGxlCisKKyAgICAgICAgQ01QICAgICBvcmRlciwjMQorICAgICAgICBCR1QgICAgIG9yZGVyR3JlYXRlcnRoYW4xCisgICAgICAgIEAvLyBvcmRlciA9IDEKKyAgICAgICAgQkwgICAgICBhcm1TUF9GRlRGd2RfQ1RvQ19GQzMyX1JhZGl4Ml9mc19PdXRPZlBsYWNlX3Vuc2FmZQorICAgICAgICBCICAgICAgIEZGVEVuZAorCitvcmRlckdyZWF0ZXJ0aGFuMToKKyAgICAgICAgQ01QICAgICBvcmRlciwjMgorICAgICAgICBCR1QgICAgIG9yZGVyR3JlYXRlcnRoYW4yCisgICAgICAgIEAvLyBvcmRlciA9MgorICAgICAgICBCTCAgICAgIGFybVNQX0ZGVEZ3ZF9DVG9DX0ZDMzJfUmFkaXgyX2ZzX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIEJMICAgICAgYXJtU1BfRkZURndkX0NUb0NfRkMzMl9SYWRpeDJfbHNfT3V0T2ZQbGFjZV91bnNhZmUKKyAgICAgICAgQiAgICAgICBGRlRFbmQKKworb3JkZXJHcmVhdGVydGhhbjI6QC8vIG9yZGVyID0zCisgICAgICAgIEJMICAgICAgYXJtU1BfRkZURndkX0NUb0NfRkMzMl9SYWRpeDJfZnNfT3V0T2ZQbGFjZV91bnNhZmUKKyAgICAgICAgQkwgICAgICBhcm1TUF9GRlRGd2RfQ1RvQ19GQzMyX1JhZGl4Ml9PdXRPZlBsYWNlX3Vuc2FmZQorICAgICAgICBCTCAgICAgIGFybVNQX0ZGVEZ3ZF9DVG9DX0ZDMzJfUmFkaXgyX2xzX091dE9mUGxhY2VfdW5zYWZlCisKKyAgICAgICAgQiAgICAgICBGRlRFbmQKKworCisKK29yZGVyR3JlYXRlcnRoYW4zOgorc3BlY2lhbFNjYWxlQ2FzZToKKworICAgICAgICBALy8gU2V0IGlucHV0IGFyZ3MgdG8gZmZ0IHN0YWdlcworICAgICAgICBUU1QgICAgIG9yZGVyLCAjMgorICAgICAgICBNT1ZFUSAgIGFyZ0RzdCxwRHN0CisgICAgICAgIE1PVk5FICAgYXJnRHN0LHBPdXQKKyAgICAgICAgQC8vIFBhc3MgdGhlIGZpcnN0IHN0YWdlIGRlc3RpbmF0aW9uIGluIFJONQorICAgICAgICBNT1ZORSAgIHBPdXQscERzdAorICAgICAgICBNT1YgICAgIGFyZ1R3aWRkbGUscFR3aWRkbGUKKworICAgICAgICBALy9jaGVjayBmb3IgZXZlbiBvciBvZGQgb3JkZXIKKyAgICAgICAgQC8vIE5PVEU6IFRoZSBmb2xsb3dpbmcgY29tYmluYXRpb24gb2YgQkwncyB3b3VsZCB3b3JrIGZpbmUgZXZlbiB0aG91Z2gKKyAgICAgICAgQC8vIHRoZSBmaXJzdCBCTCB3b3VsZCBjb3JydXB0IHRoZSBmbGFncy4gVGhpcyBpcyBiZWNhdXNlIHRoZSBlbmQgb2YKKyAgICAgICAgQC8vIHRoZSAiZ3JwWmVyb1NldExvb3AiIGxvb3AgaW5zaWRlCisgICAgICAgIEAvLyBhcm1TUF9GRlRGd2RfQ1RvQ19GQzMyX1JhZGl4NF9mc19PdXRPZlBsYWNlX3Vuc2FmZSBzZXRzIHRoZSBaIGZsYWcKKyAgICAgICAgQC8vIHRvIEVRCisKKyAgICAgICAgVFNUICAgICBvcmRlciwjMHgwMDAwMDAwMQorICAgICAgICBCTEVRICAgIGFybVNQX0ZGVEZ3ZF9DVG9DX0ZDMzJfUmFkaXg0X2ZzX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIEJMTkUgICAgYXJtU1BfRkZURndkX0NUb0NfRkMzMl9SYWRpeDhfZnNfT3V0T2ZQbGFjZV91bnNhZmUKKworICAgICAgICBDTVAgICAgICAgIHN1YkZGVE51bSwjNAorICAgICAgICBCTFQgICAgIEZGVEVuZAorCisKK3Vuc2NhbGVkUmFkaXg0TG9vcDoKKyAgICAgICAgQkVRICAgICAgICBsYXN0U3RhZ2VVbnNjYWxlZFJhZGl4NAorICAgICAgICAgQkwgICAgICAgIGFybVNQX0ZGVEZ3ZF9DVG9DX0ZDMzJfUmFkaXg0X091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgICBDTVAgICAgICAgIHN1YkZGVE51bSwjNAorICAgICAgICAgQiAgICAgICAgdW5zY2FsZWRSYWRpeDRMb29wCisKK2xhc3RTdGFnZVVuc2NhbGVkUmFkaXg0OgorICAgICAgICBCTCAgICAgIGFybVNQX0ZGVEZ3ZF9DVG9DX0ZDMzJfUmFkaXg0X2xzX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIEIgICAgICAgIEZGVEVuZAorCisKK0ZGVEVuZDoKK2ZpbmFsQ29tcGxleFRvUmVhbEZpeHVwOgorCisKKyAgICAgICAgQC8vIEYoMCkgPSAxLzJbWigwKSArIFonKDApXSAtIGogW1ooMCkgLSBaJygwKV0KKyAgICAgICAgQC8vIDEvMlsoYStqYikgKyAoYS1qYildIC0gaiAgWyhhK2piKSAtIChhLWpiKV0KKyAgICAgICAgQC8vIDEvMlsyYStqMF0gLSBqIFswK2oyYl0KKyAgICAgICAgQC8vIChhK2IsIDApCisKKyAgICAgICAgQC8vIEYoTi8yKSA9IDEvMltaKDApICsgWicoMCldICsgaiBbWigwKSAtIFonKDApXQorICAgICAgICBALy8gMS8yWyhhK2piKSArIChhLWpiKV0gKyBqICBbKGEramIpIC0gKGEtamIpXQorICAgICAgICBALy8gMS8yWzJhK2owXSArIGogWzArajJiXQorICAgICAgICBALy8gKGEtYiwgMCkKKworICAgICAgICBALy8gRigwKSBhbmQgRihOLzIpCisgICAgICAgIFZMRDIgICAge2RYMHJbMF0sZFgwaVswXX0sW3BTcmNdIQorICAgICAgICBNT1YgICAgIHplcm8sIzAKKyAgICAgICAgVk1PViAgICBkWDByWzFdLHplcm8KKyAgICAgICAgTU9WICAgICBzdGVwLHN1YkZGVFNpemUsTFNMICMzICAgICAgICAgICAgQC8vIHN0ZXAgPSBOLzIgKiA4IGJ5dGVzCisgICAgICAgIFZNT1YgICAgZFgwaVsxXSx6ZXJvCisgICAgICAgIEAvLyB0d1N0ZXAgPSAzTi84ICogOCBieXRlcyBwb2ludGluZyB0byBXXjEKKyAgICAgICAgU1VCICAgICB0d1N0ZXAsc3RlcCxzdWJGRlRTaXplLExTTCAjMQorCisgICAgICAgIFZBREQgICAgZFkwcixkWDByLGRYMGkgICAgICAgICAgICAgICAgICAgIEAvLyBGKDApID0gKChaMC5yK1owLmkpICwgMCkKKyAgICAgICAgTU9WICAgICBzdGVwMSxzdWJGRlRTaXplLExTTCAjMiAgICAgICAgICAgQC8vIHN0ZXAxID0gTi8yICogNCBieXRlcworICAgICAgICBWU1VCICAgIGRZMGksZFgwcixkWDBpICAgICAgICAgICAgICAgICAgICBALy8gRihOLzIpID0gKChaMC5yLVowLmkpICwgMCkKKyAgICAgICAgU1VCUyAgICBzdWJGRlRTaXplLHN1YkZGVFNpemUsIzIKKworICAgICAgICBWU1QxICAgIGRZMHIsW2FyZ0RzdF0sc3RlcAorICAgICAgICBBREQgICAgIHBUd2lkZGxlVG1wLGFyZ1R3aWRkbGUsIzggICAgICAgICBALy8gV14yCisgICAgICAgIFZTVDEgICAgZFkwaSxbYXJnRHN0XSEKKyAgICAgICAgQUREICAgICBhcmdUd2lkZGxlLGFyZ1R3aWRkbGUsdHdTdGVwICAgICAgQC8vIFdeMQorCisgICAgICAgIFZEVVAgICAgZHplcm8semVybworICAgICAgICBTVUIgICAgIGFyZ0RzdCxhcmdEc3Qsc3RlcAorCisgICAgICAgIEJMVCAgICAgRW5kCisgICAgICAgIEJFUSAgICAgbGFzdEVsZW1lbnQKKyAgICAgICAgU1VCICAgICBzdGVwLHN0ZXAsIzI0CisgICAgICAgIFNVQiAgICAgc3RlcDEsc3RlcDEsIzggICAgICAgICAgICAgICAgICAgIEAvLyAoTi80LTEpKjggYnl0ZXMKKworICAgICAgICBALy8gRihrKSA9IDEvMltaKGspICsgIFonKE4vMi1rKV0gLWoqV14oaykgW1ooaykgLSAgWicoTi8yLWspXQorICAgICAgICBALy8gTm90ZTogV15rIGlzIHN0b3JlZCBhcyBuZWdhdGl2ZSB2YWx1ZXMgaW4gdGhlIHRhYmxlCisgICAgICAgIEAvLyBQcm9jZXNzIDQgZWxlbWVudHMgYXQgYSB0aW1lLiBFLmc6IEYoMSksRigyKSBhbmQgRihOLzItMiksRihOLzItMSkKKyAgICAgICAgQC8vIHNpbmNlIGJvdGggb2YgdGhlbSByZXF1aXJlIFooMSksWigyKSBhbmQgWihOLzItMiksWihOLzItMSkKKworCisgICAgICAgIExEUiAgICAgdDAsID1IQUxGCisgICAgICAgIFZMRDEgICAgaGFsZlswXSwgW3QwXQorCitldmVuT2RkQnV0dGVyZmx5TG9vcDoKKworCisgICAgICAgIFZMRDEgICAgZFcwcixbYXJnVHdpZGRsZV0sc3RlcDEKKyAgICAgICAgVkxEMSAgICBkVzFyLFthcmdUd2lkZGxlXSEKKworICAgICAgICBWTEQyICAgIHtkWDByLGRYMGl9LFtwU3JjXSxzdGVwCisgICAgICAgIFNVQiAgICAgYXJnVHdpZGRsZSxhcmdUd2lkZGxlLHN0ZXAxCisgICAgICAgIFZMRDIgICAge2RYMXIsZFgxaX0sW3BTcmNdIQorCisKKworICAgICAgICBTVUIgICAgIHN0ZXAxLHN0ZXAxLCM4ICAgICAgICAgICAgICAgICAgICBALy8gKE4vNC0yKSo4IGJ5dGVzCisgICAgICAgIFZMRDEgICAgZFcwaSxbcFR3aWRkbGVUbXBdLHN0ZXAxCisgICAgICAgIFZMRDEgICAgZFcxaSxbcFR3aWRkbGVUbXBdIQorICAgICAgICBTVUIgICAgIHBTcmMscFNyYyxzdGVwCisKKyAgICAgICAgU1VCICAgICBwVHdpZGRsZVRtcCxwVHdpZGRsZVRtcCxzdGVwMQorICAgICAgICBWUkVWNjQgIGRYMXIsZFgxcgorICAgICAgICBWUkVWNjQgIGRYMWksZFgxaQorICAgICAgICBTVUJTICAgIHN1YkZGVFNpemUsc3ViRkZUU2l6ZSwjNAorCisKKworICAgICAgICBWU1VCICAgIGRUMixkWDByLGRYMXIgICAgICAgICAgICAgICAgICAgICBALy8gYS1jCisgICAgICAgIFNVQiAgICAgc3RlcDEsc3RlcDEsIzgKKyAgICAgICAgVkFERCAgICBkVDAsZFgwcixkWDFyICAgICAgICAgICAgICAgICAgICAgQC8vIGErYworICAgICAgICBWU1VCICAgIGRUMSxkWDBpLGRYMWkgICAgICAgICAgICAgICAgICAgICBALy8gYi1kCisgICAgICAgIFZBREQgICAgZFQzLGRYMGksZFgxaSAgICAgICAgICAgICAgICAgICAgIEAvLyBiK2QKKyAgICAgICAgVk1VTCAgIGRUMCxkVDAsaGFsZlswXQorICAgICAgICBWTVVMICAgZFQxLGRUMSxoYWxmWzBdCisgICAgICAgIFZaSVAgICAgZFcxcixkVzFpCisgICAgICAgIFZaSVAgICAgZFcwcixkVzBpCisKKworICAgICAgICBWTVVMICAgcVQwLGRXMXIsZFQyCisgICAgICAgIFZNVUwgICBxVDEsZFcxcixkVDMKKyAgICAgICAgVk1VTCAgIHFUMixkVzByLGRUMgorICAgICAgICBWTVVMICAgcVQzLGRXMHIsZFQzCisKKyAgICAgICAgVk1MQSAgIHFUMCxkVzFpLGRUMworICAgICAgICBWTUxTICAgcVQxLGRXMWksZFQyCisKKyAgICAgICAgVk1MUyAgIHFUMixkVzBpLGRUMworICAgICAgICBWTUxBICAgcVQzLGRXMGksZFQyCisKKworICAgICAgICBWTVVMICBkWDFyLHFUMCxoYWxmWzBdCisgICAgICAgIFZNVUwgIGRYMWkscVQxLGhhbGZbMF0KKworICAgICAgICBWU1VCICAgIGRZMXIsZFQwLGRYMWkgICAgICAgICAgICAgICAgICAgICBALy8gRihOLzIgLTEpCisgICAgICAgIFZBREQgICAgZFkxaSxkVDEsZFgxcgorICAgICAgICBWTkVHICAgIGRZMWksZFkxaQorCisgICAgICAgIFZSRVY2NCAgZFkxcixkWTFyCisgICAgICAgIFZSRVY2NCAgZFkxaSxkWTFpCisKKworICAgICAgICBWTVVMICBkWDByLHFUMixoYWxmWzBdCisgICAgICAgIFZNVUwgIGRYMGkscVQzLGhhbGZbMF0KKworICAgICAgICBWU1VCICAgIGRZMHIsZFQwLGRYMGkgICAgICAgICAgICAgICAgICAgICBALy8gRigxKQorICAgICAgICBWQUREICAgIGRZMGksZFQxLGRYMHIKKworCisgICAgICAgIFZTVDIgICAge2RZMHIsZFkwaX0sW2FyZ0RzdF0sc3RlcAorICAgICAgICBWU1QyICAgIHtkWTFyLGRZMWl9LFthcmdEc3RdIQorICAgICAgICBTVUIgICAgIGFyZ0RzdCxhcmdEc3Qsc3RlcAorICAgICAgICBTVUIgICAgIHN0ZXAsc3RlcCwjMzIgICAgICAgICAgICAgICAgICAgICBALy8gKE4vMi00KSo4IGJ5dGVzCisKKworICAgICAgICBCR1QgICAgIGV2ZW5PZGRCdXR0ZXJmbHlMb29wCisKKyAgICAgICAgQC8vIHNldCBib3RoIHRoZSBwdHJzIHRvIHRoZSBsYXN0IGVsZW1lbnQKKyAgICAgICAgU1VCICAgICBwU3JjLHBTcmMsIzgKKyAgICAgICAgU1VCICAgICBhcmdEc3QsYXJnRHN0LCM4CisKKworCisgICAgICAgIEAvLyBMYXN0IGVsZW1lbnQgY2FuIGJlIGV4cGFuZGVkIGFzIGZvbGxvd3MKKyAgICAgICAgQC8vIDEvMltaKGspICsgWicoayldICsgaiB3XmsgW1ooaykgLSBaJyhrKV0KKyAgICAgICAgQC8vIDEvMlsoYStqYikgKyAoYS1qYildICsgaiB3XmsgWyhhK2piKSAtIChhLWpiKV0KKyAgICAgICAgQC8vIDEvMlsyYStqMF0gKyBqIChjK2pkKSBbMCtqMmJdCisgICAgICAgIEAvLyAoYS1iYywgLWJkKQorICAgICAgICBALy8gU2luY2UgKGMsZCkgPSAoMCwxKSBmb3IgdGhlIGxhc3QgZWxlbWVudCwgcmVzdWx0IGlzIGp1c3QgKGEsLWIpCisKK2xhc3RFbGVtZW50OgorICAgICAgICBWTEQxICAgIGRYMHIsW3BTcmNdCisKKyAgICAgICAgVlNUMSAgICBkWDByWzBdLFthcmdEc3RdIQorICAgICAgICBWTkVHICAgIGRYMHIsZFgwcgorICAgICAgICBWU1QxICAgIGRYMHJbMV0sW2FyZ0RzdF0hCisKK0VuZDoKKyAgICAgICAgQC8vIFNldCByZXR1cm4gdmFsdWUKKyAgICAgICAgTU9WICAgICByZXN1bHQsICNPTVhfU3RzX05vRXJyCisKKyAgICAgICAgQC8vIFdyaXRlIGZ1bmN0aW9uIHRhaWwKKyAgICAgICAgTV9FTkQKKworICAgICAgICAuZW5kCmRpZmYgLS1naXQgYS9kbC9vbXhTUF9GRlRGd2RfUlRvQ0NTX1MxNlMzMl9TZnNfcy5TIGIvZGwvb214U1BfRkZURndkX1JUb0NDU19TMTZTMzJfU2ZzX3MuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43M2IwMmQwCi0tLSAvZGV2L251bGwKKysrIGIvZGwvb214U1BfRkZURndkX1JUb0NDU19TMTZTMzJfU2ZzX3MuUwpAQCAtMCwwICsxLDE1OCBAQAorQC8vCitALy8gIENvcHlyaWdodCAoYykgMjAxMyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KK0AvLworQC8vICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCitALy8gIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorQC8vICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCitALy8gIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKK0AvLyAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCitALy8KK0AvLyAgVGhpcyBmaWxlIHdhcyBvcmlnaW5hbGx5IGxpY2Vuc2VkIGFzIGZvbGxvd3MuIEl0IGhhcyBiZWVuCitALy8gIHJlbGljZW5zZWQgd2l0aCBwZXJtaXNzaW9uIGZyb20gdGhlIGNvcHlyaWdodCBob2xkZXJzLgorQC8vCisKK0AvLyAKK0AvLyBGaWxlIE5hbWU6ICBvbXhTUF9GRlRGd2RfUlRvQ0NTX1MxNlMzMl9TZnNfcy5zCitALy8gT3Blbk1BWCBETDogdjEuMC4yCitALy8gTGFzdCBNb2RpZmllZCBSZXZpc2lvbjogICA3NDAzCitALy8gTGFzdCBNb2RpZmllZCBEYXRlOiAgICAgICBNb24sIDE3IFNlcCAyMDA3CitALy8gCitALy8gKGMpIENvcHlyaWdodCAyMDA3LTIwMDggQVJNIExpbWl0ZWQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitALy8gCitALy8gCitALy8KK0AvLyBEZXNjcmlwdGlvbjoKK0AvLyBDb21wdXRlIEZGVCBmb3IgYSByZWFsIHNpZ25hbAorQC8vIAorCisgICAgICAgIAorQC8vIEluY2x1ZGUgc3RhbmRhcmQgaGVhZGVycworCisjaW5jbHVkZSAib214dHlwZXNfcy5oIgorI2luY2x1ZGUgImFybUNPTU1fcy5oIgorICAgICAgICAKKyAgICAgICAgCitALy8gSW1wb3J0IHN5bWJvbHMgcmVxdWlyZWQgZnJvbSBvdGhlciBmaWxlcworQC8vIChGb3IgZXhhbXBsZSB0YWJsZXMpCisgICAgICAgIC5leHRlcm4gIG9teFNQX0ZGVEZ3ZF9SVG9DQ1NfUzMyX1NmcworICAgICAgICAKKyAgICAgICAgCitALy8gU2V0IGRlYnVnZ2luZyBsZXZlbCAgICAgICAgCitALy9ERUJVR19PTiAgICBTRVRMIHtUUlVFfQorCisKKworQC8vIEd1YXJkaW5nIGltcGxlbWVudGF0aW9uIGJ5IHRoZSBwcm9jZXNzb3IgbmFtZQorICAgIAorICAgIAorICAgIAorICAgIEAvLyBHdWFyZGluZyBpbXBsZW1lbnRhdGlvbiBieSB0aGUgcHJvY2Vzc29yIG5hbWUKKyAgICAKK0AvLyBJbXBvcnQgc3ltYm9scyByZXF1aXJlZCBmcm9tIG90aGVyIGZpbGVzCitALy8gKEZvciBleGFtcGxlIHRhYmxlcykKKyAgICAgICAgICAgICAKKyAgICAKK0AvL0lucHV0IFJlZ2lzdGVycworCisjZGVmaW5lIHBTcmMgICAgICAgICAgICByMAorI2RlZmluZSBwRHN0ICAgICAgICAgICAgcjEKKyNkZWZpbmUgcEZGVFNwZWMgICAgICAgIHIyCisjZGVmaW5lIHNjYWxlICAgICAgICAgICByMworICAgICAgICAKK0AvLyBPdXRwdXQgcmVnaXN0ZXJzCisjZGVmaW5lIHJlc3VsdCAgICAgICAgICByMAorICAgICAgICAKKyNkZWZpbmUgcFRtcERzdCAgICAgICAgIHI0CisjZGVmaW5lIHBUbXBTcmMgICAgICAgICByNQorI2RlZmluZSBOICAgICAgICAgICAgICAgcjYKKyNkZWZpbmUgb3JkZXIgICAgICAgICAgIHI3CisjZGVmaW5lIHBPdXQgICAgICAgICAgICByOAorCitALy8gTmVvbiByZWdpc3RlcnMKKworI2RlZmluZSBkWDAgICAgICAgICAgICAgRDAuUzE2CisjZGVmaW5lIHFZMCAgICAgICAgICAgICBRMS5TMzIKKyNkZWZpbmUgZFkwUzMyICAgICAgICAgIEQyLlMzMgorI2RlZmluZSBxWDAgICAgICAgICAgICAgUTEuUzMyCisjZGVmaW5lIGRZMVMzMiAgICAgICAgICBEMy5TMzIKKyNkZWZpbmUgZFgwUzMyICAgICAgICAgIEQwLlMzMgorCisKKworCisgICAgQC8vIEFsbG9jYXRlIHN0YWNrIG1lbW9yeSByZXF1aXJlZCBieSB0aGUgZnVuY3Rpb24KKyAgICAgICAgCisgICAgQC8vIFdyaXRlIGZ1bmN0aW9uIGhlYWRlcgorICAgICAgICBNX1NUQVJUICAgICBvbXhTUF9GRlRGd2RfUlRvQ0NTX1MxNlMzMl9TZnMscjExLGQxNQorCitAIFN0cnVjdHVyZSBvZmZzZXRzIGZvciB0aGUgRkZUU3BlYyAgICAgICAgICAgICAKKyAgICAgICAgLnNldCAgICBBUk1zRkZUU3BlY19OLCAwCisgICAgICAgIC5zZXQgICAgQVJNc0ZGVFNwZWNfcEJpdFJldiwgNAorICAgICAgICAuc2V0ICAgIEFSTXNGRlRTcGVjX3BUd2lkZGxlLCA4CisgICAgICAgIC5zZXQgICAgQVJNc0ZGVFNwZWNfcEJ1ZiwgMTIKKyAgICAgICAgCisgICAgICAgIEAvLyBEZWZpbmUgc3RhY2sgYXJndW1lbnRzCisgICAgICAgIAorICAgICAgICBALy8gUmVhZCB0aGUgc2l6ZSBmcm9tIHN0cnVjdHVyZSBhbmQgdGFrZSBsb2cKKyAgICAgICAgTERSICAgICBOLCBbcEZGVFNwZWMsICNBUk1zRkZUU3BlY19OXQorICAgICAgICAKKyAgICAgICAgQC8vIFJlYWQgb3RoZXIgc3RydWN0dXJlIHBhcmFtZXRlcnMKKyAgICAgICAgQC8vTERSICAgICBwVHdpZGRsZSwgW3BGRlRTcGVjLCAjQVJNc0ZGVFNwZWNfcFR3aWRkbGVdCisgICAgICAgIExEUiAgICAgcE91dCwgW3BGRlRTcGVjLCAjQVJNc0ZGVFNwZWNfcEJ1Zl0KKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBALy8gIE49MSBUcmVhdCBzZXBlcmF0ZWx5ICAKKyAgICAgICAgQ01QICAgICBOLCMxCisgICAgICAgIEJHVCAgICAgc2l6ZUdyZWF0ZXJUaGFuT25lCisgICAgICAgIFZMRDEgICAgZFgwWzBdLFtwU3JjXQorICAgICAgICBWTU9WTCAgIHFZMCxkWDAKKyAgICAgICAgVlNUMSAgICBkWTBTMzJbMF0sW3BEc3RdCisgICAgICAgIAorICAgICAgICBNT1YgICAgIHBTcmMscERzdAorICAgICAgICBCICAgICAgIHJlYWxTMzJGRlQKKyAgICAgICAgCitzaXplR3JlYXRlclRoYW5PbmU6ICAgICAgICAKKyAgICAgICAgTU9WICAgICBOLE4sQVNSICMxCisgICAgICAgIAorICAgICAgICBDTFogICAgIG9yZGVyLE4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyBOID0gMl5vcmRlciAKKyAgICAgICAgUlNCICAgICBvcmRlcixvcmRlciwjMzEKKyAgICAgICAgCisgICAgICAgIFRTVCAgICAgb3JkZXIsIzEKKyAgICAgICAgTU9WRVEgICBwVG1wRHN0LHBPdXQKKyAgICAgICAgTU9WTkUgICBwVG1wRHN0LHBEc3QKKyAgICAgICAgTU9WICAgICBwVG1wU3JjLHBUbXBEc3QKKyAgICAgICAgCisgICAgICAgIENNUCAgICAgTiwjMQorICAgICAgICBCR1QgICAgIGNvcHlTMTZUb1MzMgorICAgICAgICBWTEQxICAgIGRYMFMzMlswXSxbcFNyY10KKyAgICAgICAgVk1PVkwgICBxWDAsZFgwCisgICAgICAgIFZTVDEgICAgZFkwUzMyLFtwVG1wRHN0XQorICAgICAgICBCICAgICAgIHNldHBTcmMKKworICAgICAgICAKK2NvcHlTMTZUb1MzMjogICAgICAgICAgICAgICAKKyAgICAgICAgCisgICAgICAgIFZMRDEgICAgZFgwLFtwU3JjXSEKKyAgICAgICAgU1VCUyAgICBOLE4sIzIKKyAgICAgICAgVk1PVkwgICBxWDAsZFgwCisgICAgICAgIFZTVDEgICAge2RZMFMzMixkWTFTMzJ9LFtwVG1wRHN0XSEKKyAgICAgICAgQkdUICAgICBjb3B5UzE2VG9TMzIKKyAKK3NldHBTcmM6ICAgICAgICAgICAgICAgIAorICAgICAgICBNT1YgICAgIHBTcmMscFRtcFNyYworICAgICAgICAKKyAgICAgICAgCisgICAgICAgICAgICAgIAorcmVhbFMzMkZGVDogICAgICAgICAgICAgCisgICAgICAgIEJMICAgICAgb214U1BfRkZURndkX1JUb0NDU19TMzJfU2ZzICAgICAgICAKKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgIAorRW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgQC8vIFNldCByZXR1cm4gdmFsdWUKKyAgICAgICAgTU9WICAgICByZXN1bHQsICNPTVhfU3RzX05vRXJyICAgICAgIAorCisgICAgICAgIEAvLyBXcml0ZSBmdW5jdGlvbiB0YWlsCisgICAgICAgIE1fRU5ECisgICAgICAgIC5lbmQKKyAgICAgICAgICAgICAgICAKZGlmZiAtLWdpdCBhL2RsL29teFNQX0ZGVEZ3ZF9SVG9DQ1NfUzMyX1Nmc19zLlMgYi9kbC9vbXhTUF9GRlRGd2RfUlRvQ0NTX1MzMl9TZnNfcy5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhZWYyNWUKLS0tIC9kZXYvbnVsbAorKysgYi9kbC9vbXhTUF9GRlRGd2RfUlRvQ0NTX1MzMl9TZnNfcy5TCkBAIC0wLDAgKzEsNTQ5IEBACitALy8KK0AvLyAgQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorQC8vCitALy8gIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKK0AvLyAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCitALy8gIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKK0AvLyAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorQC8vICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KK0AvLworQC8vICBUaGlzIGZpbGUgd2FzIG9yaWdpbmFsbHkgbGljZW5zZWQgYXMgZm9sbG93cy4gSXQgaGFzIGJlZW4KK0AvLyAgcmVsaWNlbnNlZCB3aXRoIHBlcm1pc3Npb24gZnJvbSB0aGUgY29weXJpZ2h0IGhvbGRlcnMuCitALy8KKworQC8vIAorQC8vIEZpbGUgTmFtZTogIG9teFNQX0ZGVEZ3ZF9SVG9DQ1NfUzMyX1Nmc19zLnMKK0AvLyBPcGVuTUFYIERMOiB2MS4wLjIKK0AvLyBMYXN0IE1vZGlmaWVkIFJldmlzaW9uOiAgIDc4MTAKK0AvLyBMYXN0IE1vZGlmaWVkIERhdGU6ICAgICAgIFRodSwgMDQgT2N0IDIwMDcKK0AvLyAKK0AvLyAoYykgQ29weXJpZ2h0IDIwMDctMjAwOCBBUk0gTGltaXRlZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KK0AvLyAKK0AvLyAKK0AvLworQC8vIERlc2NyaXB0aW9uOgorQC8vIENvbXB1dGUgRkZUIGZvciBhIHJlYWwgc2lnbmFsCitALy8gCisKKworICAgICAgICAKK0AvLyBJbmNsdWRlIHN0YW5kYXJkIGhlYWRlcnMKKworI2luY2x1ZGUgIm9teHR5cGVzX3MuaCIKKyNpbmNsdWRlICJhcm1DT01NX3MuaCIKKyAgICAgICAgCisgICAgICAgIAorQC8vIEltcG9ydCBzeW1ib2xzIHJlcXVpcmVkIGZyb20gb3RoZXIgZmlsZXMKK0AvLyAoRm9yIGV4YW1wbGUgdGFibGVzKQorICAgICAgICAKKyAgICAgICAgLmV4dGVybiAgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9TZnNfUmFkaXgyX2ZzX091dE9mUGxhY2VfdW5zYWZlIAorICAgICAgICAuZXh0ZXJuICBhcm1TUF9GRlRGd2RfQ1RvQ19TQzMyX1JhZGl4Ml9mc19PdXRPZlBsYWNlX3Vuc2FmZQorICAgICAgICAuZXh0ZXJuICBhcm1TUF9GRlRGd2RfQ1RvQ19TQzMyX1JhZGl4NF9mc19PdXRPZlBsYWNlX3Vuc2FmZSAKKyAgICAgICAgLmV4dGVybiAgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9SYWRpeDhfZnNfT3V0T2ZQbGFjZV91bnNhZmUgCisgICAgICAgIC5leHRlcm4gIGFybVNQX0ZGVEZ3ZF9DVG9DX1NDMzJfUmFkaXg0X091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIC5leHRlcm4gIGFybVNQX0ZGVEZ3ZF9DVG9DX1NDMzJfU2ZzX1JhZGl4NF9mc19PdXRPZlBsYWNlX3Vuc2FmZSAKKyAgICAgICAgLmV4dGVybiAgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9TZnNfUmFkaXg4X2ZzX091dE9mUGxhY2VfdW5zYWZlIAorICAgICAgICAuZXh0ZXJuICBhcm1TUF9GRlRGd2RfQ1RvQ19TQzMyX1Nmc19SYWRpeDRfT3V0T2ZQbGFjZV91bnNhZmUKKyAgICAgICAgLmV4dGVybiAgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9TZnNfUmFkaXgyX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIC5leHRlcm4gIGFybVNQX0ZGVEZ3ZF9DVG9DX1NDMzJfUmFkaXgyX091dE9mUGxhY2VfdW5zYWZlICAgCisgICAgICAgIAorQC8vIFNldCBkZWJ1Z2dpbmcgbGV2ZWwgICAgICAgIAorQC8vREVCVUdfT04gICAgU0VUTCB7VFJVRX0KKworCisKK0AvLyBHdWFyZGluZyBpbXBsZW1lbnRhdGlvbiBieSB0aGUgcHJvY2Vzc29yIG5hbWUKKyAgICAKKyAgICAKKyAgICAKKyAgICBALy8gR3VhcmRpbmcgaW1wbGVtZW50YXRpb24gYnkgdGhlIHByb2Nlc3NvciBuYW1lCisgICAgCitALy8gSW1wb3J0IHN5bWJvbHMgcmVxdWlyZWQgZnJvbSBvdGhlciBmaWxlcworQC8vIChGb3IgZXhhbXBsZSB0YWJsZXMpCisgICAgICAgIC5leHRlcm4gIGFybVNQX0ZGVEZ3ZF9DVG9DX1NDMzJfUmFkaXg0X2xzX091dE9mUGxhY2VfdW5zYWZlICAgICAKKyAgICAgICAgLmV4dGVybiAgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9SYWRpeDJfbHNfT3V0T2ZQbGFjZV91bnNhZmUKKyAgICAgICAgLmV4dGVybiAgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9TZnNfUmFkaXg0X2xzX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIC5leHRlcm4gIGFybVNQX0ZGVEZ3ZF9DVG9DX1NDMzJfU2ZzX1JhZGl4Ml9sc19PdXRPZlBsYWNlX3Vuc2FmZSAgICAgIAorICAgICAKKyAgICAKK0AvL0lucHV0IFJlZ2lzdGVycworCisjZGVmaW5lIHBTcmMgICAgICAgICAgICByMAorI2RlZmluZSBwRHN0ICAgICAgICAgICAgcjEKKyNkZWZpbmUgcEZGVFNwZWMgICAgICAgIHIyCisjZGVmaW5lIHNjYWxlICAgICAgICAgICByMworCisKK0AvLyBPdXRwdXQgcmVnaXN0ZXJzCisjZGVmaW5lIHJlc3VsdCAgICAgICAgICByMAorCitALy9Mb2NhbCBTY3JhdGNoIFJlZ2lzdGVycworCisjZGVmaW5lIGFyZ1R3aWRkbGUgICAgICByMQorI2RlZmluZSBhcmdEc3QgICAgICAgICAgcjIKKyNkZWZpbmUgYXJnU2NhbGUgICAgICAgIHI0CisjZGVmaW5lIHRtcE9yZGVyICAgICAgICByNAorI2RlZmluZSBwVHdpZGRsZSAgICAgICAgcjQKKyNkZWZpbmUgcE91dCAgICAgICAgICAgIHI1CisjZGVmaW5lIHN1YkZGVFNpemUgICAgICByNyAgICAgCisjZGVmaW5lIHN1YkZGVE51bSAgICAgICByNgorI2RlZmluZSBOICAgICAgICAgICAgICAgcjYKKyNkZWZpbmUgb3JkZXIgICAgICAgICAgIHIxNAorI2RlZmluZSBkaWZmICAgICAgICAgICAgcjkKK0AvLyBUb3RhbCBudW0gb2YgcmFkaXggc3RhZ2VzIHJlcXVpcmVkIHRvIGNvbXBsZSB0aGUgRkZUICAgICAgICAKKyNkZWZpbmUgY291bnQgICAgICAgICAgIHI4CisjZGVmaW5lIHgwciAgICAgICAgICAgICByNCAgICAKKyNkZWZpbmUgeDBpICAgICAgICAgICAgIHI1CisjZGVmaW5lIGRpZmZNaW51c09uZSAgICByMgorI2RlZmluZSBzdWJGRlRTaXplVG1wICAgcjYKKyNkZWZpbmUgc3RlcCAgICAgICAgICAgIHIzCisjZGVmaW5lIHN0ZXAxICAgICAgICAgICByNAorI2RlZmluZSB0d1N0ZXAgICAgICAgICAgcjgKKyNkZWZpbmUgemVybyAgICAgICAgICAgIHI5CisjZGVmaW5lIHBUd2lkZGxlVG1wICAgICByNQorI2RlZmluZSB0MCAgICAgICAgICAgICAgcjEwCisKK0AvLyBOZW9uIHJlZ2lzdGVycworCisjZGVmaW5lIGRYMCAgICAgICBkMC5zMzIKKyNkZWZpbmUgZHplcm8gICAgIGQxLnMzMgorI2RlZmluZSBkWmVybyAgICAgZDIuczMyCisjZGVmaW5lIGRTaGlmdCAgICBkMy5zMzIKKyNkZWZpbmUgZFgwciAgICAgIGQyLnMzMiAgICAgICAgICAgIAorI2RlZmluZSBkWDBpICAgICAgZDMuczMyCisjZGVmaW5lIGRYMXIgICAgICBkNC5zMzIKKyNkZWZpbmUgZFgxaSAgICAgIGQ1LnMzMgorI2RlZmluZSBkVDAgICAgICAgZDYuczMyCisjZGVmaW5lIGRUMSAgICAgICBkNy5zMzIKKyNkZWZpbmUgZFQyICAgICAgIGQ4LnMzMgorI2RlZmluZSBkVDMgICAgICAgZDkuczMyCisjZGVmaW5lIHFUMCAgICAgICBxNS5zNjQKKyNkZWZpbmUgcVQxICAgICAgIHE2LnM2NAorI2RlZmluZSBkVzByICAgICAgZDE0LnMzMgorI2RlZmluZSBkVzBpICAgICAgZDE1LnMzMgorI2RlZmluZSBkVzFyICAgICAgZDE2LnMzMgorI2RlZmluZSBkVzFpICAgICAgZDE3LnMzMgorI2RlZmluZSBkWTByICAgICAgZDE0LnMzMgorI2RlZmluZSBkWTBpICAgICAgZDE1LnMzMgorI2RlZmluZSBkWTFyICAgICAgZDE2LnMzMgorI2RlZmluZSBkWTFpICAgICAgZDE3LnMzMgorI2RlZmluZSBkWTByUzY0ICAgZDE0LnM2NAorI2RlZmluZSBkWTBpUzY0ICAgZDE1LnM2NAorI2RlZmluZSBxVDIgICAgICAgcTkuczY0CisjZGVmaW5lIHFUMyAgICAgICBxMTAuczY0CitALy8gbGFzdFRocmVlZWxlbWVudHMKKyNkZWZpbmUgZFgxICAgICAgIGQzLnMzMgorI2RlZmluZSBkVzAgICAgICAgZDQuczMyCisjZGVmaW5lIGRXMSAgICAgICBkNS5zMzIKKyNkZWZpbmUgZFkwICAgICAgIGQxMC5zMzIKKyNkZWZpbmUgZFkxICAgICAgIGQxMS5zMzIKKyNkZWZpbmUgZFkyICAgICAgIGQxMi5zMzIKKyNkZWZpbmUgZFkzICAgICAgIGQxMy5zMzIKKworICAgIEAvLyBBbGxvY2F0ZSBzdGFjayBtZW1vcnkgcmVxdWlyZWQgYnkgdGhlIGZ1bmN0aW9uCisKKyAgICAgICAgTV9BTExPQzQgICAgICAgIGRpZmZPblN0YWNrLCA0CisgICAgICAgIAorICAgIEAvLyBXcml0ZSBmdW5jdGlvbiBoZWFkZXIKKyAgICAgICAgTV9TVEFSVCAgICAgb214U1BfRkZURndkX1JUb0NDU19TMzJfU2ZzLHIxMSxkMTUKKyAgICAgICAgCitAIFN0cnVjdHVyZSBvZmZzZXRzIGZvciB0aGUgRkZUU3BlYyAgICAgICAgICAgICAKKyAgICAgICAgLnNldCAgICBBUk1zRkZUU3BlY19OLCAwCisgICAgICAgIC5zZXQgICAgQVJNc0ZGVFNwZWNfcEJpdFJldiwgNAorICAgICAgICAuc2V0ICAgIEFSTXNGRlRTcGVjX3BUd2lkZGxlLCA4CisgICAgICAgIC5zZXQgICAgQVJNc0ZGVFNwZWNfcEJ1ZiwgMTIKKworICAgICAgICBALy8gRGVmaW5lIHN0YWNrIGFyZ3VtZW50cworICAgICAgICAKKyAgICAgICAgQC8vIFJlYWQgdGhlIHNpemUgZnJvbSBzdHJ1Y3R1cmUgYW5kIHRha2UgbG9nCisgICAgICAgIExEUiAgICAgTiwgW3BGRlRTcGVjLCAjQVJNc0ZGVFNwZWNfTl0KKyAgICAgICAgCisgICAgICAgIEAvLyBSZWFkIG90aGVyIHN0cnVjdHVyZSBwYXJhbWV0ZXJzCisgICAgICAgIExEUiAgICAgcFR3aWRkbGUsIFtwRkZUU3BlYywgI0FSTXNGRlRTcGVjX3BUd2lkZGxlXQorICAgICAgICBMRFIgICAgIHBPdXQsIFtwRkZUU3BlYywgI0FSTXNGRlRTcGVjX3BCdWZdCisgICAgICAgIAorICAgICAgICBALy8gIE49MSBUcmVhdCBzZXBlcmF0ZWx5ICAKKyAgICAgICAgQ01QICAgICBOLCMxCisgICAgICAgIEJHVCAgICAgc2l6ZUdyZWF0ZXJUaGFuT25lCisgICAgICAgIFZMRDEgICAgZFgwWzBdLFtwU3JjXQorICAgICAgICBSU0IgICAgIHNjYWxlLHNjYWxlLCMwICAgICAgICAgICAgICAgICAgICAgICAgQC8vIHRvIHVzZSBWUlNITCBmb3IgcmlnaHQgc2hpZnQgYnkgYSB2YXJpYWJsZQorICAgICAgICBNT1YgICAgIHplcm8sIzAKKyAgICAgICAgVk1PViAgICBkU2hpZnRbMF0sc2NhbGUKKyAgICAgICAgVk1PViAgICBkemVyb1swXSx6ZXJvCisgICAgICAgIFZSU0hMICAgZFgwLGRTaGlmdAorICAgICAgICBWTU9WICAgIGRaZXJvWzBdLHplcm8KKyAgICAgICAgVlNUMyAgICB7ZFgwWzBdLGR6ZXJvWzBdLGRaZXJvWzBdfSxbcERzdF0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgQiAgICAgICBFbmQKKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgIAorc2l6ZUdyZWF0ZXJUaGFuT25lOgorICAgICAgICBALy8gRG8gYSBOLzIgcG9pbnQgY29tcGxleCBGRlQgaW5jbHVkaW5nIHRoZSBzY2FsaW5nCisgICAgICAgICAgICAgIAorICAgICAgICBNT1YgICAgIE4sTixBU1IgIzEgICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyBOLzIgcG9pbnQgY29tcGxleCBGRlQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgQ0xaICAgICBvcmRlcixOICAgICAgICAgICAgICAgICAgICAgICAgICAgICBALy8gTiA9IDJeb3JkZXIgCisgICAgICAgIFJTQiAgICAgb3JkZXIsb3JkZXIsIzMxICAgICAKKyAgICAgICAgTU9WICAgICBzdWJGRlRTaXplLCMxCisgICAgICAgIEAvL01PViAgICAgc3ViRkZUTnVtLE4KKyAgICAgICAgCisgICAgICAgIENNUCAgICAgb3JkZXIsIzMKKyAgICAgICAgQkdUICAgICBvcmRlckdyZWF0ZXJ0aGFuMyAgICAgICAgICAgICAgICAgICBALy8gb3JkZXIgPiAzCisgICAgICAgICAgICAgICAgCisgICAgICAgIENNUCAgICAgb3JkZXIsIzEKKyAgICAgICAgQkdFICAgICBvcmRlckdyZWF0ZXJ0aGFuMCAgICAgICAgICAgICAgICAgICBALy8gb3JkZXIgPiAwCisgICAgICAgIE1fU1RSICAgc2NhbGUsIGRpZmZPblN0YWNrLExUICAgICAgICAgICAgICAgQC8vIG9yZGVyID0gMAorICAgICAgICBWTEQxICAgIGRYMCxbcFNyY10KKyAgICAgICAgVlNUMSAgICBkWDAsW3BPdXRdCisgICAgICAgIE1PViAgICAgcFNyYyxwT3V0CisgICAgICAgIE1PViAgICAgYXJnRHN0LHBEc3QKKyAgICAgICAgQkxUICAgICBGRlRFbmQKKyAgICAgICAgCitvcmRlckdyZWF0ZXJ0aGFuMDoKKyAgICAgICAgQC8vIHNldCB0aGUgYnVmZmVycyBhcHByb3ByaWF0ZWx5IGZvciB2YXJpb3VzIG9yZGVycworICAgICAgICBDTVAgICAgIG9yZGVyLCMyCisgICAgICAgIE1PVkVRICAgYXJnRHN0LHBEc3QgICAgICAgIAorICAgICAgICBNT1ZORSAgIGFyZ0RzdCxwT3V0CisgICAgICAgIE1PVk5FICAgcE91dCxwRHN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgQC8vIFBhc3MgdGhlIGZpcnN0IHN0YWdlIGRlc3RpbmF0aW9uIGluIFJONQorICAgICAgICBNT1YgICAgIGFyZ1R3aWRkbGUscFR3aWRkbGUKKyAgICAgICAgCisgICAgICAgIFNVQlMgICAgIGRpZmYsc2NhbGUsb3JkZXIKKyAgICAgICAgTV9TVFIgICBkaWZmLGRpZmZPblN0YWNrCisgICAgICAgIE1PVkdUICAgc2NhbGUsb3JkZXIKKyAgICAgICAgQC8vIE5vdyBzY2FsZSA8PSBvcmRlcgorICAgICAgICAKKyAgICAgICAgQ01QICAgICBvcmRlciwjMQorICAgICAgICBCR1QgICAgIG9yZGVyR3JlYXRlcnRoYW4xCisgICAgICAgIFNVQlMgICAgc2NhbGUsc2NhbGUsIzEKKyAgICAgICAgQkxFUSAgICBhcm1TUF9GRlRGd2RfQ1RvQ19TQzMyX1Nmc19SYWRpeDJfZnNfT3V0T2ZQbGFjZV91bnNhZmUgIEAvLyBvcmRlciA9IDEKKyAgICAgICAgQkxMVCAgICBhcm1TUF9GRlRGd2RfQ1RvQ19TQzMyX1JhZGl4Ml9mc19PdXRPZlBsYWNlX3Vuc2FmZSAgICAgIEAvLyBvcmRlciA9IDEKKyAgICAgICAgQiAgICAgICBGRlRFbmQKKworb3JkZXJHcmVhdGVydGhhbjE6CisgICAgICAgIENNUCAgICAgb3JkZXIsIzIKKyAgICAgICAgTU9WICAgICBhcmdTY2FsZSxzY2FsZQorICAgICAgICBCR1QgICAgIG9yZGVyR3JlYXRlcnRoYW4yCisgICAgICAgIFNVQlMgICAgYXJnU2NhbGUsYXJnU2NhbGUsIzEKKyAgICAgICAgQkxHRSAgICBhcm1TUF9GRlRGd2RfQ1RvQ19TQzMyX1Nmc19SYWRpeDJfZnNfT3V0T2ZQbGFjZV91bnNhZmUgICAgICBALy8gb3JkZXIgPTIgICAgICAgICAgCisgICAgICAgIEJMTFQgICAgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9SYWRpeDJfZnNfT3V0T2ZQbGFjZV91bnNhZmUgIAorICAgICAgICBTVUJTICAgIGFyZ1NjYWxlLGFyZ1NjYWxlLCMxCisgICAgICAgIEJMRVEgICAgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9TZnNfUmFkaXgyX2xzX091dE9mUGxhY2VfdW5zYWZlICAKKyAgICAgICAgQkxMVCAgICBhcm1TUF9GRlRGd2RfQ1RvQ19TQzMyX1JhZGl4Ml9sc19PdXRPZlBsYWNlX3Vuc2FmZSAgCisgICAgICAgIEIgICAgICAgRkZURW5kCisgICAgICAgIAorb3JkZXJHcmVhdGVydGhhbjI6QC8vIG9yZGVyID0zICAgICAgICAKKyAgICAgICAgU1VCUyAgICBhcmdTY2FsZSxhcmdTY2FsZSwjMQorICAgICAgICBCTEdFICAgIGFybVNQX0ZGVEZ3ZF9DVG9DX1NDMzJfU2ZzX1JhZGl4Ml9mc19PdXRPZlBsYWNlX3Vuc2FmZSAgICAgIAorICAgICAgICBCTExUICAgIGFybVNQX0ZGVEZ3ZF9DVG9DX1NDMzJfUmFkaXgyX2ZzX091dE9mUGxhY2VfdW5zYWZlICAKKyAgICAgICAgU1VCUyAgICBhcmdTY2FsZSxhcmdTY2FsZSwjMQorICAgICAgICBCTEdFICAgIGFybVNQX0ZGVEZ3ZF9DVG9DX1NDMzJfU2ZzX1JhZGl4Ml9PdXRPZlBsYWNlX3Vuc2FmZSAgCisgICAgICAgIEJMTFQgICAgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9SYWRpeDJfT3V0T2ZQbGFjZV91bnNhZmUKKyAgICAgICAgU1VCUyAgICBhcmdTY2FsZSxhcmdTY2FsZSwjMQorICAgICAgICBCTEVRICAgIGFybVNQX0ZGVEZ3ZF9DVG9DX1NDMzJfU2ZzX1JhZGl4Ml9sc19PdXRPZlBsYWNlX3Vuc2FmZSAgICAgIAorICAgICAgICBCTExUICAgIGFybVNQX0ZGVEZ3ZF9DVG9DX1NDMzJfUmFkaXgyX2xzX091dE9mUGxhY2VfdW5zYWZlICAgIAorICAgICAgICBCICAgICAgIEZGVEVuZAorCisgICAgICAgIAorCitvcmRlckdyZWF0ZXJ0aGFuMzoKKyAgICAgICAgQC8vIGNoZWNrIHNjYWxlID0gMCBvciBzY2FsZSA9IG9yZGVyCisgICAgICAgIFNVQlMgICAgZGlmZiwgc2NhbGUsIG9yZGVyICAgICAgICAgICAgICAgICBALy8gc2NhbGUgPiBvcmRlciAKKyAgICAgICAgTU9WR1QgICBzY2FsZSxvcmRlciAgICAgCisgICAgICAgIEJHRSAgICAgc3BlY2lhbFNjYWxlQ2FzZSAgICAgICAgICAgICAgICAgICBALy8gc2NhbGUgPSAwIG9yIHNjYWxlID0gb3JkZXIgCisgICAgICAgIENNUCAgICAgc2NhbGUsIzAKKyAgICAgICAgQkVRICAgICBzcGVjaWFsU2NhbGVDYXNlCisgICAgICAgIEIgICAgICAgZ2VuZXJhbFNjYWxlQ2FzZQorICAgICAgICAKK3NwZWNpYWxTY2FsZUNhc2U6QC8vICBzY2FsZSA9IDAgb3Igc2NhbGUgPSBvcmRlciAgYW5kIG9yZGVyID49IDIgICAgIAorICAgICAgICAKKyAgICAgICAgVFNUICAgICBvcmRlciwgIzIgICAgICAgICAgICAgICAgICAgICAgICAgICBALy8gU2V0IGlucHV0IGFyZ3MgdG8gZmZ0IHN0YWdlcworICAgICAgICBNT1ZFUSAgIGFyZ0RzdCxwRHN0ICAgICAgICAKKyAgICAgICAgTU9WTkUgICBhcmdEc3QscE91dAorICAgICAgICBNT1ZORSAgIHBPdXQscERzdCAgICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyBQYXNzIHRoZSBmaXJzdCBzdGFnZSBkZXN0aW5hdGlvbiBpbiBSTjUKKyAgICAgICAgTU9WICAgICBhcmdUd2lkZGxlLHBUd2lkZGxlICAKKworICAgICAgICBDTVAgICAgICBkaWZmLCMwCisgICAgICAgIE1fU1RSICAgIGRpZmYsIGRpZmZPblN0YWNrCisgICAgICAgIEJHRSAgICAgIHNjYWxlRXF1YWxzT3JkZXIgIAorICAgICAgIAorICAgICAgICBALy9jaGVjayBmb3IgZXZlbiBvciBvZGQgb3JkZXIKKyAgICAgICAgQC8vIE5PVEU6IFRoZSBmb2xsb3dpbmcgY29tYmluYXRpb24gb2YgQkwncyB3b3VsZCB3b3JrIGZpbmUgZXZlbnRob3VnaCB0aGUgZmlyc3QKKyAgICAgICAgQC8vIEJMIHdvdWxkIGNvcnJ1cHQgdGhlIGZsYWdzLiBUaGlzIGlzIGJlY2F1c2UgdGhlIGVuZCBvZiB0aGUgImdycFplcm9TZXRMb29wIiBsb29wIGluc2lkZSAKKyAgICAgICAgQC8vIGFybVNQX0ZGVEZ3ZF9DVG9DX1NDMzJfUmFkaXg0X2ZzX091dE9mUGxhY2VfdW5zYWZlIHNldHMgdGhlIFogZmxhZyB0byBFUQorICAgICAgICAKKyAgICAgICAgVFNUICAgICBvcmRlciwjMHgwMDAwMDAwMQorICAgICAgICBCTEVRICAgIGFybVNQX0ZGVEZ3ZF9DVG9DX1NDMzJfUmFkaXg0X2ZzX091dE9mUGxhY2VfdW5zYWZlIAorICAgICAgICBCTE5FICAgIGFybVNQX0ZGVEZ3ZF9DVG9DX1NDMzJfUmFkaXg4X2ZzX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIAorICAgICAgICBDTVAgICAgICAgIHN1YkZGVE51bSwjNAorICAgICAgICBCTFQgICAgIEZGVEVuZAorICAgICAgICAgCisKK3Vuc2NhbGVkUmFkaXg0TG9vcDoKKyAgICAgICAgQkVRICAgICAgICBsYXN0U3RhZ2VVbnNjYWxlZFJhZGl4NAorICAgICAgICAgQkwgICAgICAgIGFybVNQX0ZGVEZ3ZF9DVG9DX1NDMzJfUmFkaXg0X091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgICBDTVAgICAgICAgIHN1YkZGVE51bSwjNAorICAgICAgICAgQiAgICAgICAgdW5zY2FsZWRSYWRpeDRMb29wCisgICAgICAgICAKK2xhc3RTdGFnZVVuc2NhbGVkUmFkaXg0OgorICAgICAgICBCTCAgICAgIGFybVNQX0ZGVEZ3ZF9DVG9DX1NDMzJfUmFkaXg0X2xzX091dE9mUGxhY2VfdW5zYWZlIAorICAgICAgICBCICAgICAgICBGRlRFbmQgICAgICAgIAorICAgICAgICAgCisKK3NjYWxlRXF1YWxzT3JkZXI6CisgICAgICAgIEAvL2NoZWNrIGZvciBldmVuIG9yIG9kZCBvcmRlcgorICAgICAgICBALy8gTk9URTogVGhlIGZvbGxvd2luZyBjb21iaW5hdGlvbiBvZiBCTCdzIHdvdWxkIHdvcmsgZmluZSBldmVudGhvdWdoIHRoZSBmaXJzdAorICAgICAgICBALy8gQkwgd291bGQgY29ycnVwdCB0aGUgZmxhZ3MuIFRoaXMgaXMgYmVjYXVzZSB0aGUgZW5kIG9mIHRoZSAiZ3JwWmVyb1NldExvb3AiIGxvb3AgaW5zaWRlIAorICAgICAgICBALy8gYXJtU1BfRkZURndkX0NUb0NfU0MzMl9SYWRpeDRfZnNfT3V0T2ZQbGFjZV91bnNhZmUgc2V0cyB0aGUgWiBmbGFnIHRvIEVRCisgICAgICAgICAgICAgICAgCisgICAgICAgIFRTVCAgICAgb3JkZXIsIzB4MDAwMDAwMDEKKyAgICAgICAgQkxFUSAgICBhcm1TUF9GRlRGd2RfQ1RvQ19TQzMyX1Nmc19SYWRpeDRfZnNfT3V0T2ZQbGFjZV91bnNhZmUgCisgICAgICAgIEJMTkUgICAgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9TZnNfUmFkaXg4X2ZzX091dE9mUGxhY2VfdW5zYWZlIAorICAgICAgICAKKyAgICAgICAgQ01QICAgICAgICBzdWJGRlROdW0sIzQKKyAgICAgICAgQkxUICAgICBGRlRFbmQKKyAgICAgICAgCisKK3NjYWxlZFJhZGl4NExvb3A6CisgICAgICAgIEJFUSAgICAgICAgbGFzdFN0YWdlU2NhbGVkUmFkaXg0CisgICAgICAgICBCTCAgICAgICAgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9TZnNfUmFkaXg0X091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgICBDTVAgICAgICAgIHN1YkZGVE51bSwjNAorICAgICAgICAgQiAgICAgICAgc2NhbGVkUmFkaXg0TG9vcCAgICAgICAgIAorICAgICAgICAgCitsYXN0U3RhZ2VTY2FsZWRSYWRpeDQ6CisgICAgICAgIEJMICAgICAgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9TZnNfUmFkaXg0X2xzX091dE9mUGxhY2VfdW5zYWZlIAorICAgICAgICBCICAgICAgICBGRlRFbmQgICAgICAgIAorICAgICAgICAKK2dlbmVyYWxTY2FsZUNhc2U6QC8vIDAgPCBzY2FsZSA8IG9yZGVyIGFuZCBvcmRlciA+PSAyCisgICAgICAgIEAvLyBEZXRlcm1pbmUgdGhlIGNvcnJlY3QgZGVzdGluYXRpb24gYnVmZmVyCisgICAgICAgIFNVQiAgICAgZGlmZixvcmRlcixzY2FsZQorICAgICAgICBUU1QgICAgIGRpZmYsIzB4MDEKKyAgICAgICAgQURERVEgICBjb3VudCwgc2NhbGUsZGlmZixsc3IgIzEgICAgICAgICBALy8gY291bnQgPSBzY2FsZSArIChvcmRlciAtIHNjYWxlKS8yCisgICAgICAgIE1PVk5FICAgY291bnQsIG9yZGVyCisgICAgICAgIFRTVCAgICAgY291bnQsICMweDAxICAgICAgICAgICAgICAgICAgICAgQC8vIElzIGNvdW50IGV2ZW4gb3Igb2RkID8KKyAgICAgICAgCisgICAgICAgIE1PVkVRICAgYXJnRHN0LHBEc3QgICAgICAgICAgICAgICAgICAgICBALy8gU2V0IGlucHV0IGFyZ3MgdG8gZmZ0IHN0YWdlcworICAgICAgICBNT1ZORSAgIGFyZ0RzdCxwT3V0CisgICAgICAgIE1PVk5FICAgcE91dCxwRHN0ICAgICAgICAgICAgICAgICAgICAgICBALy8gUGFzcyB0aGUgZmlyc3Qgc3RhZ2UgZGVzdGluYXRpb24gaW4gUk41CisgICAgICAgIE1PViAgICAgYXJnVHdpZGRsZSxwVHdpZGRsZSAgCisKKyAgICAgICAgTV9TVFIgICBkaWZmLCBkaWZmT25TdGFjayAgICAKKyAgICAgICAgCisgICAgICAgIE1PViAgICAgYXJnU2NhbGUsc2NhbGUgICAgICAgICAgICAgICAgICBALy8gUHV0IHNjYWxlIGluIFJONCBzbyBhcyB0byBzYXZlIGFuZCByZXN0b3JlCisgICAgICAgIEJMICAgICAgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9TZnNfUmFkaXgyX2ZzX091dE9mUGxhY2VfdW5zYWZlICAgICBALy8gc2NhbGVkIGZpcnN0IHN0YWdlCisgICAgICAgIFNVQlMgICAgYXJnU2NhbGUsYXJnU2NhbGUsIzEKKyAgICAgICAgCitzY2FsZWRSYWRpeDJMb29wOgorICAgICAgICBCTEdUICAgIGFybVNQX0ZGVEZ3ZF9DVG9DX1NDMzJfU2ZzX1JhZGl4Ml9PdXRPZlBsYWNlX3Vuc2FmZQorICAgICAgICBTVUJTICAgIGFyZ1NjYWxlLGFyZ1NjYWxlLCMxICAgICAgICAgICAgQC8vIHNhdmUgYW5kIHJlc3RvcmUgc2NhbGUgKFJONCkgaW4gdGhlIHNjYWxlZCBzdGFnZXMKKyAgICAgICAgQkdUICAgICBzY2FsZWRSYWRpeDJMb29wCisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgTV9MRFIgICBkaWZmLCBkaWZmT25TdGFjayAgCisgICAgICAgIEAvL2NoZWNrIGZvciBldmVuIG9yIG9kZCBvcmRlcgorICAgICAgICBUU1QgICAgIGRpZmYsIzB4MDAwMDAwMDEKKyAgICAgICAgQkVRICAgICBnZW5lcmFsVW5zY2FsZWRSYWRpeDRMb29wCisgICAgICAgIEIgICAgICAgdW5zY2FsZWRSYWRpeDJMb29wCisKK2dlbmVyYWxVbnNjYWxlZFJhZGl4NExvb3A6CisgICAgICAgIENNUCAgICAgICAgc3ViRkZUTnVtLCM0CisgICAgICAgICBCRVEgICAgICAgIGdlbmVyYWxMYXN0U3RhZ2VVbnNjYWxlZFJhZGl4NAorICAgICAgICAgQkwgICAgICAgIGFybVNQX0ZGVEZ3ZF9DVG9DX1NDMzJfUmFkaXg0X091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgICBCICAgICAgICBnZW5lcmFsVW5zY2FsZWRSYWRpeDRMb29wIAorICAgICAgICAgCitnZW5lcmFsTGFzdFN0YWdlVW5zY2FsZWRSYWRpeDQ6CisgICAgICAgIEJMICAgICAgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9SYWRpeDRfbHNfT3V0T2ZQbGFjZV91bnNhZmUgCisgICAgICAgIEIgICAgICAgIGZpbmFsQ29tcGxleFRvUmVhbEZpeHVwICAgICAgICAgICAgIAorICAgICAgICAgICAgIAorCit1bnNjYWxlZFJhZGl4Mkxvb3A6CisgICAgICAgIENNUCAgICAgICAgc3ViRkZUTnVtLCMyCisgICAgICAgICBCRVEgICAgICAgIGdlbmVyYWxMYXN0U3RhZ2VVbnNjYWxlZFJhZGl4MgorICAgICAgICAgQkwgICAgICAgIGFybVNQX0ZGVEZ3ZF9DVG9DX1NDMzJfUmFkaXgyX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgICBCICAgICAgICB1bnNjYWxlZFJhZGl4Mkxvb3AgICAgICAgIAorCitnZW5lcmFsTGFzdFN0YWdlVW5zY2FsZWRSYWRpeDI6CisgICAgICAgIEJMICAgICAgYXJtU1BfRkZURndkX0NUb0NfU0MzMl9SYWRpeDJfbHNfT3V0T2ZQbGFjZV91bnNhZmUgCisgICAgICAgIEIgICAgICAgIGZpbmFsQ29tcGxleFRvUmVhbEZpeHVwICAgICAgICAgICAgIAorCisgICAgICAgCitGRlRFbmQ6QC8vIERvZXMgb25seSB0aGUgc2NhbGluZworICAgICAgICAKKyAgICAgICAgTV9MRFIgICBkaWZmLCBkaWZmT25TdGFjayAgCisgICAgICAgIENNUCAgICAgZGlmZiwjMAorICAgICAgICBCTEUgICAgIGZpbmFsQ29tcGxleFRvUmVhbEZpeHVwCisgICAgICAgIAorICAgICAgICBSU0IgICAgIGRpZmYsZGlmZiwjMCAgICAgICAgICAgICAgICAgICAgICAgIEAvLyB0byB1c2UgVlJTSEwgZm9yIHJpZ2h0IHNoaWZ0IGJ5IGEgdmFyaWFibGUKKyAgICAgICAgVkRVUCAgICBkU2hpZnQsZGlmZgorICAgICAgICAKKyAgICAgICAgQC8vIHNhdmUgc3ViRkZUU2l6ZSBhbmQgdXNlIHRtcHN1YmZmdHNpemUgaW4gdGhlIGZvbG93d2luZyBsb29wCisgICAgICAgIE1PViAgICBzdWJGRlRTaXplVG1wLHN1YkZGVFNpemUgICAgICAgICAgICAgICAgIEAvLyBzdWJGRlRTaXplVG1wIHNhbWUgcmVnIGFzIHN1YkZGVE51bSAgICAgIAorICAgICAgICAKK3NjYWxlRkZURGF0YTpALy8gTiA9IHN1YkZGVFNpemUgIDsgZGF0YXB0ciA9IHBEc3QgIDsgc2NhbGUgPSBkaWZmCisgICAgICAgIFZMRDEgICAge2RYMH0sW3BTcmNdICAgICAgICAgICAgQC8vIHBTcmMgY29udGFpbnMgcERzdCBwb2ludGVyCisgICAgICAgIFNVQlMgICAgc3ViRkZUU2l6ZVRtcCxzdWJGRlRTaXplVG1wLCMxCisgICAgICAgIFZSU0hMICAgZFgwLGRTaGlmdAorICAgICAgICBWU1QxICAgIHtkWDB9LFtwU3JjXSEKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgQkdUICAgICBzY2FsZUZGVERhdGEKKyAgICAgICAgCisgICAgICAgIFNVQiAgICAgcFNyYyxwU3JjLHN1YkZGVFNpemUsTFNMICMzICAgICAgICAgICAgIEAvLyByZXNldCBwU3JjIGZvciBmaW5hbCBmaXh1cAorICAgICAgICAKKyAgICAgICAgQC8vICBjaGFuZ2UgdGhlIGxvZ2ljIHNvIHRoYXQgb3V0cHV0IGFmdGVyIHNjYWxpbmcgaXMgaW4gcE91dCBhbmQgbm90IGluIHBEc3QKKyAgICAgICAgQC8vICBmaW5hbGx5IHN0b3JlIGZyb20gcE91dCB0byBwRHN0CisgICAgICAgIEAvLyAgY2hhbmdlIGJyYW5jaCAiRW5kIiB0byBicmFuY2ggImZpbmFsQ29tcGxleFRvUmVhbEZpeHVwIiBpbiB0aGUgYWJvdmUKKyAgICAgICAgQC8vICBjaGsgdGhlIGNvZGUgYmVsb3cgZm9yIG11bHRpcGxpY2F0aW9uIGJ5IGogZmFjdG9yCisKK2ZpbmFsQ29tcGxleFRvUmVhbEZpeHVwOgorICAgICAgICAKKyAgICAgICAgICAgICAgIAorICAgICAgICBALy8gRigwKSA9IDEvMltaKDApICsgWicoMCldIC0gaiBbWigwKSAtIFonKDApXQorICAgICAgICBALy8gMS8yWyhhK2piKSArIChhLWpiKV0gLSBqICBbKGEramIpIC0gKGEtamIpXQorICAgICAgICBALy8gMS8yWzJhK2owXSAtIGogWzArajJiXQorICAgICAgICBALy8gKGErYiwgMCkKKyAgICAgICAgCisgICAgICAgIEAvLyBGKE4vMikgPSAxLzJbWigwKSArIFonKDApXSArIGogW1ooMCkgLSBaJygwKV0KKyAgICAgICAgQC8vIDEvMlsoYStqYikgKyAoYS1qYildICsgaiAgWyhhK2piKSAtIChhLWpiKV0KKyAgICAgICAgQC8vIDEvMlsyYStqMF0gKyBqIFswK2oyYl0KKyAgICAgICAgQC8vIChhLWIsIDApCisgICAgICAgCisgICAgICAgIEAvLyBGKDApIGFuZCBGKE4vMikKKyAgICAgICAgVkxEMiAgICB7ZFgwclswXSxkWDBpWzBdfSxbcFNyY10hCisgICAgICAgIE1PViAgICAgemVybywjMAorICAgICAgICBWTU9WICAgIGRYMHJbMV0semVybworICAgICAgICBNT1YgICAgIHN0ZXAsc3ViRkZUU2l6ZSxMU0wgIzMgICAgICAgICAgICAgICAgICBALy8gc3RlcCA9IE4vMiAqIDggYnl0ZXMKKyAgICAgICAgVk1PViAgICBkWDBpWzFdLHplcm8KKyAgICAgICAgU1VCICAgICB0d1N0ZXAsc3RlcCxzdWJGRlRTaXplLExTTCAjMSAgICAgICAgICAgQC8vIHR3U3RlcCA9IDNOLzggKiA4IGJ5dGVzIHBvaW50aW5nIHRvIFdeMQorICAgICAgICAKKyAgICAgICAgVkFERCAgICBkWTByLGRYMHIsZFgwaSAgICAgICAgICAgICAgICAgICAgICAgICAgQC8vIEYoMCkgPSAoKFowLnIrWjAuaSkgLCAwKQorICAgICAgICBNT1YgICAgIHN0ZXAxLHN1YkZGVFNpemUsTFNMICMyICAgICAgICAgICAgICAgICBALy8gc3RlcDEgPSBOLzIgKiA0IGJ5dGVzCisgICAgICAgIFZTVUIgICAgZFkwaSxkWDByLGRYMGkgICAgICAgICAgICAgICAgICAgICAgICAgICAgQC8vIEYoTi8yKSA9ICgoWjAuci1aMC5pKSAsIDApCisgICAgICAgIFNVQlMgICAgc3ViRkZUU2l6ZSxzdWJGRlRTaXplLCMyCisgICAgICAgIAorICAgICAgICBWU1QxICAgIGRZMHIsW2FyZ0RzdF0sc3RlcAorICAgICAgICBBREQgICAgIHBUd2lkZGxlVG1wLGFyZ1R3aWRkbGUsIzggICAgICAgICAgICAgICAgQC8vIFdeMgorICAgICAgICBWU1QxICAgIGRZMGksW2FyZ0RzdF0hCisgICAgICAgIEFERCAgICAgYXJnVHdpZGRsZSxhcmdUd2lkZGxlLHR3U3RlcCAgICAgICAgICAgICBALy8gV14xIAorICAgICAgICAKKyAgICAgICAgVkRVUCAgICBkemVybyx6ZXJvCisgICAgICAgIFNVQiAgICAgYXJnRHN0LGFyZ0RzdCxzdGVwCisgICAgICAgIAorICAgICAgICBCTFQgICAgIEVuZAorICAgICAgICBCRVEgICAgIGxhc3RFbGVtZW50CisgICAgICAgIFNVQiAgICAgc3RlcCxzdGVwLCMyNAorICAgICAgICBTVUIgICAgIHN0ZXAxLHN0ZXAxLCM4ICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyAoTi80LTEpKjggYnl0ZXMKKyAgICAgICAgCisgICAgICAgIEAvLyBGKGspID0gMS8yW1ooaykgKyAgWicoTi8yLWspXSAtaipXXihrKSBbWihrKSAtICBaJyhOLzItayldCisgICAgICAgIEAvLyBOb3RlOiBXXmsgaXMgc3RvcmVkIGFzIG5lZ2F0aXZlIHZhbHVlcyBpbiB0aGUgdGFibGUKKyAgICAgICAgQC8vIFByb2Nlc3MgNCBlbGVtZW50cyBhdCBhIHRpbWUuIEUuZzogRigxKSxGKDIpIGFuZCBGKE4vMi0yKSxGKE4vMi0xKSBzaW5jZSBib3RoIG9mIHRoZW0KKyAgICAgICAgQC8vIHJlcXVpcmUgWigxKSxaKDIpIGFuZCBaKE4vMi0yKSxaKE4vMi0xKQorICAgICAgICAKKyAgICAgICAgCitldmVuT2RkQnV0dGVyZmx5TG9vcDoKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBWTEQxICAgIGRXMHIsW2FyZ1R3aWRkbGVdLHN0ZXAxCisgICAgICAgIFZMRDEgICAgZFcxcixbYXJnVHdpZGRsZV0hCisgICAgICAgIAorICAgICAgICBWTEQyICAgIHtkWDByLGRYMGl9LFtwU3JjXSxzdGVwCisgICAgICAgIFNVQiAgICAgYXJnVHdpZGRsZSxhcmdUd2lkZGxlLHN0ZXAxCisgICAgICAgIFZMRDIgICAge2RYMXIsZFgxaX0sW3BTcmNdIQorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBTVUIgICAgIHN0ZXAxLHN0ZXAxLCM4ICAgICAgICAgICAgICAgICAgICAgICAgICBALy8gKE4vNC0yKSo4IGJ5dGVzCisgICAgICAgIFZMRDEgICAgZFcwaSxbcFR3aWRkbGVUbXBdLHN0ZXAxCisgICAgICAgIFZMRDEgICAgZFcxaSxbcFR3aWRkbGVUbXBdIQorICAgICAgICBTVUIgICAgIHBTcmMscFNyYyxzdGVwCisgICAgICAgIAorICAgICAgICBTVUIgICAgIHBUd2lkZGxlVG1wLHBUd2lkZGxlVG1wLHN0ZXAxCisgICAgICAgIFZSRVY2NCAgZFgxcixkWDFyCisgICAgICAgIFZSRVY2NCAgZFgxaSxkWDFpCisgICAgICAgIFNVQlMgICAgc3ViRkZUU2l6ZSxzdWJGRlRTaXplLCM0CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAKKyAgICAgICAgVlNVQiAgICBkVDIsZFgwcixkWDFyICAgICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyBhLWMKKyAgICAgICAgU1VCICAgICBzdGVwMSxzdGVwMSwjOAorICAgICAgICBWQUREICAgIGRUMyxkWDBpLGRYMWkgICAgICAgICAgICAgICAgICAgICAgICAgICAgQC8vIGIrZAorICAgICAgICBWQUREICAgIGRUMCxkWDByLGRYMXIgICAgICAgICAgICAgICAgICAgICAgICAgICBALy8gYStjCisgICAgICAgIFZTVUIgICAgZFQxLGRYMGksZFgxaSAgICAgICAgICAgICAgICAgICAgICAgICAgICBALy8gYi1kCisgICAgICAgIFZIQUREICAgZFQwLGRUMCxkemVybworICAgICAgICBWSEFERCAgIGRUMSxkVDEsZHplcm8KKyAgICAgICAgCisgICAgICAgIFZaSVAgICAgZFcxcixkVzFpCisgICAgICAgIHZ6aXAgICAgZFcwcixkVzBpCisgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgVk1VTEwgICBxVDAsZFcxcixkVDIKKyAgICAgICAgVk1MQUwgICBxVDAsZFcxaSxkVDMKKyAgICAgICAgVk1VTEwgICBxVDEsZFcxcixkVDMKKyAgICAgICAgVk1MU0wgICBxVDEsZFcxaSxkVDIKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIFZNVUxMICAgcVQyLGRXMHIsZFQyCisgICAgICAgIFZNTFNMICAgcVQyLGRXMGksZFQzCisgICAgICAgIFZNVUxMICAgcVQzLGRXMHIsZFQzCisgICAgICAgIFZNTEFMICAgcVQzLGRXMGksZFQyCisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICBWUlNIUk4gIGRYMXIscVQwLCMzMgorICAgICAgICBWUlNIUk4gIGRYMWkscVQxLCMzMgorICAgICAgICAKKyAgICAgICAgVlNVQiAgICBkWTFyLGRUMCxkWDFpICAgICAgICAgICAgICAgICAgICAgICAgICAgQC8vIEYoTi8yIC0xKQorICAgICAgICBWQUREICAgIGRZMWksZFQxLGRYMXIKKyAgICAgICAgVk5FRyAgICBkWTFpLGRZMWkKKyAgICAgICAgCisgICAgICAgIFZSRVY2NCAgZFkxcixkWTFyCisgICAgICAgIFZSRVY2NCAgZFkxaSxkWTFpCisgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBWUlNIUk4gIGRYMHIscVQyLCMzMgorICAgICAgICBWUlNIUk4gIGRYMGkscVQzLCMzMgorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIFZTVUIgICAgZFkwcixkVDAsZFgwaSAgICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyBGKDEpCisgICAgICAgIFZBREQgICAgZFkwaSxkVDEsZFgwcgorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIFZTVDIgICAge2RZMHIsZFkwaX0sW2FyZ0RzdF0sc3RlcAorICAgICAgICBWU1QyICAgIHtkWTFyLGRZMWl9LFthcmdEc3RdIQorICAgICAgICBTVUIgICAgIGFyZ0RzdCxhcmdEc3Qsc3RlcAorICAgICAgICBTVUIgICAgIHN0ZXAsc3RlcCwjMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgQC8vIChOLzItNCkqOCBieXRlcworICAgICAgICAKKyAgICAgICAgCisgICAgICAgIEJHVCAgICAgZXZlbk9kZEJ1dHRlcmZseUxvb3AKKyAgICAgICAgCisgICAgICAgIFNVQiAgICAgcFNyYyxwU3JjLCM4ICAgICAgICAgICAgICAgIEAvLyBzZXQgYm90aCB0aGUgcHRycyB0byB0aGUgbGFzdCBlbGVtZW50CisgICAgICAgIFNVQiAgICAgYXJnRHN0LGFyZ0RzdCwjOAorICAgICAgICAKKyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgQC8vIExhc3QgZWxlbWVudCBjYW4gYmUgZXhwYW5kZWQgYXMgZm9sbG93cworICAgICAgICBALy8gMS8yW1ooaykgKyBaJyhrKV0gKyBqIHdeayBbWihrKSAtIFonKGspXQorICAgICAgICBALy8gMS8yWyhhK2piKSArIChhLWpiKV0gKyBqIHdeayBbKGEramIpIC0gKGEtamIpXQorICAgICAgICBALy8gMS8yWzJhK2owXSArIGogKGMramQpIFswK2oyYl0KKyAgICAgICAgQC8vIChhLWJjLCAtYmQpCisgICAgICAgIEAvLyBTaW5jZSAoYyxkKSA9ICgwLDEpIGZvciB0aGUgbGFzdCBlbGVtZW50LCByZXN1bHQgaXMganVzdCAoYSwtYikKKyAgICAgICAgCitsYXN0RWxlbWVudDoKKyAgICAgICAgVkxEMSAgICBkWDByLFtwU3JjXQorICAgICAgICAKKyAgICAgICAgVlNUMSAgICBkWDByWzBdLFthcmdEc3RdIQorICAgICAgICBWTkVHICAgIGRYMHIsZFgwcgorICAgICAgICBWU1QxICAgIGRYMHJbMV0sW2FyZ0RzdF0hCisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAKK0VuZDoKKyAgICAgICAgQC8vIFNldCByZXR1cm4gdmFsdWUKKyAgICAgICAgTU9WICAgICByZXN1bHQsICNPTVhfU3RzX05vRXJyICAgICAgIAorCisgICAgICAgIEAvLyBXcml0ZSBmdW5jdGlvbiB0YWlsCisgICAgICAgIE1fRU5ECisKKyAgICAgICAgLmVuZAorICAgICAgICAKZGlmZiAtLWdpdCBhL2RsL29teFNQX0ZGVEdldEJ1ZlNpemVfQ19GQzMyLmMgYi9kbC9vbXhTUF9GRlRHZXRCdWZTaXplX0NfRkMzMi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkNDM2ODYKLS0tIC9kZXYvbnVsbAorKysgYi9kbC9vbXhTUF9GRlRHZXRCdWZTaXplX0NfRkMzMi5jCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworCisjaW5jbHVkZSAiYXJtT01YLmgiCisjaW5jbHVkZSAiYXJtU1AuaCIKKyNpbmNsdWRlICJvbXhTUC5oIgorI2luY2x1ZGUgIm9teHR5cGVzLmgiCisKKworLyoqCisgKiBGdW5jdGlvbjogIG9teFNQX0ZGVEdldEJ1ZlNpemVfQ19GQzMyCisgKgorICogRGVzY3JpcHRpb246CisgKiBUaGVzZSBmdW5jdGlvbnMgY29tcHV0ZSB0aGUgc2l6ZSBvZiB0aGUgc3BlY2lmaWNhdGlvbiBzdHJ1Y3R1cmUKKyAqIHJlcXVpcmVkIGZvciB0aGUgbGVuZ3RoIDJeb3JkZXIgY29tcGxleCBGRlQgYW5kIElGRlQgZnVuY3Rpb25zLiBUaGUgZnVuY3Rpb24KKyAqIDxGRlRHZXRCdWZTaXplX0NfRkMzMj4gaXMgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSAzMi1iaXQgZnVuY3Rpb25zCisgKiA8RkZURndkX0NUb0NfRkMzMl9TZnM+IGFuZCA8RkZUSW52X0NUb0NfRkMzMl9TZnM+LgorICoKKyAqIElucHV0IEFyZ3VtZW50czoKKyAqCisgKiAgIG9yZGVyIC0gYmFzZS0yIGxvZ2FyaXRobSBvZiB0aGUgZGVzaXJlZCBibG9jayBsZW5ndGg7IHZhbGlkIGluIHRoZSByYW5nZQorICogICAgICAgICAgICBbMCwxMl0gKFswLDE1XSBpZiBCSUdfRkZUX1RBQkxFIGlzIGRlZmluZWQuKQorICoKKyAqIE91dHB1dCBBcmd1bWVudHM6CisgKgorICogICBwU2l6ZSAtIHBvaW50ZXIgdG8gdGhlIG51bWJlciBvZiBieXRlcyByZXF1aXJlZCBmb3IgdGhlIHNwZWNpZmljYXRpb24KKyAqICAgICAgICAgICAgc3RydWN0dXJlCisgKgorICogUmV0dXJuIFZhbHVlOgorICoKKyAqICAgIE9NWF9TdHNfTm9FcnIgLSBubyBlcnJvcgorICoKKyAqCisgKi8KKworT01YUmVzdWx0IG9teFNQX0ZGVEdldEJ1ZlNpemVfQ19GQzMyKE9NWF9JTlQgb3JkZXIsIE9NWF9JTlQgKnBTaXplKSB7CisgIGlmICghcFNpemUgfHwgKG9yZGVyIDwgMCkgfHwgKG9yZGVyID4gVFdJRERMRV9UQUJMRV9PUkRFUikpCisgICAgcmV0dXJuIE9NWF9TdHNfQmFkQXJnRXJyOworICAvKgorICAgKiBUaGUgcmVxdWlyZWQgc2l6ZSBpcyB0aGUgc2FtZSBhcyBmb3IgQ19TQzMyLCBiZWNhdXNlIHRoZQorICAgKiBlbGVtZW50cyBhcmUgdGhlIHNhbWUgc2l6ZSBhbmQgYmVjYXVzZSBBUk1zRkZUU3BlY19TQzMyIGlzCisgICAqIHRoZSBzYW1lIHNpemUgYXMgQVJNc0ZGVFNwZWNfRkMzMi4KKyAgICovCisgIHJldHVybiBvbXhTUF9GRlRHZXRCdWZTaXplX0NfU0MzMihvcmRlciwgcFNpemUpOworfQpkaWZmIC0tZ2l0IGEvZGwvb214U1BfRkZUR2V0QnVmU2l6ZV9DX1NDMTYuYyBiL2RsL29teFNQX0ZGVEdldEJ1ZlNpemVfQ19TQzE2LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2ExOTg0OAotLS0gL2Rldi9udWxsCisrKyBiL2RsL29teFNQX0ZGVEdldEJ1ZlNpemVfQ19TQzE2LmMKQEAgLTAsMCArMSw5OCBAQAorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICoKKyAqICBUaGlzIGZpbGUgd2FzIG9yaWdpbmFsbHkgbGljZW5zZWQgYXMgZm9sbG93cy4gSXQgaGFzIGJlZW4KKyAqICByZWxpY2Vuc2VkIHdpdGggcGVybWlzc2lvbiBmcm9tIHRoZSBjb3B5cmlnaHQgaG9sZGVycy4KKyAqLworCisvKioKKyAqIAorICogRmlsZSBOYW1lOiAgb214U1BfRkZUR2V0QnVmU2l6ZV9DX1NDMTYuYworICogT3Blbk1BWCBETDogdjEuMC4yCisgKiBMYXN0IE1vZGlmaWVkIFJldmlzaW9uOiAgIDk0NjgKKyAqIExhc3QgTW9kaWZpZWQgRGF0ZTogICAgICAgVGh1LCAwMyBKYW4gMjAwOAorICogCisgKiAoYykgQ29weXJpZ2h0IDIwMDctMjAwOCBBUk0gTGltaXRlZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIAorICogCisgKiBEZXNjcmlwdGlvbjoKKyAqIENvbXB1dGUgdGhlIHNpemUgb2YgdGhlIHNwZWNpZmljYXRpb24gc3RydWN0dXJlIHJlcXVpcmVkCisgKi8KKworI2luY2x1ZGUgIm9teHR5cGVzLmgiCisjaW5jbHVkZSAiYXJtT01YLmgiCisjaW5jbHVkZSAib214U1AuaCIKKworI2luY2x1ZGUgImFybUNPTU0uaCIKKyNpbmNsdWRlICJhcm1TUC5oIgorCisKKy8qKgorICogRnVuY3Rpb246ICBvbXhTUF9GRlRHZXRCdWZTaXplX0NfU0MxNiAgICgyLjIuNC4xLjYpCisgKgorICogRGVzY3JpcHRpb246CisgKiBUaGVzZSBmdW5jdGlvbnMgY29tcHV0ZSB0aGUgc2l6ZSBvZiB0aGUgc3BlY2lmaWNhdGlvbiBzdHJ1Y3R1cmUgCisgKiByZXF1aXJlZCBmb3IgdGhlIGxlbmd0aCAyXm9yZGVyIGNvbXBsZXggRkZUIGFuZCBJRkZUIGZ1bmN0aW9ucy4gVGhlIGZ1bmN0aW9uIAorICogPEZGVEdldEJ1ZlNpemVfQ19TQzE2PiBpcyB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIDE2LWJpdCBmdW5jdGlvbnMgCisgKiA8RkZURndkX0NUb0NfU0MxNl9TZnM+IGFuZCA8RkZUSW52X0NUb0NfU0MxNl9TZnM+LiAKKyAqCisgKiBJbnB1dCBBcmd1bWVudHM6CisgKiAgIAorICogICBvcmRlciAtIGJhc2UtMiBsb2dhcml0aG0gb2YgdGhlIGRlc2lyZWQgYmxvY2sgbGVuZ3RoOyB2YWxpZCBpbiB0aGUgcmFuZ2UgCisgKiAgICAgICAgICAgIFswLDEyXSAKKyAqCisgKiBPdXRwdXQgQXJndW1lbnRzOgorICogICAKKyAqICAgcFNpemUgLSBwb2ludGVyIHRvIHRoZSBudW1iZXIgb2YgYnl0ZXMgcmVxdWlyZWQgZm9yIHRoZSBzcGVjaWZpY2F0aW9uIAorICogICAgICAgICAgICBzdHJ1Y3R1cmUgCisgKgorICogUmV0dXJuIFZhbHVlOgorICogICAgCisgKiAgICBPTVhfU3RzX05vRXJyIC0gbm8gZXJyb3IgCisgKiAgICAKKyAqCisgKi8KKworCisKK09NWFJlc3VsdCBvbXhTUF9GRlRHZXRCdWZTaXplX0NfU0MxNigKKyAgICAgT01YX0lOVCBvcmRlciwKKyAgICAgT01YX0lOVCAqcFNpemUpCit7CisgICAgCisgICAgT01YX0lOVCAgICAgTix0d2lkZGxlU2l6ZTsKKyAgICAKKyAgICAvKiBDaGVjayBmb3Igb3JkZXIgemVybyAqLworICAgIGlmIChvcmRlciA9PSAwKQorICAgIHsKKyAgICAgICAgKnBTaXplID0gc2l6ZW9mKEFSTXNGRlRTcGVjX1NDMTYpOyAgIAorICAgICAgICByZXR1cm4gT01YX1N0c19Ob0VycjsKKyAgICB9CisKKyAgICAKKyAgICBOID0gMSA8PCBvcmRlcjsKKyAgICAKKyAgICAvKlRoZSBtYXggc2l6ZSBvZiB0aGUgdHdpZGRsZSB0YWJsZSBuZWVkZWQgaXMgM04vNCBmb3IgYSByYWRpeC00IHN0YWdlKi8KKyAgICB0d2lkZGxlU2l6ZSA9IDMqTi80OworCisgICAgLyogMiBwb2ludGVycyB0byBzdG9yZSBiaXRyZXZlcnNlZCBhcnJheSBhbmQgdHdpZGRsZSBmYWN0b3IgYXJyYXkgKi8KKyAgICAqcFNpemUgPSBzaXplb2YoQVJNc0ZGVFNwZWNfU0MxNikKKyAgICAgICAgLyogVHdpZGRsZSBmYWN0b3JzICAqLworICAgICAgICAgICArIHNpemVvZihPTVhfU0MxNikgKiB0d2lkZGxlU2l6ZQorICAgICAgICAvKiBQaW5nIFBvbmcgYnVmZmVyICAgKi8gICAKKyAgICAgICAgICAgKyBzaXplb2YoT01YX1NDMTYpICogTgorICAgICAgICAgICArIDYyIDsgIC8qIEV4dHJhIGJ5dGVzIHRvIGdldCAzMiBieXRlIGFsaWdubWVudCBvZiBwdHdpZGRsZSBhbmQgcEJ1ZiAqLworICAgICAgICAKKyAgICByZXR1cm4gT01YX1N0c19Ob0VycjsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVORCBPRiBGSUxFCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKZGlmZiAtLWdpdCBhL2RsL29teFNQX0ZGVEdldEJ1ZlNpemVfQ19TQzMyLmMgYi9kbC9vbXhTUF9GRlRHZXRCdWZTaXplX0NfU0MzMi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3ZWY2NWIKLS0tIC9kZXYvbnVsbAorKysgYi9kbC9vbXhTUF9GRlRHZXRCdWZTaXplX0NfU0MzMi5jCkBAIC0wLDAgKzEsOTQgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqCisgKiAgVGhpcyBmaWxlIHdhcyBvcmlnaW5hbGx5IGxpY2Vuc2VkIGFzIGZvbGxvd3MuIEl0IGhhcyBiZWVuCisgKiAgcmVsaWNlbnNlZCB3aXRoIHBlcm1pc3Npb24gZnJvbSB0aGUgY29weXJpZ2h0IGhvbGRlcnMuCisgKi8KKworLyoqCisgKiAKKyAqIEZpbGUgTmFtZTogIG9teFNQX0ZGVEdldEJ1ZlNpemVfQ19TQzMyLmMKKyAqIE9wZW5NQVggREw6IHYxLjAuMgorICogTGFzdCBNb2RpZmllZCBSZXZpc2lvbjogICA5NDY4CisgKiBMYXN0IE1vZGlmaWVkIERhdGU6ICAgICAgIFRodSwgMDMgSmFuIDIwMDgKKyAqIAorICogKGMpIENvcHlyaWdodCAyMDA3LTIwMDggQVJNIExpbWl0ZWQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiAKKyAqIAorICogRGVzY3JpcHRpb246CisgKiBDb21wdXRlIHRoZSBzaXplIG9mIHRoZSBzcGVjaWZpY2F0aW9uIHN0cnVjdHVyZSByZXF1aXJlZAorICovCisKKyNpbmNsdWRlICJvbXh0eXBlcy5oIgorI2luY2x1ZGUgImFybU9NWC5oIgorI2luY2x1ZGUgIm9teFNQLmgiCisKKyNpbmNsdWRlICJhcm1TUC5oIgorCisvKioKKyAqIEZ1bmN0aW9uOiAgb214U1BfRkZUR2V0QnVmU2l6ZV9DX1NDMzIgICAoMi4yLjQuMS42KQorICoKKyAqIERlc2NyaXB0aW9uOgorICogVGhlc2UgZnVuY3Rpb25zIGNvbXB1dGUgdGhlIHNpemUgb2YgdGhlIHNwZWNpZmljYXRpb24gc3RydWN0dXJlIAorICogcmVxdWlyZWQgZm9yIHRoZSBsZW5ndGggMl5vcmRlciBjb21wbGV4IEZGVCBhbmQgSUZGVCBmdW5jdGlvbnMuIFRoZSBmdW5jdGlvbiAKKyAqIDxGRlRHZXRCdWZTaXplX0NfU0MzMj4gaXMgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSAzMi1iaXQgZnVuY3Rpb25zIAorICogPEZGVEZ3ZF9DVG9DX1NDMzJfU2ZzPiBhbmQgPEZGVEludl9DVG9DX1NDMzJfU2ZzPi4gCisgKgorICogSW5wdXQgQXJndW1lbnRzOgorICogICAKKyAqICAgb3JkZXIgLSBiYXNlLTIgbG9nYXJpdGhtIG9mIHRoZSBkZXNpcmVkIGJsb2NrIGxlbmd0aDsgdmFsaWQgaW4gdGhlIHJhbmdlIAorICogICAgICAgICAgICBbMCwxMl0gCisgKgorICogT3V0cHV0IEFyZ3VtZW50czoKKyAqICAgCisgKiAgIHBTaXplIC0gcG9pbnRlciB0byB0aGUgbnVtYmVyIG9mIGJ5dGVzIHJlcXVpcmVkIGZvciB0aGUgc3BlY2lmaWNhdGlvbiAKKyAqICAgICAgICAgICAgc3RydWN0dXJlIAorICoKKyAqIFJldHVybiBWYWx1ZToKKyAqICAgIAorICogICAgT01YX1N0c19Ob0VyciAtIG5vIGVycm9yIAorICogICAgCisgKgorICovCisKKworT01YUmVzdWx0IG9teFNQX0ZGVEdldEJ1ZlNpemVfQ19TQzMyKAorICAgICBPTVhfSU5UIG9yZGVyLAorICAgICBPTVhfSU5UICpwU2l6ZSkKK3sKKyAgICAKKyAgICBPTVhfSU5UICAgICBOLHR3aWRkbGVTaXplOworCisgICAgLyogQ2hlY2sgZm9yIG9yZGVyIHplcm8gKi8KKyAgICBpZiAob3JkZXIgPT0gMCkKKyAgICB7CisgICAgICAgICpwU2l6ZSA9IHNpemVvZihBUk1zRkZUU3BlY19TQzMyKTsgICAKKyAgICAgICAgcmV0dXJuIE9NWF9TdHNfTm9FcnI7CisgICAgfQorCisgICAgCisgICAgTiA9IDEgPDwgb3JkZXI7CisgICAgCisgICAgLypUaGUgbWF4IHNpemUgb2YgdGhlIHR3aWRkbGUgdGFibGUgbmVlZGVkIGlzIDNOLzQgZm9yIGEgcmFkaXgtNCBzdGFnZSovCisgICAgdHdpZGRsZVNpemUgPSAzKk4vNDsKKyAgICAKKyAgICAqcFNpemUgPSBzaXplb2YoQVJNc0ZGVFNwZWNfU0MzMikKKyAgICAgICAgLyogTiBUd2lkZGxlIGZhY3RvcnMgICovCisgICAgICAgICAgICsgc2l6ZW9mKE9NWF9TQzMyKSAqIHR3aWRkbGVTaXplCisgICAgICAgIC8qIFBpbmcgUG9uZyBidWZmZXIgICAqLyAgIAorICAgICAgICAgICArIHNpemVvZihPTVhfU0MzMikgKiBOCisgICAgICAgICAgICsgNjIgOyAgLyogRXh0cmEgYnl0ZXMgdG8gZ2V0IDMyIGJ5dGUgYWxpZ25tZW50IG9mIHB0d2lkZGxlIGFuZCBwQnVmICovIAorICAgICAgICAgICAgCisgICAgcmV0dXJuIE9NWF9TdHNfTm9FcnI7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFTkQgT0YgRklMRQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCmRpZmYgLS1naXQgYS9kbC9vbXhTUF9GRlRHZXRCdWZTaXplX1JfRjMyLmMgYi9kbC9vbXhTUF9GRlRHZXRCdWZTaXplX1JfRjMyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWYyNzg3YgotLS0gL2Rldi9udWxsCisrKyBiL2RsL29teFNQX0ZGVEdldEJ1ZlNpemVfUl9GMzIuYwpAQCAtMCwwICsxLDUwIEBACisvKgorICogIENvcHlyaWdodCAoYykgMjAxMyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKgorICovCisKKyNpbmNsdWRlICJhcm1DT01NLmgiCisjaW5jbHVkZSAiYXJtT01YLmgiCisjaW5jbHVkZSAiYXJtU1AuaCIKKyNpbmNsdWRlICJvbXhTUC5oIgorI2luY2x1ZGUgIm9teHR5cGVzLmgiCisKKy8qKgorICogRnVuY3Rpb246IG9teFNQX0ZGVEdldEJ1ZlNpemVfUl9GMzIKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIENvbXB1dGVzIHRoZSBzaXplIG9mIHRoZSBzcGVjaWZpY2F0aW9uIHN0cnVjdHVyZSByZXF1aXJlZCBmb3IgdGhlIGxlbmd0aAorICogMl5vcmRlciByZWFsIEZGVCBhbmQgSUZGVCBmdW5jdGlvbnMuCisgKgorICogUmVtYXJrczoKKyAqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSAzMi1iaXQgZnVuY3Rpb25zCisgKiA8RkZURndkX1JUb0NDU19GMzJfU2ZzPiBhbmQgPEZGVEludl9DQ1NUb1JfRjMyX1Nmcz4uCisgKgorICogUGFyYW1ldGVyczoKKyAqIFtpbl0gIG9yZGVyICAgICAgIGJhc2UtMiBsb2dhcml0aG0gb2YgdGhlIGxlbmd0aDsgdmFsaWQgaW4gdGhlIHJhbmdlCisgKiAgICAgICAgICAgICAgICAgICAgWzAsMTJdLiAoWzAsMTVdIGlmIEJJR19GRlRfVEFCTEUgaXMgZGVmaW5lZC4pCisgKiBbb3V0XSBwU2l6ZQkgICBwb2ludGVyIHRvIHRoZSBudW1iZXIgb2YgYnl0ZXMgcmVxdWlyZWQgZm9yIHRoZQorICoJCQkgICBzcGVjaWZpY2F0aW9uIHN0cnVjdHVyZS4KKyAqCisgKiBSZXR1cm4gVmFsdWU6CisgKiBTdGFuZGFyZCBvbXhFcnJvciByZXN1bHQuIFNlZSBlbnVtZXJhdGlvbiBmb3IgcG9zc2libGUgcmVzdWx0IGNvZGVzLgorICoKKyAqLworCitPTVhSZXN1bHQgb214U1BfRkZUR2V0QnVmU2l6ZV9SX0YzMihPTVhfSU5UIG9yZGVyLCBPTVhfSU5UICpwU2l6ZSkgeworICBpZiAoIXBTaXplIHx8IChvcmRlciA8IDApIHx8IChvcmRlciA+IFRXSURETEVfVEFCTEVfT1JERVIpKQorICAgIHJldHVybiBPTVhfU3RzX0JhZEFyZ0VycjsKKworICAvKgorICAgKiBUaGUgcmVxdWlyZWQgc2l6ZSBpcyB0aGUgc2FtZSBhcyBmb3IgUl9TMzIsIGJlY2F1c2UgdGhlCisgICAqIGVsZW1lbnRzIGFyZSB0aGUgc2FtZSBzaXplIGFuZCBiZWNhdXNlIEFSTXNGRlRTcGVjX1JfU0MzMiBpcworICAgKiB0aGUgc2FtZSBzaXplIGFzIEFSTXNGRlRTcGVjX1JfRkMzMi4KKyAgICovCisgIHJldHVybiBvbXhTUF9GRlRHZXRCdWZTaXplX1JfUzMyKG9yZGVyLCBwU2l6ZSk7Cit9CmRpZmYgLS1naXQgYS9kbC9vbXhTUF9GRlRHZXRCdWZTaXplX1JfUzE2UzMyLmMgYi9kbC9vbXhTUF9GRlRHZXRCdWZTaXplX1JfUzE2UzMyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjZmMWYzMQotLS0gL2Rldi9udWxsCisrKyBiL2RsL29teFNQX0ZGVEdldEJ1ZlNpemVfUl9TMTZTMzIuYwpAQCAtMCwwICsxLDkyIEBACisvKgorICogIENvcHlyaWdodCAoYykgMjAxMyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKgorICogIFRoaXMgZmlsZSB3YXMgb3JpZ2luYWxseSBsaWNlbnNlZCBhcyBmb2xsb3dzLiBJdCBoYXMgYmVlbgorICogIHJlbGljZW5zZWQgd2l0aCBwZXJtaXNzaW9uIGZyb20gdGhlIGNvcHlyaWdodCBob2xkZXJzLgorICovCisKKy8qKgorICogCisgKiBGaWxlIE5hbWU6ICBvbXhTUF9GRlRHZXRCdWZTaXplX1JfUzE2UzMyLmMKKyAqIE9wZW5NQVggREw6IHYxLjAuMgorICogTGFzdCBNb2RpZmllZCBSZXZpc2lvbjogICA3Nzc3CisgKiBMYXN0IE1vZGlmaWVkIERhdGU6ICAgICAgIFRodSwgMjcgU2VwIDIwMDcKKyAqIAorICogKGMpIENvcHlyaWdodCAyMDA3LTIwMDggQVJNIExpbWl0ZWQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiAKKyAqIAorICogRGVzY3JpcHRpb246CisgKiBDb21wdXRlcyB0aGUgc2l6ZSBvZiB0aGUgc3BlY2lmaWNhdGlvbiBzdHJ1Y3R1cmUgcmVxdWlyZWQuCisgKi8KKworI2luY2x1ZGUgIm9teHR5cGVzLmgiCisjaW5jbHVkZSAiYXJtT01YLmgiCisjaW5jbHVkZSAib214U1AuaCIKKyNpbmNsdWRlICJhcm1DT01NLmgiCisjaW5jbHVkZSAiYXJtU1AuaCIKKworLyoqCisgKiBGdW5jdGlvbjogb214U1BfRkZUR2V0QnVmU2l6ZV9SX1MxNlMzMgorICoKKyAqIERlc2NyaXB0aW9uOgorICogQ29tcHV0ZXMgdGhlIHNpemUgb2YgdGhlIHNwZWNpZmljYXRpb24gc3RydWN0dXJlIHJlcXVpcmVkIGZvciB0aGUgbGVuZ3RoCisgKiAyXm9yZGVyIHJlYWwgRkZUIGFuZCBJRkZUIGZ1bmN0aW9ucy4KKyAqCisgKiBSZW1hcmtzOgorICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIDE2LWJpdCBmdW5jdGlvbnMKKyAqIDxGRlRGd2RfUlRvQ0NTX1MxNl9TMzJfU2ZzPiBhbmQgPEZGVEludl9DQ1NUb1JfUzMyX1MxNl9TZnM+LgorICoKKyAqIFBhcmFtZXRlcnM6CisgKiBbaW5dICBvcmRlciAgICAgICBiYXNlLTIgbG9nYXJpdGhtIG9mIHRoZSBsZW5ndGg7IHZhbGlkIGluIHRoZSByYW5nZQorICoJCQkgICBbMCwxMl0uCisgKiBbb3V0XSBwU2l6ZQkgICBwb2ludGVyIHRvIHRoZSBudW1iZXIgb2YgYnl0ZXMgcmVxdWlyZWQgZm9yIHRoZQorICoJCQkgICBzcGVjaWZpY2F0aW9uIHN0cnVjdHVyZS4KKyAqCisgKiBSZXR1cm4gVmFsdWU6CisgKiBTdGFuZGFyZCBvbXhFcnJvciByZXN1bHQuIFNlZSBlbnVtZXJhdGlvbiBmb3IgcG9zc2libGUgcmVzdWx0IGNvZGVzLgorICoKKyAqLworCitPTVhSZXN1bHQgb214U1BfRkZUR2V0QnVmU2l6ZV9SX1MxNlMzMigKKyAgICAgT01YX0lOVCBvcmRlciwgICAgIAorICAgICBPTVhfSU5UICpwU2l6ZQorICkKK3sKKyAgICBPTVhfSU5UICAgICBOQnkyLE4sdHdpZGRsZVNpemU7CisgICAgCisgICAgCisgICAgLyogQ2hlY2sgZm9yIG9yZGVyIHplcm8gKi8KKyAgICBpZiAob3JkZXIgPT0gMCkKKyAgICB7CisgICAgICAgICpwU2l6ZSA9IHNpemVvZihBUk1zRkZUU3BlY19SX1NDMzIpICAKKyAgICAgICAgICAgICAgICAgKyBzaXplb2YoT01YX1MzMikgKiAoMik7IC8qIEV4dHJhIHNpemUgJ04nIGlzIHVzZWQgaW4gRkZUSW52X0NDU1RvUl9TMzJTMTZfU2ZzIGFzIGEgdGVtcG9yYXJ5IGJ1ZiAqLyAgIAorICAgICAgICAKKyAgICAgICAgcmV0dXJuIE9NWF9TdHNfTm9FcnI7CisgICAgfQorICAgIAorICAgIE5CeTIgPSAxIDw8IChvcmRlciAtIDEpOworICAgIE4gPSBOQnkyPDwxOworICAgIHR3aWRkbGVTaXplID0gNSpOLzg7ICAgICAgICAgICAgLyogMy80KE4vMikgKyBOLzQgKi8KKyAgICAKKyAgICAvKiAyIHBvaW50ZXJzIHRvIHN0b3JlIGJpdHJldmVyc2VkIGFycmF5IGFuZCB0d2lkZGxlIGZhY3RvciBhcnJheSAqLworICAgICpwU2l6ZSA9IHNpemVvZihBUk1zRkZUU3BlY19SX1NDMzIpCisgICAgICAgIC8qIFR3aWRkbGUgZmFjdG9ycyAgKi8KKyAgICAgICAgICAgKyBzaXplb2YoT01YX1NDMzIpICogdHdpZGRsZVNpemUKKyAgICAgICAgLyogUGluZyBQb25nIGJ1ZmZlciBmb3IgZG9pbmcgdGhlIE4vMiBwb2ludCBjb21wbGV4IEZGVCAgKi8gICAgICAKKyAgICAgICAgICAgKyBzaXplb2YoT01YX1MzMikgKiAoTjw8MSkgIC8qIEV4dHJhIHNpemUgJ04nIGlzIHVzZWQgaW4gRkZUSW52X0NDU1RvUl9TMzJTMTZfU2ZzIGFzIGEgdGVtcG9yYXJ5IGJ1ZiAqLworICAgICAgICAgICArIDYyIDsgIC8qIEV4dHJhIGJ5dGVzIHRvIGdldCAzMiBieXRlIGFsaWdubWVudCBvZiBwdHdpZGRsZSBhbmQgcEJ1ZiAqLyAKKyAgICAgICAgICAgCisgICAgICAgICAgIAorICAgIHJldHVybiBPTVhfU3RzX05vRXJyOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRU5EIE9GIEZJTEUKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwpkaWZmIC0tZ2l0IGEvZGwvb214U1BfRkZUR2V0QnVmU2l6ZV9SX1MzMi5jIGIvZGwvb214U1BfRkZUR2V0QnVmU2l6ZV9SX1MzMi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBiZTU5NmUKLS0tIC9kZXYvbnVsbAorKysgYi9kbC9vbXhTUF9GRlRHZXRCdWZTaXplX1JfUzMyLmMKQEAgLTAsMCArMSw5MiBAQAorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICoKKyAqICBUaGlzIGZpbGUgd2FzIG9yaWdpbmFsbHkgbGljZW5zZWQgYXMgZm9sbG93cy4gSXQgaGFzIGJlZW4KKyAqICByZWxpY2Vuc2VkIHdpdGggcGVybWlzc2lvbiBmcm9tIHRoZSBjb3B5cmlnaHQgaG9sZGVycy4KKyAqLworCisvKioKKyAqIAorICogRmlsZSBOYW1lOiAgb214U1BfRkZUR2V0QnVmU2l6ZV9SX1MzMi5jCisgKiBPcGVuTUFYIERMOiB2MS4wLjIKKyAqIExhc3QgTW9kaWZpZWQgUmV2aXNpb246ICAgNzc3NworICogTGFzdCBNb2RpZmllZCBEYXRlOiAgICAgICBUaHUsIDI3IFNlcCAyMDA3CisgKiAKKyAqIChjKSBDb3B5cmlnaHQgMjAwNy0yMDA4IEFSTSBMaW1pdGVkLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogCisgKiAKKyAqIERlc2NyaXB0aW9uOgorICogQ29tcHV0ZXMgdGhlIHNpemUgb2YgdGhlIHNwZWNpZmljYXRpb24gc3RydWN0dXJlIHJlcXVpcmVkLgorICovCisKKyNpbmNsdWRlICJvbXh0eXBlcy5oIgorI2luY2x1ZGUgImFybU9NWC5oIgorI2luY2x1ZGUgIm9teFNQLmgiCisjaW5jbHVkZSAiYXJtQ09NTS5oIgorI2luY2x1ZGUgImFybVNQLmgiCisKKy8qKgorICogRnVuY3Rpb246IG9teFNQX0ZGVEdldEJ1ZlNpemVfUl9TMzIKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIENvbXB1dGVzIHRoZSBzaXplIG9mIHRoZSBzcGVjaWZpY2F0aW9uIHN0cnVjdHVyZSByZXF1aXJlZCBmb3IgdGhlIGxlbmd0aAorICogMl5vcmRlciByZWFsIEZGVCBhbmQgSUZGVCBmdW5jdGlvbnMuCisgKgorICogUmVtYXJrczoKKyAqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSAzMi1iaXQgZnVuY3Rpb25zCisgKiA8RkZURndkX1JUb0NDU19TMzJfU2ZzPiBhbmQgPEZGVEludl9DQ1NUb1JfUzMyX1Nmcz4uCisgKgorICogUGFyYW1ldGVyczoKKyAqIFtpbl0gIG9yZGVyICAgICAgIGJhc2UtMiBsb2dhcml0aG0gb2YgdGhlIGxlbmd0aDsgdmFsaWQgaW4gdGhlIHJhbmdlCisgKgkJCSAgIFswLDEyXS4KKyAqIFtvdXRdIHBTaXplCSAgIHBvaW50ZXIgdG8gdGhlIG51bWJlciBvZiBieXRlcyByZXF1aXJlZCBmb3IgdGhlCisgKgkJCSAgIHNwZWNpZmljYXRpb24gc3RydWN0dXJlLgorICoKKyAqIFJldHVybiBWYWx1ZToKKyAqIFN0YW5kYXJkIG9teEVycm9yIHJlc3VsdC4gU2VlIGVudW1lcmF0aW9uIGZvciBwb3NzaWJsZSByZXN1bHQgY29kZXMuCisgKgorICovCisKK09NWFJlc3VsdCBvbXhTUF9GRlRHZXRCdWZTaXplX1JfUzMyKAorICAgICBPTVhfSU5UIG9yZGVyLCAgICAgCisgICAgIE9NWF9JTlQgKnBTaXplCisgKQoreworICAgIE9NWF9JTlQgICAgIE5CeTIsTix0d2lkZGxlU2l6ZTsKKyAgICAKKyAgICAKKyAgICAvKiBDaGVjayBmb3Igb3JkZXIgemVybyAqLworICAgIGlmIChvcmRlciA9PSAwKQorICAgIHsKKyAgICAgICAgKnBTaXplID0gc2l6ZW9mKEFSTXNGRlRTcGVjX1JfU0MzMikKKyAgICAgICAgICAgICAgICArIHNpemVvZihPTVhfUzMyKSAqICgyKTsgLyogRXh0cmEgc2l6ZSAnTicgaXMgdXNlZCBpbiBGRlRJbnZfQ0NTVG9SX1MzMlMxNl9TZnMgYXMgYSB0ZW1wb3JhcnkgYnVmICovICAgCisKKyAgICAgICAgcmV0dXJuIE9NWF9TdHNfTm9FcnI7CisgICAgfQorICAgIAorICAgIE5CeTIgPSAxIDw8IChvcmRlciAtIDEpOworICAgIE4gPSBOQnkyPDwxOworICAgIHR3aWRkbGVTaXplID0gNSpOLzg7ICAgICAgICAgICAgLyogMy80KE4vMikgKyBOLzQgKi8KKyAgICAKKyAgICAvKiAyIHBvaW50ZXJzIHRvIHN0b3JlIGJpdHJldmVyc2VkIGFycmF5IGFuZCB0d2lkZGxlIGZhY3RvciBhcnJheSAqLworICAgICpwU2l6ZSA9IHNpemVvZihBUk1zRkZUU3BlY19SX1NDMzIpCisgICAgICAgIC8qIFR3aWRkbGUgZmFjdG9ycyAgKi8KKyAgICAgICAgICAgKyBzaXplb2YoT01YX1NDMzIpICogdHdpZGRsZVNpemUKKyAgICAgICAgLyogUGluZyBQb25nIGJ1ZmZlciBmb3IgZG9pbmcgdGhlIE4vMiBwb2ludCBjb21wbGV4IEZGVCAgKi8gICAgICAKKyAgICAgICAgICAgKyBzaXplb2YoT01YX1MzMikgKiAoTjw8MSkgIC8qIEV4dHJhIHNpemUgJ04nIGlzIHVzZWQgaW4gRkZUSW52X0NDU1RvUl9TMzJfU2ZzIGFzIGEgdGVtcG9yYXJ5IGJ1ZiAqLworICAgICAgICAgICArIDYyIDsgIC8qIEV4dHJhIGJ5dGVzIHRvIGdldCAzMiBieXRlIGFsaWdubWVudCBvZiBwdHdpZGRsZSBhbmQgcEJ1ZiAqLyAKKyAgICAgICAgICAgCisgICAgICAgICAgIAorICAgIHJldHVybiBPTVhfU3RzX05vRXJyOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRU5EIE9GIEZJTEUKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwpkaWZmIC0tZ2l0IGEvZGwvb214U1BfRkZUSW5pdF9DX0ZDMzIuYyBiL2RsL29teFNQX0ZGVEluaXRfQ19GQzMyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2NiMTVlZAotLS0gL2Rldi9udWxsCisrKyBiL2RsL29teFNQX0ZGVEluaXRfQ19GQzMyLmMKQEAgLTAsMCArMSwxNjggQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqCisgKiAgVGhpcyBpcyBhIG1vZGlmaWNhdGlvbiBvZiBvbXhTUF9GRlRJbml0X0NfU0MzMi5jIHRvIHN1cHBvcnQKKyAqICBjb21wbGV4IGZsb2F0IGluc3RlYWQgb2YgU0MzMi4KKyAqLworCisjaW5jbHVkZSAiYXJtQ09NTS5oIgorI2luY2x1ZGUgImFybU9NWC5oIgorI2luY2x1ZGUgImFybVNQLmgiCisjaW5jbHVkZSAib214U1AuaCIKKyNpbmNsdWRlICJvbXh0eXBlcy5oIgorCisKKy8qKgorICogRnVuY3Rpb246IG9teFNQX0ZGVEluaXRfQ19GQzMyCisgKgorICogRGVzY3JpcHRpb246CisgKiBJbml0aWFsaXplcyB0aGUgc3BlY2lmaWNhdGlvbiBzdHJ1Y3R1cmVzIHJlcXVpcmVkIGZvciB0aGUKKyAqIGNvbXBsZXggRkZUIGFuZCBJRkZUIGZ1bmN0aW9ucy4KKyAqCisgKiBSZW1hcmtzOgorICogRGVzaXJlZCBibG9jayBsZW5ndGggaXMgc3BlY2lmaWVkIGFzIGFuIGlucHV0LiBUaGUgZnVuY3Rpb24gaXMgdXNlZCB0bworICogaW5pdGlhbGl6ZSB0aGUgc3BlY2lmaWNhdGlvbiBzdHJ1Y3R1cmVzIGZvciBmdW5jdGlvbnMgPEZGVEZ3ZF9DVG9DX0ZDMzJfU2ZzPgorICogYW5kIDxGRlRJbnZfQ1RvQ19GQzMyX1Nmcz4uIE1lbW9yeSBmb3IgdGhlIHNwZWNpZmljYXRpb24gc3RydWN0dXJlICpwRkZUU3BlYworICogbXVzdCBiZSBhbGxvY2F0ZWQgcHJpb3IgdG8gY2FsbGluZyB0aGlzIGZ1bmN0aW9uLiBUaGUgc3BhY2UgcmVxdWlyZWQgZm9yCisgKiAqcEZGVFNwZWMsIGluIGJ5dGVzLCBjYW4gYmUgZGV0ZXJtaW5lZCB1c2luZyA8RkZUR2V0QnVmU2l6ZV9DX0ZDMzI+LgorICoKKyAqIFBhcmFtZXRlcnM6CisgKiBbaW5dICBvcmRlciAgICAgICBiYXNlLTIgbG9nYXJpdGhtIG9mIHRoZSBkZXNpcmVkIGJsb2NrIGxlbmd0aDsKKyAqICAgICAgICAgICAgICAgICAgICAgdmFsaWQgaW4gdGhlIHJhbmdlIFswLDEyXS4KKyAqIFtvdXRdIHBGRlRTcGVjICAgIHBvaW50ZXIgdG8gaW5pdGlhbGl6ZWQgc3BlY2lmaWNhdGlvbiBzdHJ1Y3R1cmUuCisgKgorICogUmV0dXJuIFZhbHVlOgorICogU3RhbmRhcmQgb214RXJyb3IgcmVzdWx0LiBTZWUgZW51bWVyYXRpb24gZm9yIHBvc3NpYmxlIHJlc3VsdCBjb2Rlcy4KKyAqCisgKi8KKworT01YUmVzdWx0IG9teFNQX0ZGVEluaXRfQ19GQzMyKE9NWEZGVFNwZWNfQ19GQzMyKiBwRkZUU3BlYywgT01YX0lOVCBvcmRlcikgeworICBPTVhfSU5UIGk7CisgIE9NWF9JTlQgajsKKyAgT01YX0ZDMzIqIHBUd2lkZGxlOworICBPTVhfRkMzMiogcEJ1ZjsKKyAgT01YX1UxNiogcEJpdFJldjsKKyAgT01YX1UzMiBwVG1wOworICBPTVhfSU5UIE5ieTI7CisgIE9NWF9JTlQgTjsKKyAgT01YX0lOVCBNOworICBPTVhfSU5UIGRpZmY7CisgIE9NWF9JTlQgc3RlcDsKKyAgQVJNc0ZGVFNwZWNfRkMzMiogcEZGVFN0cnVjdCA9IDA7CisgIE9NWF9GMzIgeDsKKyAgT01YX0YzMiB5OworICBPTVhfRjMyIHhOZWc7CisKKyAgcEZGVFN0cnVjdCA9IChBUk1zRkZUU3BlY19GQzMyICopIHBGRlRTcGVjOworCisgIC8qIGlmIG9yZGVyIHplcm8gbm8gaW5pdCBpcyBuZWVkZWQgKi8KKyAgaWYgKG9yZGVyID09IDApIHsKKyAgICBwRkZUU3RydWN0LT5OID0gMTsKKyAgICByZXR1cm4gT01YX1N0c19Ob0VycjsKKyAgfQorCisgIC8qIFZhbGlkYXRlIGFyZ3MgKi8KKyAgaWYgKCFwRkZUU3BlYyB8fCAob3JkZXIgPCAwKSB8fCAob3JkZXIgPiBUV0lERExFX1RBQkxFX09SREVSKSkKKyAgICByZXR1cm4gT01YX1N0c19CYWRBcmdFcnI7CisKKyAgLyogRG8gdGhlIGluaXRpYWxpemF0aW9ucyAqLworICBOYnkyID0gMSA8PCAob3JkZXIgLSAxKTsKKyAgTiA9IE5ieTIgPDwgMTsKKyAgTSA9IE4gPj4gMzsKKworICAvKiBvcHRpbWl6ZWQgaW1wbGVtZW50YXRpb25zIGRvbid0IHVzZSBiaXRyZXZlcnNhbCAqLworICBwQml0UmV2ID0gTlVMTDsKKworICBwVHdpZGRsZSA9IChPTVhfRkMzMiAqKSAoc2l6ZW9mKEFSTXNGRlRTcGVjX0ZDMzIpICsgKE9NWF9TOCopIHBGRlRTcGVjKTsKKworICAvKiBBbGlnbiB0byAzMiBieXRlIGJvdW5kYXJ5ICovCisgIHBUbXAgPSAoKE9NWF9VMzIpIHBUd2lkZGxlKSAmIDMxOworICBpZiAocFRtcCkKKyAgICBwVHdpZGRsZSA9IChPTVhfRkMzMiopICgoT01YX1M4KilwVHdpZGRsZSArICgzMiAtIHBUbXApKTsKKworICBwQnVmID0gKE9NWF9GQzMyKikgKHNpemVvZihPTVhfRkMzMikgKiAoMyAqIE4gLyA0KSArIChPTVhfUzgqKSBwVHdpZGRsZSk7CisKKyAgLyogQWxpZ24gdG8gMzIgYnl0ZSBib3VuZGFyeSAqLworICBwVG1wID0gKChPTVhfVTMyKXBCdWYpICYgMzE7CisgIGlmIChwVG1wKQorICAgIHBCdWYgPSAoT01YX0ZDMzIqKSAoKE9NWF9TOCopcEJ1ZiArICgzMiAtIHBUbXApKTsKKworICAvKgorICAgKiBGaWxsaW5nIFR3aWRkbGUgZmFjdG9ycyA6CisgICAqCisgICAqIFRoZSBvcmlnaW5hbCB0d2lkZGxlIHRhYmxlICJhcm1TUF9GRlRfUzMyVHdpZGRsZVRhYmxlIiBpcyBvZiBzaXplCisgICAqIChNYXhTaXplLzggKyAxKSBSZXN0IG9mIHRoZSB2YWx1ZXMgaS5lLiwgdXB0byBNYXhTaXplIGFyZQorICAgKiBjYWxjdWxhdGVkIHVzaW5nIHRoZSBzeW1tZXRyaWVzIG9mIHNpbiBhbmQgY29zIFRoZSBtYXggc2l6ZSBvZgorICAgKiB0aGUgdHdpZGRsZSB0YWJsZSBuZWVkZWQgaXMgM04vNCBmb3IgYSByYWRpeC00IHN0YWdlCisgICAqCisgICAqIFcgPSAoLTIgKiBQSSkgLyBOCisgICAqIE4gPSAxIDw8IG9yZGVyCisgICAqIFcgPSAtUEkgPj4gKG9yZGVyIC0gMSkKKyAgICovCisKKyAgZGlmZiA9IFRXSURETEVfVEFCTEVfT1JERVIgLSBvcmRlcjsKKyAgLyogc3RlcCBpbnRvIHRoZSB0d2lkZGxlIHRhYmxlIGZvciB0aGUgY3VycmVudCBvcmRlciAqLworICBzdGVwID0gMSA8PCBkaWZmOworCisgIHggPSBhcm1TUF9GRlRfRjMyVHdpZGRsZVRhYmxlWzBdOworICB5ID0gYXJtU1BfRkZUX0YzMlR3aWRkbGVUYWJsZVsxXTsKKyAgeE5lZyA9IDE7CisKKyAgaWYgKG9yZGVyID49IDMpIHsKKyAgICAvKiBpID0gMCBjYXNlICovCisgICAgcFR3aWRkbGVbMF0uUmUgPSB4OworICAgIHBUd2lkZGxlWzBdLkltID0geTsKKyAgICBwVHdpZGRsZVsyICogTV0uUmUgPSAteTsKKyAgICBwVHdpZGRsZVsyICogTV0uSW0gPSB4TmVnOworICAgIHBUd2lkZGxlWzQgKiBNXS5SZSA9IHhOZWc7CisgICAgcFR3aWRkbGVbNCAqIE1dLkltID0geTsKKworICAgIGZvciAoaSA9IDE7IGkgPD0gTTsgaSsrKSB7CisgICAgICBqID0gaSAqIHN0ZXA7CisKKyAgICAgIHggPSBhcm1TUF9GRlRfRjMyVHdpZGRsZVRhYmxlWzIgKiBqXTsKKyAgICAgIHkgPSBhcm1TUF9GRlRfRjMyVHdpZGRsZVRhYmxlWzIgKiBqICsgMV07CisKKyAgICAgIHBUd2lkZGxlW2ldLlJlID0geDsKKyAgICAgIHBUd2lkZGxlW2ldLkltID0geTsKKyAgICAgIHBUd2lkZGxlWzIgKiBNIC0gaV0uUmUgPSAteTsKKyAgICAgIHBUd2lkZGxlWzIgKiBNIC0gaV0uSW0gPSAteDsKKyAgICAgIHBUd2lkZGxlWzIgKiBNICsgaV0uUmUgPSB5OworICAgICAgcFR3aWRkbGVbMiAqIE0gKyBpXS5JbSA9IC14OworICAgICAgcFR3aWRkbGVbNCAqIE0gLSBpXS5SZSA9IC14OworICAgICAgcFR3aWRkbGVbNCAqIE0gLSBpXS5JbSA9IHk7CisgICAgICBwVHdpZGRsZVs0ICogTSArIGldLlJlID0gLXg7CisgICAgICBwVHdpZGRsZVs0ICogTSArIGldLkltID0gLXk7CisgICAgICBwVHdpZGRsZVs2ICogTSAtIGldLlJlID0geTsKKyAgICAgIHBUd2lkZGxlWzYgKiBNIC0gaV0uSW0gPSB4OworICAgIH0KKyAgfSBlbHNlIGlmIChvcmRlciA9PSAyKSB7CisgICAgcFR3aWRkbGVbMF0uUmUgPSB4OworICAgIHBUd2lkZGxlWzBdLkltID0geTsKKyAgICBwVHdpZGRsZVsxXS5SZSA9IC15OworICAgIHBUd2lkZGxlWzFdLkltID0geE5lZzsKKyAgICBwVHdpZGRsZVsyXS5SZSA9IHhOZWc7CisgICAgcFR3aWRkbGVbMl0uSW0gPSB5OworICB9IGVsc2UgaWYgKG9yZGVyID09IDEpIHsKKyAgICBwVHdpZGRsZVswXS5SZSA9IHg7CisgICAgcFR3aWRkbGVbMF0uSW0gPSB5OworICB9CisKKyAgLyogVXBkYXRlIHRoZSBzdHJ1Y3R1cmUgKi8KKyAgcEZGVFN0cnVjdC0+TiA9IE47CisgIHBGRlRTdHJ1Y3QtPnBUd2lkZGxlID0gcFR3aWRkbGU7CisgIHBGRlRTdHJ1Y3QtPnBCaXRSZXYgPSBwQml0UmV2OworICBwRkZUU3RydWN0LT5wQnVmID0gcEJ1ZjsKKworICByZXR1cm4gT01YX1N0c19Ob0VycjsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVORCBPRiBGSUxFCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCmRpZmYgLS1naXQgYS9kbC9vbXhTUF9GRlRJbml0X0NfU0MxNi5jIGIvZGwvb214U1BfRkZUSW5pdF9DX1NDMTYuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NWIyZWVlCi0tLSAvZGV2L251bGwKKysrIGIvZGwvb214U1BfRkZUSW5pdF9DX1NDMTYuYwpAQCAtMCwwICsxLDIwMyBAQAorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICoKKyAqICBUaGlzIGZpbGUgd2FzIG9yaWdpbmFsbHkgbGljZW5zZWQgYXMgZm9sbG93cy4gSXQgaGFzIGJlZW4KKyAqICByZWxpY2Vuc2VkIHdpdGggcGVybWlzc2lvbiBmcm9tIHRoZSBjb3B5cmlnaHQgaG9sZGVycy4KKyAqLworCisvKioKKyAqIAorICogRmlsZSBOYW1lOiAgb214U1BfRkZUSW5pdF9DX1NDMTYuYworICogT3Blbk1BWCBETDogdjEuMC4yCisgKiBMYXN0IE1vZGlmaWVkIFJldmlzaW9uOiAgIDE1MzIyCisgKiBMYXN0IE1vZGlmaWVkIERhdGU6ICAgICAgIFdlZCwgMTUgT2N0IDIwMDgKKyAqIAorICogKGMpIENvcHlyaWdodCAyMDA3LTIwMDggQVJNIExpbWl0ZWQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiAKKyAqIAorICogRGVzY3JpcHRpb246CisgKiBJbml0aWFsaXplcyB0aGUgc3BlY2lmaWNhdGlvbiBzdHJ1Y3R1cmVzIHJlcXVpcmVkCisgKi8KKworI2luY2x1ZGUgIm9teHR5cGVzLmgiCisjaW5jbHVkZSAiYXJtT01YLmgiCisjaW5jbHVkZSAib214U1AuaCIKKworI2luY2x1ZGUgImFybUNPTU0uaCIKKyNpbmNsdWRlICJhcm1TUC5oIgorCisKKy8qKgorICogRnVuY3Rpb246IG9teFNQX0ZGVEluaXRfQ19TQzE2CisgKgorICogRGVzY3JpcHRpb246CisgKiBUaGVzZSBmdW5jdGlvbnMgaW5pdGlhbGl6ZSB0aGUgc3BlY2lmaWNhdGlvbiBzdHJ1Y3R1cmVzIHJlcXVpcmVkIGZvciB0aGUKKyAqIGNvbXBsZXggRkZUIGFuZCBJRkZUIGZ1bmN0aW9ucy4KKyAqCisgKiBSZW1hcmtzOgorICogRGVzaXJlZCBibG9jayBsZW5ndGggaXMgc3BlY2lmaWVkIGFzIGFuIGlucHV0LiBUaGUgZnVuY3Rpb24gaXMgdXNlZCB0bworICogaW5pdGlhbGl6ZSB0aGUgc3BlY2lmaWNhdGlvbiBzdHJ1Y3R1cmVzIGZvciBmdW5jdGlvbnMgPEZGVEZ3ZF9DVG9DX1NDMTZfU2ZzPgorICogYW5kIDxGRlRJbnZfQ1RvQ19TQzE2X1Nmcz4uIE1lbW9yeSBmb3IgdGhlIHNwZWNpZmljYXRpb24gc3RydWN0dXJlICpwRkZUU3BlYworICogbXVzdCBiZSBhbGxvY2F0ZWQgcHJpb3IgdG8gY2FsbGluZyB0aGlzIGZ1bmN0aW9uLiBUaGUgc3BhY2UgcmVxdWlyZWQgZm9yCisgKiAqcEZGVFNwZWMsIGluIGJ5dGVzLCBjYW4gYmUgZGV0ZXJtaW5lZCB1c2luZyA8RkZUR2V0QnVmU2l6ZV9DX1NDMTY+LgorICoKKyAqIFBhcmFtZXRlcnM6CisgKiBbaW5dICBvcmRlciAgICAgICAJYmFzZS0yIGxvZ2FyaXRobSBvZiB0aGUgZGVzaXJlZCBibG9jayBsZW5ndGg7CisgKgkJCQl2YWxpZCBpbiB0aGUgcmFuZ2UgWzAsMTJdLgorICogW291dF0gcEZGVFNwZWMJCXBvaW50ZXIgdG8gaW5pdGlhbGl6ZWQgc3BlY2lmaWNhdGlvbiBzdHJ1Y3R1cmUuCisgKgorICogUmV0dXJuIFZhbHVlOgorICogU3RhbmRhcmQgb214RXJyb3IgcmVzdWx0LiBTZWUgZW51bWVyYXRpb24gZm9yIHBvc3NpYmxlIHJlc3VsdCBjb2Rlcy4KKyAqCisgKi8KKworT01YUmVzdWx0IG9teFNQX0ZGVEluaXRfQ19TQzE2KAorICAgICBPTVhGRlRTcGVjX0NfU0MxNiogcEZGVFNwZWMsCisgICAgIE9NWF9JTlQgb3JkZXIKKyApCisgeworICAgIE9NWF9JTlQgICAgIGksajsKKyAgICBPTVhfU0MxNiAgICAqcFR3aWRkbGUsICpwQnVmOworICAgIE9NWF9VMTYgICAgICpwQml0UmV2OworICAgIE9NWF9JTlQgICAgIE5ieTIsTixNLGRpZmYsc3RlcDsKKyAgICBPTVhfVTMyICAgICAgICAgICAgIHBUbXA7CisgICAgQVJNc0ZGVFNwZWNfU0MxNiAqcEZGVFN0cnVjdCA9IDA7CisgICAgT01YX1MxNiAgICAgeCx5LHhOZWc7CisgICAgT01YX1MzMiAgICAgeFMzMix5UzMyOworICAgICAgICAgICAgCisgICAgCisgICAgcEZGVFN0cnVjdCA9IChBUk1zRkZUU3BlY19TQzE2ICopIHBGRlRTcGVjOworCisgICAgLyogaWYgb3JkZXIgemVybyBubyBpbml0IGlzIG5lZWRlZCAqLworICAgIGlmIChvcmRlciA9PSAwKQorICAgIHsKKyAgICAgICAgcEZGVFN0cnVjdC0+TiA9IDE7CisgICAgICAgIHJldHVybiBPTVhfU3RzX05vRXJyOworICAgIH0KKworICAgIC8qIERvIHRoZSBpbml0aWFsaXphdGlvbnMgKi8KKyAgICBOYnkyID0gMSA8PCAob3JkZXIgLSAxKTsKKyAgICBOID0gTmJ5MiA8PCAxOworICAgIE0gPSBOPj4zOworICAgICAgICAKKyAgICBwQml0UmV2ID0gTlVMTCA7ICAKKyAgICAKKyAgICBwVHdpZGRsZSA9IChPTVhfU0MxNiAqKSAKKyAgICAgICAgKHNpemVvZihBUk1zRkZUU3BlY19TQzE2KSArIChPTVhfUzgqKSBwRkZUU3BlYyk7CisgICAgCisgICAgLyogQWxpZ24gdG8gMzIgYnl0ZSBib3VuZGFyeSAqLworICAgIHBUbXAgPSAoKE9NWF9VMzIpcFR3aWRkbGUpJjMxOyAgICAgICAgICAgICAgLyogKE9NWF9VMzIpcFR3aWRkbGUgJSAzMiAqLworICAgIGlmKHBUbXAgIT0gMCkKKyAgICAgICAgcFR3aWRkbGUgPSAoT01YX1NDMTYqKSAoKE9NWF9TOCopcFR3aWRkbGUgKyAoMzItcFRtcCkpOyAgICAgICAgCisgICAgCisgICAgcEJ1ZiA9IChPTVhfU0MxNiAqKSAgICAgICAgCisgICAgICAgIChzaXplb2YoT01YX1NDMTYpICogKDMqTi80KSArIChPTVhfUzgqKSBwVHdpZGRsZSk7CisgICAgCisgICAgLyogQWxpZ24gdG8gMzIgYnl0ZSBib3VuZGFyeSAqLworICAgIHBUbXAgPSAoKE9NWF9VMzIpcEJ1ZikmMzE7ICAgICAgICAgICAgICAgICAvKiAoT01YX1UzMilwQnVmICUgMzIgKi8KKyAgICBpZihwVG1wICE9IDApCisgICAgICAgIHBCdWYgPSAoT01YX1NDMTYqKSAoKE9NWF9TOCopcEJ1ZiArICgzMi1wVG1wKSk7ICAgICAgICAgICAgCisKKyAgICAKKworICAgIC8qIAorICAgICAqIEZpbGxpbmcgVHdpZGRsZSBmYWN0b3JzIDogCisgICAgICogVGhlIG9yaWdpbmFsIHR3aWRkbGUgdGFibGUgImFybVNQX0ZGVF9TMTZUd2lkZGxlVGFibGUiIGlzIG9mIHNpemUgKE1heFNpemUvOCArIDEpCisgICAgICogUmVzdCBvZiB0aGUgdmFsdWVzIGkuZS4sIHVwdG8gTWF4U2l6ZSBhcmUgY2FsY3VsYXRlZCB1c2luZyB0aGUgc3ltbWV0cmllcyBvZiBzaW4gYW5kIGNvcworICAgICAqIFRoZSBtYXggc2l6ZSBvZiB0aGUgdHdpZGRsZSB0YWJsZSBuZWVkZWQgaXMgM04vNCBmb3IgYSByYWRpeC00IHN0YWdlCisgICAgICoKKyAgICAgKiBXID0gKC0yICogUEkpIC8gTiAKKyAgICAgKiBOID0gMSA8PCBvcmRlcgorICAgICAqIFcgPSAtUEkgPj4gKG9yZGVyIC0gMSkKKyAgICAgKi8KKyAgICAgCisgICAgCisgICAKKyAgICBkaWZmID0gMTIgLSBvcmRlcjsKKyAgICBzdGVwID0gMTw8ZGlmZjsgICAgICAgICAgICAgLyogc3RlcCBpbnRvIHRoZSB0d2lkZGxlIHRhYmxlIGZvciB0aGUgY3VycmVudCBvcmRlciAqLworICAgIAorICAgIHhTMzIgPSBhcm1TUF9GRlRfUzMyVHdpZGRsZVRhYmxlWzBdOworICAgIHlTMzIgPSBhcm1TUF9GRlRfUzMyVHdpZGRsZVRhYmxlWzFdOworICAgIHggPSAoeFMzMisweDgwMDApPj4xNjsKKyAgICB5ID0gKHlTMzIrMHg4MDAwKT4+MTY7CisKKyAgICB4TmVnID0gMHg3RkZGOworICAgIAorICAgIGlmKG9yZGVyID49MykgICAgCisgICAgeworICAgICAgICAgICAgLyogaSA9IDAgY2FzZSAqLworICAgICAgICAgICAgcFR3aWRkbGVbMF0uUmUgPSB4OworICAgICAgICAgICAgcFR3aWRkbGVbMF0uSW0gPSB5OworICAgICAgICAgICAgcFR3aWRkbGVbMipNXS5SZSA9IC15OworICAgICAgICAgICAgcFR3aWRkbGVbMipNXS5JbSA9IHhOZWc7CisgICAgICAgICAgICBwVHdpZGRsZVs0Kk1dLlJlID0geE5lZzsKKyAgICAgICAgICAgIHBUd2lkZGxlWzQqTV0uSW0gPSB5OworICAgICAgICAgICAgCisgICAgCisgICAgICAgIGZvciAoaT0xOyBpPD1NOyBpKyspCisgICAgICAgICAgeworICAgICAgICAgICAgaiA9IGkqc3RlcDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgeFMzMiA9IGFybVNQX0ZGVF9TMzJUd2lkZGxlVGFibGVbMipqXTsKKyAgICAgICAgICAgIHlTMzIgPSBhcm1TUF9GRlRfUzMyVHdpZGRsZVRhYmxlWzIqaisxXTsKKyAgICAgICAgICAgIHggPSAoeFMzMisweDgwMDApPj4xNjsKKyAgICAgICAgICAgIHkgPSAoeVMzMisweDgwMDApPj4xNjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcFR3aWRkbGVbaV0uUmUgPSB4OworICAgICAgICAgICAgcFR3aWRkbGVbaV0uSW0gPSB5OworICAgICAgICAgICAgcFR3aWRkbGVbMipNLWldLlJlID0gLXk7CisgICAgICAgICAgICBwVHdpZGRsZVsyKk0taV0uSW0gPSAteDsKKyAgICAgICAgICAgIHBUd2lkZGxlWzIqTStpXS5SZSA9IHk7CisgICAgICAgICAgICBwVHdpZGRsZVsyKk0raV0uSW0gPSAteDsKKyAgICAgICAgICAgIHBUd2lkZGxlWzQqTS1pXS5SZSA9IC14OworICAgICAgICAgICAgcFR3aWRkbGVbNCpNLWldLkltID0geTsKKyAgICAgICAgICAgIHBUd2lkZGxlWzQqTStpXS5SZSA9IC14OworICAgICAgICAgICAgcFR3aWRkbGVbNCpNK2ldLkltID0gLXk7CisgICAgICAgICAgICBwVHdpZGRsZVs2Kk0taV0uUmUgPSB5OworICAgICAgICAgICAgcFR3aWRkbGVbNipNLWldLkltID0geDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgCisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIGlmIChvcmRlciA9PSAyKQorICAgICAgICB7CisgICAgICAgICAgICBwVHdpZGRsZVswXS5SZSA9IHg7CisgICAgICAgICAgICBwVHdpZGRsZVswXS5JbSA9IHk7CisgICAgICAgICAgICBwVHdpZGRsZVsxXS5SZSA9IC15OworICAgICAgICAgICAgcFR3aWRkbGVbMV0uSW0gPSB4TmVnOworICAgICAgICAgICAgcFR3aWRkbGVbMl0uUmUgPSB4TmVnOworICAgICAgICAgICAgcFR3aWRkbGVbMl0uSW0gPSB5OworICAgICAgICAKKyAgICAgICAgfQorICAgICAgICBpZiAob3JkZXIgPT0gMSkKKyAgICAgICAgeworICAgICAgICAgICAgcFR3aWRkbGVbMF0uUmUgPSB4OworICAgICAgICAgICAgcFR3aWRkbGVbMF0uSW0gPSB5OworICAgICAgICAKKyAgICAgICAgfSAgICAgICAgCisgICAgICAgIAorICAgIAorICAgIH0KKyAgICAKKyAgICAgICAKKyAgICAvKiBVcGRhdGUgdGhlIHN0cnVjdHVyZSAqLworICAgIHBGRlRTdHJ1Y3QtPk4gPSBOOworICAgIHBGRlRTdHJ1Y3QtPnBUd2lkZGxlID0gcFR3aWRkbGU7CisgICAgcEZGVFN0cnVjdC0+cEJpdFJldiA9IHBCaXRSZXY7CisgICAgcEZGVFN0cnVjdC0+cEJ1ZiA9IHBCdWY7CisKKyAgICByZXR1cm4gT01YX1N0c19Ob0VycjsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVORCBPRiBGSUxFCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKZGlmZiAtLWdpdCBhL2RsL29teFNQX0ZGVEluaXRfQ19TQzMyLmMgYi9kbC9vbXhTUF9GRlRJbml0X0NfU0MzMi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjN2Y3NDUKLS0tIC9kZXYvbnVsbAorKysgYi9kbC9vbXhTUF9GRlRJbml0X0NfU0MzMi5jCkBAIC0wLDAgKzEsMTk4IEBACisvKgorICogIENvcHlyaWdodCAoYykgMjAxMyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKgorICogIFRoaXMgZmlsZSB3YXMgb3JpZ2luYWxseSBsaWNlbnNlZCBhcyBmb2xsb3dzLiBJdCBoYXMgYmVlbgorICogIHJlbGljZW5zZWQgd2l0aCBwZXJtaXNzaW9uIGZyb20gdGhlIGNvcHlyaWdodCBob2xkZXJzLgorICovCisKKy8qKgorICogCisgKiBGaWxlIE5hbWU6ICBvbXhTUF9GRlRJbml0X0NfU0MzMi5jCisgKiBPcGVuTUFYIERMOiB2MS4wLjIKKyAqIExhc3QgTW9kaWZpZWQgUmV2aXNpb246ICAgNzc2OQorICogTGFzdCBNb2RpZmllZCBEYXRlOiAgICAgICBUaHUsIDI3IFNlcCAyMDA3CisgKiAKKyAqIChjKSBDb3B5cmlnaHQgMjAwNy0yMDA4IEFSTSBMaW1pdGVkLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogCisgKiAKKyAqIERlc2NyaXB0aW9uOgorICogSW5pdGlhbGl6ZXMgdGhlIHNwZWNpZmljYXRpb24gc3RydWN0dXJlcyByZXF1aXJlZAorICovCisKKyNpbmNsdWRlICJvbXh0eXBlcy5oIgorI2luY2x1ZGUgImFybU9NWC5oIgorI2luY2x1ZGUgIm9teFNQLmgiCisKKyNpbmNsdWRlICJhcm1DT01NLmgiCisjaW5jbHVkZSAiYXJtU1AuaCIKKworCisvKioKKyAqIEZ1bmN0aW9uOiBvbXhTUF9GRlRJbml0X0NfU0MzMgorICoKKyAqIERlc2NyaXB0aW9uOgorICogSW5pdGlhbGl6ZXMgdGhlIHNwZWNpZmljYXRpb24gc3RydWN0dXJlcyByZXF1aXJlZCBmb3IgdGhlCisgKiBjb21wbGV4IEZGVCBhbmQgSUZGVCBmdW5jdGlvbnMuCisgKgorICogUmVtYXJrczoKKyAqIERlc2lyZWQgYmxvY2sgbGVuZ3RoIGlzIHNwZWNpZmllZCBhcyBhbiBpbnB1dC4gVGhlIGZ1bmN0aW9uIGlzIHVzZWQgdG8KKyAqIGluaXRpYWxpemUgdGhlIHNwZWNpZmljYXRpb24gc3RydWN0dXJlcyBmb3IgZnVuY3Rpb25zIDxGRlRGd2RfQ1RvQ19TQzMyX1Nmcz4KKyAqIGFuZCA8RkZUSW52X0NUb0NfU0MzMl9TZnM+LiBNZW1vcnkgZm9yIHRoZSBzcGVjaWZpY2F0aW9uIHN0cnVjdHVyZSAqcEZGVFNwZWMKKyAqIG11c3QgYmUgYWxsb2NhdGVkIHByaW9yIHRvIGNhbGxpbmcgdGhpcyBmdW5jdGlvbi4gVGhlIHNwYWNlIHJlcXVpcmVkIGZvcgorICogKnBGRlRTcGVjLCBpbiBieXRlcywgY2FuIGJlIGRldGVybWluZWQgdXNpbmcgPEZGVEdldEJ1ZlNpemVfQ19TQzMyPi4KKyAqCisgKiBQYXJhbWV0ZXJzOgorICogW2luXSAgb3JkZXIgICAgICAgCWJhc2UtMiBsb2dhcml0aG0gb2YgdGhlIGRlc2lyZWQgYmxvY2sgbGVuZ3RoOworICoJCQkJdmFsaWQgaW4gdGhlIHJhbmdlIFswLDEyXS4KKyAqIFtvdXRdIHBGRlRTcGVjCQlwb2ludGVyIHRvIGluaXRpYWxpemVkIHNwZWNpZmljYXRpb24gc3RydWN0dXJlLgorICoKKyAqIFJldHVybiBWYWx1ZToKKyAqIFN0YW5kYXJkIG9teEVycm9yIHJlc3VsdC4gU2VlIGVudW1lcmF0aW9uIGZvciBwb3NzaWJsZSByZXN1bHQgY29kZXMuCisgKgorICovCisKK09NWFJlc3VsdCBvbXhTUF9GRlRJbml0X0NfU0MzMigKKyAgICAgT01YRkZUU3BlY19DX1NDMzIqIHBGRlRTcGVjLAorICAgICBPTVhfSU5UIG9yZGVyCisgKQoreworICAgIE9NWF9JTlQgICAgIGksajsKKyAgICBPTVhfU0MzMiAgICAqcFR3aWRkbGUsICpwQnVmOworICAgIE9NWF9VMTYgICAgICpwQml0UmV2OworICAgIE9NWF9VMzIgICAgICBwVG1wOworICAgIE9NWF9JTlQgICAgIE5ieTIsTixNLGRpZmYsIHN0ZXA7IAorICAgIEFSTXNGRlRTcGVjX1NDMzIgKnBGRlRTdHJ1Y3QgPSAwOworICAgIE9NWF9TMzIgICAgIHgseSx4TmVnOworICAgIAorICAgIHBGRlRTdHJ1Y3QgPSAoQVJNc0ZGVFNwZWNfU0MzMiAqKSBwRkZUU3BlYzsKKworICAgIC8qIGlmIG9yZGVyIHplcm8gbm8gaW5pdCBpcyBuZWVkZWQgKi8KKyAgICBpZiAob3JkZXIgPT0gMCkKKyAgICB7CisgICAgICAgIHBGRlRTdHJ1Y3QtPk4gPSAxOworICAgICAgICByZXR1cm4gT01YX1N0c19Ob0VycjsKKyAgICB9CisKKyAgICAvKiBEbyB0aGUgaW5pdGlhbGl6YXRpb25zICovCisgICAgTmJ5MiA9IDEgPDwgKG9yZGVyIC0gMSk7CisgICAgTiA9IE5ieTIgPDwgMTsKKyAgICBNID0gTj4+MzsgICAgICAgICAgICAgICAgCisgICAgCisgICAgCisgICAgcEJpdFJldiA9IE5VTEwgOyAgICAgICAgICAgICAgICAvKiBvcHRpbWl6ZWQgaW1wbGVtZW50YXRpb25zIGRvbid0IHVzZSBiaXRyZXZlcnNhbCAqLworICAgIAorICAgIHBUd2lkZGxlID0gKE9NWF9TQzMyICopIAorICAgICAgICAoc2l6ZW9mKEFSTXNGRlRTcGVjX1NDMzIpICsgKE9NWF9TOCopIHBGRlRTcGVjKTsKKyAgICAgICAgCisgICAgLyogQWxpZ24gdG8gMzIgYnl0ZSBib3VuZGFyeSAqLworICAgIHBUbXAgPSAoKE9NWF9VMzIpcFR3aWRkbGUpJjMxOyAgICAgICAgICAgICAgLyogKE9NWF9VMzIpcFR3aWRkbGUgJSAzMiAqLworICAgIGlmKHBUbXAgIT0gMCkKKyAgICAgICAgcFR3aWRkbGUgPSAoT01YX1NDMzIqKSAoKE9NWF9TOCopcFR3aWRkbGUgKyAoMzItcFRtcCkpOyAgICAgICAgICAgIAorICAgICAgICAKKyAgICBwQnVmID0gKE9NWF9TQzMyKikgICAgICAgIAorICAgICAgICAoc2l6ZW9mKE9NWF9TQzMyKSAqICgzKk4vNCkgKyAoT01YX1M4KikgcFR3aWRkbGUpOworICAgIAorICAgIC8qIEFsaWduIHRvIDMyIGJ5dGUgYm91bmRhcnkgKi8KKyAgICBwVG1wID0gKChPTVhfVTMyKXBCdWYpJjMxOyAgICAgICAgICAgICAgICAgLyogKE9NWF9VMzIpcEJ1ZiAlIDMyICovCisgICAgaWYocFRtcCAhPSAwKQorICAgICAgICBwQnVmID0gKE9NWF9TQzMyKikgKChPTVhfUzgqKXBCdWYgKyAoMzItcFRtcCkpOyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIAorICAgIAorICAgIAorICAgIC8qIAorICAgICAqIEZpbGxpbmcgVHdpZGRsZSBmYWN0b3JzIDogCisgICAgICogVGhlIG9yaWdpbmFsIHR3aWRkbGUgdGFibGUgImFybVNQX0ZGVF9TMzJUd2lkZGxlVGFibGUiIGlzIG9mIHNpemUgKE1heFNpemUvOCArIDEpCisgICAgICogUmVzdCBvZiB0aGUgdmFsdWVzIGkuZS4sIHVwdG8gTWF4U2l6ZSBhcmUgY2FsY3VsYXRlZCB1c2luZyB0aGUgc3ltbWV0cmllcyBvZiBzaW4gYW5kIGNvcworICAgICAqIFRoZSBtYXggc2l6ZSBvZiB0aGUgdHdpZGRsZSB0YWJsZSBuZWVkZWQgaXMgM04vNCBmb3IgYSByYWRpeC00IHN0YWdlCisgICAgICoKKyAgICAgKiBXID0gKC0yICogUEkpIC8gTiAKKyAgICAgKiBOID0gMSA8PCBvcmRlcgorICAgICAqIFcgPSAtUEkgPj4gKG9yZGVyIC0gMSkKKyAgICAgKi8KKyAgICAKKyAgICAKKyAgICBkaWZmID0gMTIgLSBvcmRlcjsKKyAgICBzdGVwID0gMTw8ZGlmZjsgICAgICAgICAgICAgLyogc3RlcCBpbnRvIHRoZSB0d2lkZGxlIHRhYmxlIGZvciB0aGUgY3VycmVudCBvcmRlciAqLworICAgIAorICAgIHggPSBhcm1TUF9GRlRfUzMyVHdpZGRsZVRhYmxlWzBdOworICAgIHkgPSBhcm1TUF9GRlRfUzMyVHdpZGRsZVRhYmxlWzFdOworICAgIHhOZWcgPSAweDdGRkZGRkZGOworICAgIAorICAgIGlmKG9yZGVyID49MykgICAgCisgICAgeworICAgICAgICAgICAgLyogaSA9IDAgY2FzZSAqLworICAgICAgICAgICAgcFR3aWRkbGVbMF0uUmUgPSB4OworICAgICAgICAgICAgcFR3aWRkbGVbMF0uSW0gPSB5OworICAgICAgICAgICAgcFR3aWRkbGVbMipNXS5SZSA9IC15OworICAgICAgICAgICAgcFR3aWRkbGVbMipNXS5JbSA9IHhOZWc7CisgICAgICAgICAgICBwVHdpZGRsZVs0Kk1dLlJlID0geE5lZzsKKyAgICAgICAgICAgIHBUd2lkZGxlWzQqTV0uSW0gPSB5OworICAgICAgICAgICAgCisgICAgCisgICAgICAgIGZvciAoaT0xOyBpPD1NOyBpKyspCisgICAgICAgICAgeworICAgICAgICAgICAgaiA9IGkqc3RlcDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgeCA9IGFybVNQX0ZGVF9TMzJUd2lkZGxlVGFibGVbMipqXTsKKyAgICAgICAgICAgIHkgPSBhcm1TUF9GRlRfUzMyVHdpZGRsZVRhYmxlWzIqaisxXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcFR3aWRkbGVbaV0uUmUgPSB4OworICAgICAgICAgICAgcFR3aWRkbGVbaV0uSW0gPSB5OworICAgICAgICAgICAgcFR3aWRkbGVbMipNLWldLlJlID0gLXk7CisgICAgICAgICAgICBwVHdpZGRsZVsyKk0taV0uSW0gPSAteDsKKyAgICAgICAgICAgIHBUd2lkZGxlWzIqTStpXS5SZSA9IHk7CisgICAgICAgICAgICBwVHdpZGRsZVsyKk0raV0uSW0gPSAteDsKKyAgICAgICAgICAgIHBUd2lkZGxlWzQqTS1pXS5SZSA9IC14OworICAgICAgICAgICAgcFR3aWRkbGVbNCpNLWldLkltID0geTsKKyAgICAgICAgICAgIHBUd2lkZGxlWzQqTStpXS5SZSA9IC14OworICAgICAgICAgICAgcFR3aWRkbGVbNCpNK2ldLkltID0gLXk7CisgICAgICAgICAgICBwVHdpZGRsZVs2Kk0taV0uUmUgPSB5OworICAgICAgICAgICAgcFR3aWRkbGVbNipNLWldLkltID0geDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgCisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIGlmIChvcmRlciA9PSAyKQorICAgICAgICB7CisgICAgICAgICAgICBwVHdpZGRsZVswXS5SZSA9IHg7CisgICAgICAgICAgICBwVHdpZGRsZVswXS5JbSA9IHk7CisgICAgICAgICAgICBwVHdpZGRsZVsxXS5SZSA9IC15OworICAgICAgICAgICAgcFR3aWRkbGVbMV0uSW0gPSB4TmVnOworICAgICAgICAgICAgcFR3aWRkbGVbMl0uUmUgPSB4TmVnOworICAgICAgICAgICAgcFR3aWRkbGVbMl0uSW0gPSB5OworICAgICAgICAKKyAgICAgICAgfQorICAgICAgICBpZiAob3JkZXIgPT0gMSkKKyAgICAgICAgeworICAgICAgICAgICAgcFR3aWRkbGVbMF0uUmUgPSB4OworICAgICAgICAgICAgcFR3aWRkbGVbMF0uSW0gPSB5OworICAgICAgICAKKyAgICAgICAgfSAgICAgICAgCisgICAgICAgIAorICAgIAorICAgIH0KKyAgICAKKyAgICAKKyAgICAgICAgCisgICAgLyogVXBkYXRlIHRoZSBzdHJ1Y3R1cmUgKi8KKyAgICBwRkZUU3RydWN0LT5OID0gTjsKKyAgICBwRkZUU3RydWN0LT5wVHdpZGRsZSA9IHBUd2lkZGxlOworICAgIHBGRlRTdHJ1Y3QtPnBCaXRSZXYgPSBwQml0UmV2OworICAgIHBGRlRTdHJ1Y3QtPnBCdWYgPSBwQnVmOworCisgICAgcmV0dXJuIE9NWF9TdHNfTm9FcnI7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFTkQgT0YgRklMRQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCmRpZmYgLS1naXQgYS9kbC9vbXhTUF9GRlRJbml0X1JfRjMyLmMgYi9kbC9vbXhTUF9GRlRJbml0X1JfRjMyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2EyZmU5ZgotLS0gL2Rldi9udWxsCisrKyBiL2RsL29teFNQX0ZGVEluaXRfUl9GMzIuYwpAQCAtMCwwICsxLDIyMCBAQAorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICoKKyAqICBUaGlzIGlzIGEgbW9kaWZpY2F0aW9uIG9mIG9teFNQX0ZGVEluaXRfUl9TMzIuYyB0byBzdXBwb3J0IGZsb2F0CisgKiAgaW5zdGVhZCBvZiBTMzIuCisgKi8KKworI2luY2x1ZGUgImFybUNPTU0uaCIKKyNpbmNsdWRlICJhcm1PTVguaCIKKyNpbmNsdWRlICJhcm1TUC5oIgorI2luY2x1ZGUgIm9teFNQLmgiCisjaW5jbHVkZSAib214dHlwZXMuaCIKKworLyoqCisgKiBGdW5jdGlvbjogb214U1BfRkZUSW5pdF9SX0YzMgorICoKKyAqIERlc2NyaXB0aW9uOgorICogSW5pdGlhbGl6ZSB0aGUgcmVhbCBmb3J3YXJkLUZGVCBzcGVjaWZpY2F0aW9uIGluZm9ybWF0aW9uIHN0cnVjdC4KKyAqCisgKiBSZW1hcmtzOgorICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGluaXRpYWxpemUgdGhlIHNwZWNpZmljYXRpb24gc3RydWN0dXJlcworICogZm9yIGZ1bmN0aW9ucyA8aXBwc0ZGVEZ3ZF9SVG9DQ1NfRjMyX1Nmcz4gYW5kCisgKiA8aXBwc0ZGVEludl9DQ1NUb1JfRjMyX1Nmcz4uIE1lbW9yeSBmb3IgKnBGRlRTcGVjIG11c3QgYmUKKyAqIGFsbG9jYXRlZCBwcmlvciB0byBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uIFRoZSBudW1iZXIgb2YgYnl0ZXMKKyAqIHJlcXVpcmVkIGZvciAqcEZGVFNwZWMgY2FuIGJlIGRldGVybWluZWQgdXNpbmcKKyAqIDxGRlRHZXRCdWZTaXplX1JfRjMyPi4KKyAqCisgKiBQYXJhbWV0ZXJzOgorICogW2luXSAgb3JkZXIgICAgICAgYmFzZS0yIGxvZ2FyaXRobSBvZiB0aGUgZGVzaXJlZCBibG9jayBsZW5ndGg7CisgKiAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZCBpbiB0aGUgcmFuZ2UgWzAsMTJdLgorICogW291dF0gcEZGVEZ3ZFNwZWMgcG9pbnRlciB0byB0aGUgaW5pdGlhbGl6ZWQgc3BlY2lmaWNhdGlvbiBzdHJ1Y3R1cmUuCisgKgorICogUmV0dXJuIFZhbHVlOgorICogU3RhbmRhcmQgb214RXJyb3IgcmVzdWx0LiBTZWUgZW51bWVyYXRpb24gZm9yIHBvc3NpYmxlIHJlc3VsdCBjb2Rlcy4KKyAqCisgKi8KK09NWFJlc3VsdCBvbXhTUF9GRlRJbml0X1JfRjMyKE9NWEZGVFNwZWNfUl9GMzIqIHBGRlRTcGVjLCBPTVhfSU5UIG9yZGVyKSB7CisgIE9NWF9JTlQgaTsKKyAgT01YX0lOVCBqOworICBPTVhfRkMzMiogcFR3aWRkbGU7CisgIE9NWF9GQzMyKiBwVHdpZGRsZTE7CisgIE9NWF9GQzMyKiBwVHdpZGRsZTI7CisgIE9NWF9GQzMyKiBwVHdpZGRsZTM7CisgIE9NWF9GQzMyKiBwVHdpZGRsZTQ7CisgIE9NWF9GMzIqIHBCdWY7CisgIE9NWF9VMTYqIHBCaXRSZXY7CisgIE9NWF9VMzIgcFRtcDsKKyAgT01YX0lOVCBOYnkyOworICBPTVhfSU5UIE47CisgIE9NWF9JTlQgTTsKKyAgT01YX0lOVCBkaWZmOworICBPTVhfSU5UIHN0ZXA7CisgIE9NWF9GMzIgeDsKKyAgT01YX0YzMiB5OworICBPTVhfRjMyIHhOZWc7CisgIEFSTXNGRlRTcGVjX1JfRkMzMiogcEZGVFN0cnVjdCA9IDA7CisKKyAgcEZGVFN0cnVjdCA9IChBUk1zRkZUU3BlY19SX0ZDMzIgKikgcEZGVFNwZWM7CisKKyAgLyogaWYgb3JkZXIgemVybyBubyBpbml0IGlzIG5lZWRlZCAqLworICBpZiAob3JkZXIgPT0gMCkgeworICAgIHBGRlRTdHJ1Y3QtPk4gPSAxOworICAgIHBGRlRTdHJ1Y3QtPnBUd2lkZGxlID0gTlVMTDsKKyAgICBwRkZUU3RydWN0LT5wQnVmID0gKE9NWF9GMzIgKikKKyAgICAgICAgKHNpemVvZihBUk1zRkZUU3BlY19SX1NDMzIpICsgKE9NWF9TOCopIHBGRlRTcGVjKTsKKworICAgIHJldHVybiBPTVhfU3RzX05vRXJyOworICB9CisKKyAgLyogVmFsaWRhdGUgYXJncyAqLworICBpZiAoIXBGRlRTcGVjIHx8IChvcmRlciA8IDApIHx8IChvcmRlciA+IFRXSURETEVfVEFCTEVfT1JERVIpKQorICAgIHJldHVybiBPTVhfU3RzX0JhZEFyZ0VycjsKKworICAvKiBEbyB0aGUgaW5pdGlhbGl6YXRpb25zICovCisgIE5ieTIgPSAxIDw8IChvcmRlciAtIDEpOworICBOID0gTmJ5MiA8PCAxOworCisgIC8qIG9wdGltaXplZCBpbXBsZW1lbnRhdGlvbnMgZG9uJ3QgdXNlIGJpdHJldmVyc2FsICovCisgIHBCaXRSZXYgPSBOVUxMOworCisgIHBUd2lkZGxlID0gKE9NWF9GQzMyICopIChzaXplb2YoQVJNc0ZGVFNwZWNfUl9TQzMyKSArIChPTVhfUzgqKSBwRkZUU3BlYyk7CisKKyAgLyogQWxpZ24gdG8gMzIgYnl0ZSBib3VuZGFyeSAqLworICBwVG1wID0gKChPTVhfVTMyKXBUd2lkZGxlKSAmIDMxOworICBpZiAocFRtcCkKKyAgICBwVHdpZGRsZSA9IChPTVhfRkMzMiopICgoT01YX1M4KilwVHdpZGRsZSArICgzMiAtIHBUbXApKTsKKworICBwQnVmID0gKE9NWF9GMzIqKSAoc2l6ZW9mKE9NWF9GQzMyKSooNSpOLzgpICsgKE9NWF9TOCopIHBUd2lkZGxlKTsKKworICAvKiBBbGlnbiB0byAzMiBieXRlIGJvdW5kYXJ5ICovCisgIHBUbXAgPSAoKE9NWF9VMzIpcEJ1ZikmMzE7ICAgICAgICAgICAgICAgICAvKiAoT01YX1UzMilwQnVmICUgMzIgKi8KKyAgaWYgKHBUbXApCisgICAgcEJ1ZiA9IChPTVhfRjMyKikgKChPTVhfUzgqKXBCdWYgKyAoMzIgLSBwVG1wKSk7CisKKyAgLyoKKyAgICogRmlsbGluZyBUd2lkZGxlIGZhY3RvcnMgOgorICAgKgorICAgKiBleHBeKC1qKjIqUEkqay8gKE4vMikgKSA7IGs9MCwxLDIsLi4uLDMvNChOLzIpCisgICAqCisgICAqIE4vMiBwb2ludCBjb21wbGV4IEZGVCBpcyB1c2VkIHRvIGNvbXB1dGUgTiBwb2ludCByZWFsIEZGVCBUaGUKKyAgICogb3JpZ2luYWwgdHdpZGRsZSB0YWJsZSAiYXJtU1BfRkZUX0YzMlR3aWRkbGVUYWJsZSIgaXMgb2Ygc2l6ZQorICAgKiAoTWF4U2l6ZS84ICsgMSkgUmVzdCBvZiB0aGUgdmFsdWVzIGkuZS4sIHVwdG8gTWF4U2l6ZSBhcmUKKyAgICogY2FsY3VsYXRlZCB1c2luZyB0aGUgc3ltbWV0cmllcyBvZiBzaW4gYW5kIGNvcyBUaGUgbWF4IHNpemUgb2YKKyAgICogdGhlIHR3aWRkbGUgdGFibGUgbmVlZGVkIGlzIDMvNChOLzIpIGZvciBhIHJhZGl4LTQgc3RhZ2UKKyAgICoKKyAgICogVyA9ICgtMiAqIFBJKSAvIE4KKyAgICogTiA9IDEgPDwgb3JkZXIKKyAgICogVyA9IC1QSSA+PiAob3JkZXIgLSAxKQorICAgKi8KKworICBNID0gTmJ5MiA+PiAzOworICBkaWZmID0gVFdJRERMRV9UQUJMRV9PUkRFUiAtIChvcmRlciAtIDEpOworICAvKiBzdGVwIGludG8gdGhlIHR3aWRkbGUgdGFibGUgZm9yIHRoZSBjdXJyZW50IG9yZGVyICovCisgIHN0ZXAgPSAxIDw8IGRpZmY7CisKKyAgeCA9IGFybVNQX0ZGVF9GMzJUd2lkZGxlVGFibGVbMF07CisgIHkgPSBhcm1TUF9GRlRfRjMyVHdpZGRsZVRhYmxlWzFdOworICB4TmVnID0gMTsKKworICBpZiAoKG9yZGVyIC0gMSkgPj0gMykgeworICAgIC8qIGkgPSAwIGNhc2UgKi8KKyAgICBwVHdpZGRsZVswXS5SZSA9IHg7CisgICAgcFR3aWRkbGVbMF0uSW0gPSB5OworICAgIHBUd2lkZGxlWzIqTV0uUmUgPSAteTsKKyAgICBwVHdpZGRsZVsyKk1dLkltID0geE5lZzsKKyAgICBwVHdpZGRsZVs0Kk1dLlJlID0geE5lZzsKKyAgICBwVHdpZGRsZVs0Kk1dLkltID0geTsKKworICAgIGZvciAoaSA9IDE7IGkgPD0gTTsgaSsrKSB7CisgICAgICBqID0gaSpzdGVwOworCisgICAgICB4ID0gYXJtU1BfRkZUX0YzMlR3aWRkbGVUYWJsZVsyKmpdOworICAgICAgeSA9IGFybVNQX0ZGVF9GMzJUd2lkZGxlVGFibGVbMipqKzFdOworCisgICAgICBwVHdpZGRsZVtpXS5SZSA9IHg7CisgICAgICBwVHdpZGRsZVtpXS5JbSA9IHk7CisgICAgICBwVHdpZGRsZVsyKk0taV0uUmUgPSAteTsKKyAgICAgIHBUd2lkZGxlWzIqTS1pXS5JbSA9IC14OworICAgICAgcFR3aWRkbGVbMipNK2ldLlJlID0geTsKKyAgICAgIHBUd2lkZGxlWzIqTStpXS5JbSA9IC14OworICAgICAgcFR3aWRkbGVbNCpNLWldLlJlID0gLXg7CisgICAgICBwVHdpZGRsZVs0Kk0taV0uSW0gPSB5OworICAgICAgcFR3aWRkbGVbNCpNK2ldLlJlID0gLXg7CisgICAgICBwVHdpZGRsZVs0Kk0raV0uSW0gPSAteTsKKyAgICAgIHBUd2lkZGxlWzYqTS1pXS5SZSA9IHk7CisgICAgICBwVHdpZGRsZVs2Kk0taV0uSW0gPSB4OworICAgIH0KKyAgfSBlbHNlIGlmICgob3JkZXIgLSAxKSA9PSAyKSB7CisgICAgcFR3aWRkbGVbMF0uUmUgPSB4OworICAgIHBUd2lkZGxlWzBdLkltID0geTsKKyAgICBwVHdpZGRsZVsxXS5SZSA9IC15OworICAgIHBUd2lkZGxlWzFdLkltID0geE5lZzsKKyAgICBwVHdpZGRsZVsyXS5SZSA9IHhOZWc7CisgICAgcFR3aWRkbGVbMl0uSW0gPSB5OworICB9IGVsc2UgaWYgKChvcmRlci0xKSA9PSAxKSB7CisgICAgcFR3aWRkbGVbMF0uUmUgPSB4OworICAgIHBUd2lkZGxlWzBdLkltID0geTsKKyAgfQorCisgIC8qCisgICAqIE5vdyBmaWxsIHRoZSBsYXN0IE4vNCB2YWx1ZXMgOiBleHBeKC1qKjIqUEkqay9OKSA7CisgICAqIGs9MSwzLDUsLi4uLE4vMi0xIFRoZXNlIGFyZSB1c2VkIGZvciB0aGUgZmluYWwgdHdpZGRsZSBmaXgtdXAgZm9yCisgICAqIGNvbnZlcnRpbmcgY29tcGxleCB0byByZWFsIEZGVAorICAgKi8KKworICBNID0gTiA+PiAzOworICBkaWZmID0gVFdJRERMRV9UQUJMRV9PUkRFUiAtIG9yZGVyOworICBzdGVwID0gMSA8PCBkaWZmOworCisgIHBUd2lkZGxlMSA9IHBUd2lkZGxlICsgMypOLzg7CisgIHBUd2lkZGxlNCA9IHBUd2lkZGxlMSArIChOLzQgLSAxKTsKKyAgcFR3aWRkbGUzID0gcFR3aWRkbGUxICsgTi84OworICBwVHdpZGRsZTIgPSBwVHdpZGRsZTEgKyAoTi84IC0gMSk7CisKKyAgeCA9IGFybVNQX0ZGVF9GMzJUd2lkZGxlVGFibGVbMF07CisgIHkgPSBhcm1TUF9GRlRfRjMyVHdpZGRsZVRhYmxlWzFdOworICB4TmVnID0gMTsKKworICBpZiAob3JkZXIgPj0zKSB7CisgICAgZm9yIChpID0gMTsgaSA8PSBNOyBpICs9IDIpIHsKKyAgICAgIGogPSBpKnN0ZXA7CisKKyAgICAgIHggPSBhcm1TUF9GRlRfRjMyVHdpZGRsZVRhYmxlWzIqal07CisgICAgICB5ID0gYXJtU1BfRkZUX0YzMlR3aWRkbGVUYWJsZVsyKmorMV07CisKKyAgICAgIHBUd2lkZGxlMVswXS5SZSA9IHg7CisgICAgICBwVHdpZGRsZTFbMF0uSW0gPSB5OworICAgICAgcFR3aWRkbGUxICs9IDE7CisgICAgICBwVHdpZGRsZTJbMF0uUmUgPSAteTsKKyAgICAgIHBUd2lkZGxlMlswXS5JbSA9IC14OworICAgICAgcFR3aWRkbGUyIC09IDE7CisgICAgICBwVHdpZGRsZTNbMF0uUmUgPSB5OworICAgICAgcFR3aWRkbGUzWzBdLkltID0gLXg7CisgICAgICBwVHdpZGRsZTMgKz0gMTsKKyAgICAgIHBUd2lkZGxlNFswXS5SZSA9IC14OworICAgICAgcFR3aWRkbGU0WzBdLkltID0geTsKKyAgICAgIHBUd2lkZGxlNCAtPSAxOworICAgIH0KKyAgfSBlbHNlIHsKKyAgICBpZiAob3JkZXIgPT0gMikgeworICAgICAgcFR3aWRkbGUxWzBdLlJlID0gLXk7CisgICAgICBwVHdpZGRsZTFbMF0uSW0gPSB4TmVnOworICAgIH0KKyAgfQorCisKKyAgLyogVXBkYXRlIHRoZSBzdHJ1Y3R1cmUgKi8KKyAgcEZGVFN0cnVjdC0+TiA9IE47CisgIHBGRlRTdHJ1Y3QtPnBUd2lkZGxlID0gcFR3aWRkbGU7CisgIHBGRlRTdHJ1Y3QtPnBCaXRSZXYgPSBwQml0UmV2OworICBwRkZUU3RydWN0LT5wQnVmID0gcEJ1ZjsKKworICByZXR1cm4gT01YX1N0c19Ob0VycjsKK30KZGlmZiAtLWdpdCBhL2RsL29teFNQX0ZGVEluaXRfUl9TMTZTMzIuYyBiL2RsL29teFNQX0ZGVEluaXRfUl9TMTZTMzIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMjIxMGUwCi0tLSAvZGV2L251bGwKKysrIGIvZGwvb214U1BfRkZUSW5pdF9SX1MxNlMzMi5jCkBAIC0wLDAgKzEsMjY0IEBACisvKgorICogIENvcHlyaWdodCAoYykgMjAxMyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKgorICogIFRoaXMgZmlsZSB3YXMgb3JpZ2luYWxseSBsaWNlbnNlZCBhcyBmb2xsb3dzLiBJdCBoYXMgYmVlbgorICogIHJlbGljZW5zZWQgd2l0aCBwZXJtaXNzaW9uIGZyb20gdGhlIGNvcHlyaWdodCBob2xkZXJzLgorICovCisKKy8qKgorICogCisgKiBGaWxlIE5hbWU6ICBvbXhTUF9GRlRJbml0X1JfUzE2UzMyLmMKKyAqIE9wZW5NQVggREw6IHYxLjAuMgorICogTGFzdCBNb2RpZmllZCBSZXZpc2lvbjogICA3Nzc3CisgKiBMYXN0IE1vZGlmaWVkIERhdGU6ICAgICAgIFRodSwgMjcgU2VwIDIwMDcKKyAqIAorICogKGMpIENvcHlyaWdodCAyMDA3LTIwMDggQVJNIExpbWl0ZWQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiAKKyAqIAorICogRGVzY3JpcHRpb246IAorICogSW5pdGlhbGl6ZSB0aGUgcmVhbCBmb3J3YXJkLUZGVCBzcGVjaWZpY2F0aW9uIGluZm9ybWF0aW9uIHN0cnVjdC4KKyAqLworCisjaW5jbHVkZSAib214dHlwZXMuaCIKKyNpbmNsdWRlICJhcm1PTVguaCIKKyNpbmNsdWRlICJvbXhTUC5oIgorI2luY2x1ZGUgImFybUNPTU0uaCIKKyNpbmNsdWRlICJhcm1TUC5oIgorCisKKworLyoqCisgKiBGdW5jdGlvbjogb214U1BfRkZUSW5pdF9SX1MxNl9TMzIKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIEluaXRpYWxpemUgdGhlIHJlYWwgZm9yd2FyZC1GRlQgc3BlY2lmaWNhdGlvbiBpbmZvcm1hdGlvbiBzdHJ1Y3QuCisgKgorICogUmVtYXJrczoKKyAqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBpbml0aWFsaXplIHRoZSBzcGVjaWZpY2F0aW9uIHN0cnVjdHVyZXMKKyAqIGZvciBmdW5jdGlvbnMgPGlwcHNGRlRGd2RfUlRvQ0NTX1MxNl9TMzJfU2ZzPiBhbmQKKyAqIDxpcHBzRkZUSW52X0NDU1RvUl9TMzJfUzE2X1Nmcz4uIE1lbW9yeSBmb3IgKnBGRlRTcGVjIG11c3QgYmUKKyAqIGFsbG9jYXRlZCBwcmlvciB0byBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uIFRoZSBudW1iZXIgb2YgYnl0ZXMKKyAqIHJlcXVpcmVkIGZvciAqcEZGVFNwZWMgY2FuIGJlIGRldGVybWluZWQgdXNpbmcKKyAqIDxGRlRHZXRCdWZTaXplX1JfUzE2X1MzMj4uCisgKgorICogUGFyYW1ldGVyczoKKyAqIFtpbl0gIG9yZGVyICAgICAgIGJhc2UtMiBsb2dhcml0aG0gb2YgdGhlIGRlc2lyZWQgYmxvY2sgbGVuZ3RoOworICoJCQkgICB2YWxpZCBpbiB0aGUgcmFuZ2UgWzAsMTJdLgorICogW291dF0gcEZGVEZ3ZFNwZWMgcG9pbnRlciB0byB0aGUgaW5pdGlhbGl6ZWQgc3BlY2lmaWNhdGlvbiBzdHJ1Y3R1cmUuCisgKgorICogUmV0dXJuIFZhbHVlOgorICogU3RhbmRhcmQgb214RXJyb3IgcmVzdWx0LiBTZWUgZW51bWVyYXRpb24gZm9yIHBvc3NpYmxlIHJlc3VsdCBjb2Rlcy4KKyAqCisgKi8KKworT01YUmVzdWx0IG9teFNQX0ZGVEluaXRfUl9TMTZTMzIoCisgICAgIE9NWEZGVFNwZWNfUl9TMTZTMzIqIHBGRlRTcGVjLAorICAgICBPTVhfSU5UIG9yZGVyCispCit7CisgICAgT01YX0lOVCAgICAgaSxqOworICAgIE9NWF9TQzMyICAgICpwVHdpZGRsZSwqcFR3aWRkbGUxLCpwVHdpZGRsZTIsKnBUd2lkZGxlMywqcFR3aWRkbGU0OworICAgIE9NWF9TMzIgICAgICpwQnVmOworICAgIE9NWF9VMTYgICAgICpwQml0UmV2OworICAgIE9NWF9VMzIgICAgIHBUbXA7CisgICAgT01YX0lOVCAgICAgTmJ5MixOLE0sZGlmZiwgc3RlcDsgCisgICAgT01YX1MzMiAgICAgeCx5LHhOZWc7CisgICAgQVJNc0ZGVFNwZWNfUl9TQzMyICpwRkZUU3RydWN0ID0gMDsKKworICAgCisgICAgcEZGVFN0cnVjdCA9IChBUk1zRkZUU3BlY19SX1NDMzIgKikgcEZGVFNwZWM7CisKKyAgICAvKiBpZiBvcmRlciB6ZXJvIG5vIGluaXQgaXMgbmVlZGVkICovCisgICAgaWYgKG9yZGVyID09IDApCisgICAgeworICAgICAgICBwRkZUU3RydWN0LT5OID0gMTsKKyAgICAgICAgcEZGVFN0cnVjdC0+cFR3aWRkbGUgPSBOVUxMOworICAgICAgICBwRkZUU3RydWN0LT5wQnVmID0gKE9NWF9TMzIgKikKKyAgICAgICAgICAgICAgIChzaXplb2YoQVJNc0ZGVFNwZWNfUl9TQzMyKSArIChPTVhfUzgqKSBwRkZUU3BlYyk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gT01YX1N0c19Ob0VycjsKKyAgICB9CisKKyAgICAvKiBEbyB0aGUgaW5pdGlhbGl6YXRpb25zICovCisgICAgTmJ5MiA9IDEgPDwgKG9yZGVyIC0gMSk7CisgICAgTiA9IE5ieTIgPDwgMTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgCisgICAgCisgICAgcEJpdFJldiA9IE5VTEwgOyAgICAgICAgICAgICAgICAvKiBvcHRpbWl6ZWQgaW1wbGVtZW50YXRpb25zIGRvbid0IHVzZSBiaXRyZXZlcnNhbCAqLworICAgIAorICAgIHBUd2lkZGxlID0gKE9NWF9TQzMyICopIAorICAgICAgICAoc2l6ZW9mKEFSTXNGRlRTcGVjX1JfU0MzMikgKyAoT01YX1M4KikgcEZGVFNwZWMpOworICAgIAorICAgIC8qIEFsaWduIHRvIDMyIGJ5dGUgYm91bmRhcnkgKi8KKyAgICBwVG1wID0gKChPTVhfVTMyKXBUd2lkZGxlKSYzMTsgICAgICAgICAgICAgIC8qIChPTVhfVTMyKXBUd2lkZGxlICUgMzIgKi8KKyAgICBpZihwVG1wICE9IDApCisgICAgICAgIHBUd2lkZGxlID0gKE9NWF9TQzMyKikgKChPTVhfUzgqKXBUd2lkZGxlICsgKDMyLXBUbXApKTsgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAKKyAgICAgICAgCisgICAgcEJ1ZiA9IChPTVhfUzMyKikgICAgICAgIAorICAgICAgICAoc2l6ZW9mKE9NWF9TQzMyKSAqICg1Kk4vOCkgKyAoT01YX1M4KikgcFR3aWRkbGUpOworICAgICAgICAKKyAgICAvKiBBbGlnbiB0byAzMiBieXRlIGJvdW5kYXJ5ICovCisgICAgcFRtcCA9ICgoT01YX1UzMilwQnVmKSYzMTsgICAgICAgICAgICAgICAgIC8qIChPTVhfVTMyKXBCdWYgJSAzMiAqLworICAgIGlmKHBUbXAgIT0gMCkKKyAgICAgICAgcEJ1ZiA9IChPTVhfUzMyKikgKChPTVhfUzgqKXBCdWYgKyAoMzItcFRtcCkpOyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgCisgICAgCisgICAgCisgICAgLyogCisgICAgICogRmlsbGluZyBUd2lkZGxlIGZhY3RvcnMgOiBleHBeKC1qKjIqUEkqay8gKE4vMikgKSA7IGs9MCwxLDIsLi4uLDMvNChOLzIpCisgICAgICogTi8yIHBvaW50IGNvbXBsZXggRkZUIGlzIHVzZWQgdG8gY29tcHV0ZSBOIHBvaW50IHJlYWwgRkZUCisgICAgICogVGhlIG9yaWdpbmFsIHR3aWRkbGUgdGFibGUgImFybVNQX0ZGVF9TMzJUd2lkZGxlVGFibGUiIGlzIG9mIHNpemUgKE1heFNpemUvOCArIDEpCisgICAgICogUmVzdCBvZiB0aGUgdmFsdWVzIGkuZS4sIHVwdG8gTWF4U2l6ZSBhcmUgY2FsY3VsYXRlZCB1c2luZyB0aGUgc3ltbWV0cmllcyBvZiBzaW4gYW5kIGNvcworICAgICAqIFRoZSBtYXggc2l6ZSBvZiB0aGUgdHdpZGRsZSB0YWJsZSBuZWVkZWQgaXMgMy80KE4vMikgZm9yIGEgcmFkaXgtNCBzdGFnZQorICAgICAqCisgICAgICogVyA9ICgtMiAqIFBJKSAvIE4gCisgICAgICogTiA9IDEgPDwgb3JkZXIKKyAgICAgKiBXID0gLVBJID4+IChvcmRlciAtIDEpCisgICAgICovCisgICAgCisgICAgTSA9IE5ieTI+PjM7CisgICAgZGlmZiA9IDEyIC0gKG9yZGVyLTEpOworICAgIHN0ZXAgPSAxPDxkaWZmOyAgICAgICAgICAgICAvKiBzdGVwIGludG8gdGhlIHR3aWRkbGUgdGFibGUgZm9yIHRoZSBjdXJyZW50IG9yZGVyICovCisgICAgCisgICAgeCA9IGFybVNQX0ZGVF9TMzJUd2lkZGxlVGFibGVbMF07CisgICAgeSA9IGFybVNQX0ZGVF9TMzJUd2lkZGxlVGFibGVbMV07CisgICAgeE5lZyA9IDB4N0ZGRkZGRkY7CisgICAgCisgICAgaWYoKG9yZGVyLTEpID49MykgICAgCisgICAgeworICAgICAgICAgICAgLyogaSA9IDAgY2FzZSAqLworICAgICAgICAgICAgcFR3aWRkbGVbMF0uUmUgPSB4OworICAgICAgICAgICAgcFR3aWRkbGVbMF0uSW0gPSB5OworICAgICAgICAgICAgcFR3aWRkbGVbMipNXS5SZSA9IC15OworICAgICAgICAgICAgcFR3aWRkbGVbMipNXS5JbSA9IHhOZWc7CisgICAgICAgICAgICBwVHdpZGRsZVs0Kk1dLlJlID0geE5lZzsKKyAgICAgICAgICAgIHBUd2lkZGxlWzQqTV0uSW0gPSB5OworICAgICAgICAgICAgCisgICAgCisgICAgICAgIGZvciAoaT0xOyBpPD1NOyBpKyspCisgICAgICAgICAgeworICAgICAgICAgICAgaiA9IGkqc3RlcDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgeCA9IGFybVNQX0ZGVF9TMzJUd2lkZGxlVGFibGVbMipqXTsKKyAgICAgICAgICAgIHkgPSBhcm1TUF9GRlRfUzMyVHdpZGRsZVRhYmxlWzIqaisxXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcFR3aWRkbGVbaV0uUmUgPSB4OworICAgICAgICAgICAgcFR3aWRkbGVbaV0uSW0gPSB5OworICAgICAgICAgICAgcFR3aWRkbGVbMipNLWldLlJlID0gLXk7CisgICAgICAgICAgICBwVHdpZGRsZVsyKk0taV0uSW0gPSAteDsKKyAgICAgICAgICAgIHBUd2lkZGxlWzIqTStpXS5SZSA9IHk7CisgICAgICAgICAgICBwVHdpZGRsZVsyKk0raV0uSW0gPSAteDsKKyAgICAgICAgICAgIHBUd2lkZGxlWzQqTS1pXS5SZSA9IC14OworICAgICAgICAgICAgcFR3aWRkbGVbNCpNLWldLkltID0geTsKKyAgICAgICAgICAgIHBUd2lkZGxlWzQqTStpXS5SZSA9IC14OworICAgICAgICAgICAgcFR3aWRkbGVbNCpNK2ldLkltID0gLXk7CisgICAgICAgICAgICBwVHdpZGRsZVs2Kk0taV0uUmUgPSB5OworICAgICAgICAgICAgcFR3aWRkbGVbNipNLWldLkltID0geDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgCisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIGlmICgob3JkZXItMSkgPT0gMikKKyAgICAgICAgeworICAgICAgICAgICAgcFR3aWRkbGVbMF0uUmUgPSB4OworICAgICAgICAgICAgcFR3aWRkbGVbMF0uSW0gPSB5OworICAgICAgICAgICAgcFR3aWRkbGVbMV0uUmUgPSAteTsKKyAgICAgICAgICAgIHBUd2lkZGxlWzFdLkltID0geE5lZzsKKyAgICAgICAgICAgIHBUd2lkZGxlWzJdLlJlID0geE5lZzsKKyAgICAgICAgICAgIHBUd2lkZGxlWzJdLkltID0geTsKKyAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgaWYgKChvcmRlci0xKSA9PSAxKQorICAgICAgICB7CisgICAgICAgICAgICBwVHdpZGRsZVswXS5SZSA9IHg7CisgICAgICAgICAgICBwVHdpZGRsZVswXS5JbSA9IHk7CisgICAgICAgIAorICAgICAgICB9ICAgICAgICAKKyAgICAgICAgCisgICAgCisgICAgfQorICAgIAorICAgIAorICAgIC8qCisgICAgICogTm93IGZpbGwgdGhlIGxhc3QgTi80IHZhbHVlcyA6IGV4cF4oLWoqMipQSSprL04pIDsgIGs9MSwzLDUsLi4uLE4vMi0xIAorICAgICAqIFRoZXNlIGFyZSB1c2VkIGZvciB0aGUgZmluYWwgdHdpZGRsZSBmaXgtdXAgZm9yIGNvbnZlcnRpbmcgY29tcGxleCB0byByZWFsIEZGVAorICAgICAqLworICAgICAKKyAgICBNID0gTj4+MzsKKyAgICBkaWZmID0gMTIgLSBvcmRlcjsKKyAgICBzdGVwID0gMTw8ZGlmZjsKKyAgICAKKyAgICBwVHdpZGRsZTEgPSBwVHdpZGRsZSArIDMqTi84OworICAgIHBUd2lkZGxlNCA9IHBUd2lkZGxlMSArIChOLzQtMSk7CisgICAgcFR3aWRkbGUzID0gcFR3aWRkbGUxICsgTi84OworICAgIHBUd2lkZGxlMiA9IHBUd2lkZGxlMSArIChOLzgtMSk7CisgICAgCisgICAgeCA9IGFybVNQX0ZGVF9TMzJUd2lkZGxlVGFibGVbMF07CisgICAgeSA9IGFybVNQX0ZGVF9TMzJUd2lkZGxlVGFibGVbMV07CisgICAgeE5lZyA9IDB4N0ZGRkZGRkY7CisgICAgCisgICAgaWYoKG9yZGVyKSA+PTMpICAgIAorICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIAorICAgICAgICBmb3IgKGk9MTsgaTw9TTsgaSs9MiApCisgICAgICAgICAgeworICAgICAgICAgICAgaiA9IGkqc3RlcDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgeCA9IGFybVNQX0ZGVF9TMzJUd2lkZGxlVGFibGVbMipqXTsKKyAgICAgICAgICAgIHkgPSBhcm1TUF9GRlRfUzMyVHdpZGRsZVRhYmxlWzIqaisxXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcFR3aWRkbGUxWzBdLlJlID0geDsKKyAgICAgICAgICAgIHBUd2lkZGxlMVswXS5JbSA9IHk7CisgICAgICAgICAgICBwVHdpZGRsZTEgKz0gMTsKKyAgICAgICAgICAgIHBUd2lkZGxlMlswXS5SZSA9IC15OworICAgICAgICAgICAgcFR3aWRkbGUyWzBdLkltID0gLXg7CisgICAgICAgICAgICBwVHdpZGRsZTIgLT0gMTsKKyAgICAgICAgICAgIHBUd2lkZGxlM1swXS5SZSA9IHk7CisgICAgICAgICAgICBwVHdpZGRsZTNbMF0uSW0gPSAteDsKKyAgICAgICAgICAgIHBUd2lkZGxlMyArPSAxOworICAgICAgICAgICAgcFR3aWRkbGU0WzBdLlJlID0gLXg7CisgICAgICAgICAgICBwVHdpZGRsZTRbMF0uSW0gPSB5OworICAgICAgICAgICAgcFR3aWRkbGU0IC09IDE7CisgICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgCisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIGlmIChvcmRlciA9PSAyKQorICAgICAgICB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHBUd2lkZGxlMVswXS5SZSA9IC15OworICAgICAgICAgICAgcFR3aWRkbGUxWzBdLkltID0geE5lZzsKKyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgCisgICAgfQorICAgICAKKyAgIAorICAgIC8qIFVwZGF0ZSB0aGUgc3RydWN0dXJlICovCisgICAgcEZGVFN0cnVjdC0+TiA9IE47CisgICAgcEZGVFN0cnVjdC0+cFR3aWRkbGUgPSBwVHdpZGRsZTsKKyAgICBwRkZUU3RydWN0LT5wQml0UmV2ID0gcEJpdFJldjsKKyAgICBwRkZUU3RydWN0LT5wQnVmID0gcEJ1ZjsKKworICAgIHJldHVybiBPTVhfU3RzX05vRXJyOworfQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVORCBPRiBGSUxFCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKZGlmZiAtLWdpdCBhL2RsL29teFNQX0ZGVEluaXRfUl9TMzIuYyBiL2RsL29teFNQX0ZGVEluaXRfUl9TMzIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YTFhMjI1Ci0tLSAvZGV2L251bGwKKysrIGIvZGwvb214U1BfRkZUSW5pdF9SX1MzMi5jCkBAIC0wLDAgKzEsMjYyIEBACisvKgorICogIENvcHlyaWdodCAoYykgMjAxMyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKgorICogIFRoaXMgZmlsZSB3YXMgb3JpZ2luYWxseSBsaWNlbnNlZCBhcyBmb2xsb3dzLiBJdCBoYXMgYmVlbgorICogIHJlbGljZW5zZWQgd2l0aCBwZXJtaXNzaW9uIGZyb20gdGhlIGNvcHlyaWdodCBob2xkZXJzLgorICovCisKKy8qKgorICogCisgKiBGaWxlIE5hbWU6ICBvbXhTUF9GRlRJbml0X1JfUzMyLmMKKyAqIE9wZW5NQVggREw6IHYxLjAuMgorICogTGFzdCBNb2RpZmllZCBSZXZpc2lvbjogICA3Nzc3CisgKiBMYXN0IE1vZGlmaWVkIERhdGU6ICAgICAgIFRodSwgMjcgU2VwIDIwMDcKKyAqIAorICogKGMpIENvcHlyaWdodCAyMDA3LTIwMDggQVJNIExpbWl0ZWQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiAKKyAqIAorICogRGVzY3JpcHRpb246IAorICogSW5pdGlhbGl6ZSB0aGUgcmVhbCBmb3J3YXJkLUZGVCBzcGVjaWZpY2F0aW9uIGluZm9ybWF0aW9uIHN0cnVjdC4KKyAqLworCisjaW5jbHVkZSAib214dHlwZXMuaCIKKyNpbmNsdWRlICJhcm1PTVguaCIKKyNpbmNsdWRlICJvbXhTUC5oIgorI2luY2x1ZGUgImFybUNPTU0uaCIKKyNpbmNsdWRlICJhcm1TUC5oIgorCisKKworLyoqCisgKiBGdW5jdGlvbjogb214U1BfRkZUSW5pdF9SX1MzMgorICoKKyAqIERlc2NyaXB0aW9uOgorICogSW5pdGlhbGl6ZSB0aGUgcmVhbCBmb3J3YXJkLUZGVCBzcGVjaWZpY2F0aW9uIGluZm9ybWF0aW9uIHN0cnVjdC4KKyAqCisgKiBSZW1hcmtzOgorICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGluaXRpYWxpemUgdGhlIHNwZWNpZmljYXRpb24gc3RydWN0dXJlcworICogZm9yIGZ1bmN0aW9ucyA8aXBwc0ZGVEZ3ZF9SVG9DQ1NfUzMyX1Nmcz4gYW5kCisgKiA8aXBwc0ZGVEludl9DQ1NUb1JfUzMyX1Nmcz4uIE1lbW9yeSBmb3IgKnBGRlRTcGVjIG11c3QgYmUKKyAqIGFsbG9jYXRlZCBwcmlvciB0byBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uIFRoZSBudW1iZXIgb2YgYnl0ZXMKKyAqIHJlcXVpcmVkIGZvciAqcEZGVFNwZWMgY2FuIGJlIGRldGVybWluZWQgdXNpbmcKKyAqIDxGRlRHZXRCdWZTaXplX1JfUzMyPi4KKyAqCisgKiBQYXJhbWV0ZXJzOgorICogW2luXSAgb3JkZXIgICAgICAgYmFzZS0yIGxvZ2FyaXRobSBvZiB0aGUgZGVzaXJlZCBibG9jayBsZW5ndGg7CisgKgkJCSAgIHZhbGlkIGluIHRoZSByYW5nZSBbMCwxMl0uCisgKiBbb3V0XSBwRkZURndkU3BlYyBwb2ludGVyIHRvIHRoZSBpbml0aWFsaXplZCBzcGVjaWZpY2F0aW9uIHN0cnVjdHVyZS4KKyAqCisgKiBSZXR1cm4gVmFsdWU6CisgKiBTdGFuZGFyZCBvbXhFcnJvciByZXN1bHQuIFNlZSBlbnVtZXJhdGlvbiBmb3IgcG9zc2libGUgcmVzdWx0IGNvZGVzLgorICoKKyAqLworT01YUmVzdWx0IG9teFNQX0ZGVEluaXRfUl9TMzIoCisgICAgIE9NWEZGVFNwZWNfUl9TMzIqIHBGRlRTcGVjLAorICAgICBPTVhfSU5UIG9yZGVyCispCit7CisgICAgT01YX0lOVCAgICAgaSxqOworICAgIE9NWF9TQzMyICAgICpwVHdpZGRsZSwqcFR3aWRkbGUxLCpwVHdpZGRsZTIsKnBUd2lkZGxlMywqcFR3aWRkbGU0OworICAgIE9NWF9TMzIgICAgICpwQnVmOworICAgIE9NWF9VMTYgICAgICpwQml0UmV2OworICAgIE9NWF9VMzIgICAgIHBUbXA7CisgICAgT01YX0lOVCAgICAgTmJ5MixOLE0sZGlmZiwgc3RlcDsgCisgICAgT01YX1MzMiAgICAgeCx5LHhOZWc7CisgICAgQVJNc0ZGVFNwZWNfUl9TQzMyICpwRkZUU3RydWN0ID0gMDsKKworICAgCisgICAgcEZGVFN0cnVjdCA9IChBUk1zRkZUU3BlY19SX1NDMzIgKikgcEZGVFNwZWM7CisKKyAgICAvKiBpZiBvcmRlciB6ZXJvIG5vIGluaXQgaXMgbmVlZGVkICovCisgICAgaWYgKG9yZGVyID09IDApCisgICAgeworICAgICAgICBwRkZUU3RydWN0LT5OID0gMTsKKyAgICAgICAgcEZGVFN0cnVjdC0+cFR3aWRkbGUgPSBOVUxMOworICAgICAgICBwRkZUU3RydWN0LT5wQnVmID0gKE9NWF9TMzIgKikKKyAgICAgICAgICAgICAgIChzaXplb2YoQVJNc0ZGVFNwZWNfUl9TQzMyKSArIChPTVhfUzgqKSBwRkZUU3BlYyk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gT01YX1N0c19Ob0VycjsKKyAgICB9CisKKyAgICAvKiBEbyB0aGUgaW5pdGlhbGl6YXRpb25zICovCisgICAgTmJ5MiA9IDEgPDwgKG9yZGVyIC0gMSk7CisgICAgTiA9IE5ieTIgPDwgMTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgCisgICAgCisgICAgcEJpdFJldiA9IE5VTEwgOyAgICAgICAgICAgICAgICAvKiBvcHRpbWl6ZWQgaW1wbGVtZW50YXRpb25zIGRvbid0IHVzZSBiaXRyZXZlcnNhbCAqLworICAgIAorICAgIHBUd2lkZGxlID0gKE9NWF9TQzMyICopIAorICAgICAgICAoc2l6ZW9mKEFSTXNGRlRTcGVjX1JfU0MzMikgKyAoT01YX1M4KikgcEZGVFNwZWMpOworICAgICAgICAKKyAgICAvKiBBbGlnbiB0byAzMiBieXRlIGJvdW5kYXJ5ICovCisgICAgcFRtcCA9ICgoT01YX1UzMilwVHdpZGRsZSkmMzE7ICAgICAgICAgICAgICAvKiAoT01YX1UzMilwVHdpZGRsZSAlIDMyICovCisgICAgaWYocFRtcCAhPSAwKQorICAgICAgICBwVHdpZGRsZSA9IChPTVhfU0MzMiopICgoT01YX1M4KilwVHdpZGRsZSArICgzMi1wVG1wKSk7ICAgICAgICAgICAgICAgIAorICAgICAgICAKKyAgICBwQnVmID0gKE9NWF9TMzIqKSAgICAgICAgCisgICAgICAgIChzaXplb2YoT01YX1NDMzIpICogKDUqTi84KSArIChPTVhfUzgqKSBwVHdpZGRsZSk7CisgICAgCisgICAgLyogQWxpZ24gdG8gMzIgYnl0ZSBib3VuZGFyeSAqLworICAgIHBUbXAgPSAoKE9NWF9VMzIpcEJ1ZikmMzE7ICAgICAgICAgICAgICAgICAvKiAoT01YX1UzMilwQnVmICUgMzIgKi8KKyAgICBpZihwVG1wICE9IDApCisgICAgICAgIHBCdWYgPSAoT01YX1MzMiopICgoT01YX1M4KilwQnVmICsgKDMyLXBUbXApKTsgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgCisgICAgCisgICAgCisgICAgLyogCisgICAgICogRmlsbGluZyBUd2lkZGxlIGZhY3RvcnMgOiBleHBeKC1qKjIqUEkqay8gKE4vMikgKSA7IGs9MCwxLDIsLi4uLDMvNChOLzIpCisgICAgICogTi8yIHBvaW50IGNvbXBsZXggRkZUIGlzIHVzZWQgdG8gY29tcHV0ZSBOIHBvaW50IHJlYWwgRkZUCisgICAgICogVGhlIG9yaWdpbmFsIHR3aWRkbGUgdGFibGUgImFybVNQX0ZGVF9TMzJUd2lkZGxlVGFibGUiIGlzIG9mIHNpemUgKE1heFNpemUvOCArIDEpCisgICAgICogUmVzdCBvZiB0aGUgdmFsdWVzIGkuZS4sIHVwdG8gTWF4U2l6ZSBhcmUgY2FsY3VsYXRlZCB1c2luZyB0aGUgc3ltbWV0cmllcyBvZiBzaW4gYW5kIGNvcworICAgICAqIFRoZSBtYXggc2l6ZSBvZiB0aGUgdHdpZGRsZSB0YWJsZSBuZWVkZWQgaXMgMy80KE4vMikgZm9yIGEgcmFkaXgtNCBzdGFnZQorICAgICAqCisgICAgICogVyA9ICgtMiAqIFBJKSAvIE4gCisgICAgICogTiA9IDEgPDwgb3JkZXIKKyAgICAgKiBXID0gLVBJID4+IChvcmRlciAtIDEpCisgICAgICovCisgICAgCisgICAgTSA9IE5ieTI+PjM7CisgICAgZGlmZiA9IDEyIC0gKG9yZGVyLTEpOworICAgIHN0ZXAgPSAxPDxkaWZmOyAgICAgICAgICAgICAvKiBzdGVwIGludG8gdGhlIHR3aWRkbGUgdGFibGUgZm9yIHRoZSBjdXJyZW50IG9yZGVyICovCisgICAgCisgICAgeCA9IGFybVNQX0ZGVF9TMzJUd2lkZGxlVGFibGVbMF07CisgICAgeSA9IGFybVNQX0ZGVF9TMzJUd2lkZGxlVGFibGVbMV07CisgICAgeE5lZyA9IDB4N0ZGRkZGRkY7CisgICAgCisgICAgaWYoKG9yZGVyLTEpID49MykgICAgCisgICAgeworICAgICAgICAgICAgLyogaSA9IDAgY2FzZSAqLworICAgICAgICAgICAgcFR3aWRkbGVbMF0uUmUgPSB4OworICAgICAgICAgICAgcFR3aWRkbGVbMF0uSW0gPSB5OworICAgICAgICAgICAgcFR3aWRkbGVbMipNXS5SZSA9IC15OworICAgICAgICAgICAgcFR3aWRkbGVbMipNXS5JbSA9IHhOZWc7CisgICAgICAgICAgICBwVHdpZGRsZVs0Kk1dLlJlID0geE5lZzsKKyAgICAgICAgICAgIHBUd2lkZGxlWzQqTV0uSW0gPSB5OworICAgICAgICAgICAgCisgICAgCisgICAgICAgIGZvciAoaT0xOyBpPD1NOyBpKyspCisgICAgICAgICAgeworICAgICAgICAgICAgaiA9IGkqc3RlcDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgeCA9IGFybVNQX0ZGVF9TMzJUd2lkZGxlVGFibGVbMipqXTsKKyAgICAgICAgICAgIHkgPSBhcm1TUF9GRlRfUzMyVHdpZGRsZVRhYmxlWzIqaisxXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcFR3aWRkbGVbaV0uUmUgPSB4OworICAgICAgICAgICAgcFR3aWRkbGVbaV0uSW0gPSB5OworICAgICAgICAgICAgcFR3aWRkbGVbMipNLWldLlJlID0gLXk7CisgICAgICAgICAgICBwVHdpZGRsZVsyKk0taV0uSW0gPSAteDsKKyAgICAgICAgICAgIHBUd2lkZGxlWzIqTStpXS5SZSA9IHk7CisgICAgICAgICAgICBwVHdpZGRsZVsyKk0raV0uSW0gPSAteDsKKyAgICAgICAgICAgIHBUd2lkZGxlWzQqTS1pXS5SZSA9IC14OworICAgICAgICAgICAgcFR3aWRkbGVbNCpNLWldLkltID0geTsKKyAgICAgICAgICAgIHBUd2lkZGxlWzQqTStpXS5SZSA9IC14OworICAgICAgICAgICAgcFR3aWRkbGVbNCpNK2ldLkltID0gLXk7CisgICAgICAgICAgICBwVHdpZGRsZVs2Kk0taV0uUmUgPSB5OworICAgICAgICAgICAgcFR3aWRkbGVbNipNLWldLkltID0geDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgCisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIGlmICgob3JkZXItMSkgPT0gMikKKyAgICAgICAgeworICAgICAgICAgICAgcFR3aWRkbGVbMF0uUmUgPSB4OworICAgICAgICAgICAgcFR3aWRkbGVbMF0uSW0gPSB5OworICAgICAgICAgICAgcFR3aWRkbGVbMV0uUmUgPSAteTsKKyAgICAgICAgICAgIHBUd2lkZGxlWzFdLkltID0geE5lZzsKKyAgICAgICAgICAgIHBUd2lkZGxlWzJdLlJlID0geE5lZzsKKyAgICAgICAgICAgIHBUd2lkZGxlWzJdLkltID0geTsKKyAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgaWYgKChvcmRlci0xKSA9PSAxKQorICAgICAgICB7CisgICAgICAgICAgICBwVHdpZGRsZVswXS5SZSA9IHg7CisgICAgICAgICAgICBwVHdpZGRsZVswXS5JbSA9IHk7CisgICAgICAgIAorICAgICAgICB9ICAgICAgICAKKyAgICAgICAgCisgICAgCisgICAgfQorICAgIAorICAgIAorICAgIC8qCisgICAgICogTm93IGZpbGwgdGhlIGxhc3QgTi80IHZhbHVlcyA6IGV4cF4oLWoqMipQSSprL04pIDsgIGs9MSwzLDUsLi4uLE4vMi0xIAorICAgICAqIFRoZXNlIGFyZSB1c2VkIGZvciB0aGUgZmluYWwgdHdpZGRsZSBmaXgtdXAgZm9yIGNvbnZlcnRpbmcgY29tcGxleCB0byByZWFsIEZGVAorICAgICAqLworICAgICAKKyAgICBNID0gTj4+MzsKKyAgICBkaWZmID0gMTIgLSBvcmRlcjsKKyAgICBzdGVwID0gMTw8ZGlmZjsKKyAgICAKKyAgICBwVHdpZGRsZTEgPSBwVHdpZGRsZSArIDMqTi84OworICAgIHBUd2lkZGxlNCA9IHBUd2lkZGxlMSArIChOLzQtMSk7CisgICAgcFR3aWRkbGUzID0gcFR3aWRkbGUxICsgTi84OworICAgIHBUd2lkZGxlMiA9IHBUd2lkZGxlMSArIChOLzgtMSk7CisgICAgCisgICAgeCA9IGFybVNQX0ZGVF9TMzJUd2lkZGxlVGFibGVbMF07CisgICAgeSA9IGFybVNQX0ZGVF9TMzJUd2lkZGxlVGFibGVbMV07CisgICAgeE5lZyA9IDB4N0ZGRkZGRkY7CisgICAgCisgICAgaWYoKG9yZGVyKSA+PTMpICAgIAorICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIAorICAgICAgICBmb3IgKGk9MTsgaTw9TTsgaSs9MiApCisgICAgICAgICAgeworICAgICAgICAgICAgaiA9IGkqc3RlcDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgeCA9IGFybVNQX0ZGVF9TMzJUd2lkZGxlVGFibGVbMipqXTsKKyAgICAgICAgICAgIHkgPSBhcm1TUF9GRlRfUzMyVHdpZGRsZVRhYmxlWzIqaisxXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcFR3aWRkbGUxWzBdLlJlID0geDsKKyAgICAgICAgICAgIHBUd2lkZGxlMVswXS5JbSA9IHk7CisgICAgICAgICAgICBwVHdpZGRsZTEgKz0gMTsKKyAgICAgICAgICAgIHBUd2lkZGxlMlswXS5SZSA9IC15OworICAgICAgICAgICAgcFR3aWRkbGUyWzBdLkltID0gLXg7CisgICAgICAgICAgICBwVHdpZGRsZTIgLT0gMTsKKyAgICAgICAgICAgIHBUd2lkZGxlM1swXS5SZSA9IHk7CisgICAgICAgICAgICBwVHdpZGRsZTNbMF0uSW0gPSAteDsKKyAgICAgICAgICAgIHBUd2lkZGxlMyArPSAxOworICAgICAgICAgICAgcFR3aWRkbGU0WzBdLlJlID0gLXg7CisgICAgICAgICAgICBwVHdpZGRsZTRbMF0uSW0gPSB5OworICAgICAgICAgICAgcFR3aWRkbGU0IC09IDE7CisgICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgCisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIGlmIChvcmRlciA9PSAyKQorICAgICAgICB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHBUd2lkZGxlMVswXS5SZSA9IC15OworICAgICAgICAgICAgcFR3aWRkbGUxWzBdLkltID0geE5lZzsKKyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgCisgICAgfQorICAgICAKKyAgIAorICAgIC8qIFVwZGF0ZSB0aGUgc3RydWN0dXJlICovCisgICAgcEZGVFN0cnVjdC0+TiA9IE47CisgICAgcEZGVFN0cnVjdC0+cFR3aWRkbGUgPSBwVHdpZGRsZTsKKyAgICBwRkZUU3RydWN0LT5wQml0UmV2ID0gcEJpdFJldjsKKyAgICBwRkZUU3RydWN0LT5wQnVmID0gcEJ1ZjsKKworICAgIHJldHVybiBPTVhfU3RzX05vRXJyOworfQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVORCBPRiBGSUxFCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKZGlmZiAtLWdpdCBhL2RsL29teFNQX0ZGVEludl9DQ1NUb1JfRjMyX1Nmc19zLlMgYi9kbC9vbXhTUF9GRlRJbnZfQ0NTVG9SX0YzMl9TZnNfcy5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5ZTU3ODkKLS0tIC9kZXYvbnVsbAorKysgYi9kbC9vbXhTUF9GRlRJbnZfQ0NTVG9SX0YzMl9TZnNfcy5TCkBAIC0wLDAgKzEsMjgzIEBACitALy8KK0AvLyAgQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorQC8vCitALy8gIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKK0AvLyAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCitALy8gIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKK0AvLyAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorQC8vICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KK0AvLworQC8vICBUaGlzIGlzIGEgbW9kaWZpY2F0aW9uIG9mIG9teFNQX0ZGVEludl9DQ1NUb1JfUzMyX1Nmc19zLnMKK0AvLyAgdG8gc3VwcG9ydCBmbG9hdCBpbnN0ZWFkIG9mIFNDMzIuCitALy8KKworQC8vCitALy8gRGVzY3JpcHRpb246CitALy8gQ29tcHV0ZSBhbiBpbnZlcnNlIEZGVCBmb3IgYSBjb21wbGV4IHNpZ25hbAorQC8vCitALy8KKworCitALy8gSW5jbHVkZSBzdGFuZGFyZCBoZWFkZXJzCisKKyNpbmNsdWRlICJvbXh0eXBlc19zLmgiCisjaW5jbHVkZSAiYXJtQ09NTV9zLmgiCisKKworQC8vIEltcG9ydCBzeW1ib2xzIHJlcXVpcmVkIGZyb20gb3RoZXIgZmlsZXMKK0AvLyAoRm9yIGV4YW1wbGUgdGFibGVzKQorCisgICAgICAgIC5leHRlcm4gIGFybVNQX0ZGVEludl9DVG9DX0ZDMzJfUmFkaXgyX2ZzX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIC5leHRlcm4gIGFybVNQX0ZGVEludl9DVG9DX0ZDMzJfUmFkaXg0X2ZzX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIC5leHRlcm4gIGFybVNQX0ZGVEludl9DVG9DX0ZDMzJfUmFkaXg4X2ZzX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIC5leHRlcm4gIGFybVNQX0ZGVEludl9DVG9DX0ZDMzJfUmFkaXg0X091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIC5leHRlcm4gIGFybVNQX0ZGVEludl9DVG9DX0ZDMzJfUmFkaXgyX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIC5leHRlcm4gIGFybVNQX0ZGVEludl9DQ1NUb1JfRjMyX3ByZVR3aWRkbGVSYWRpeDJfdW5zYWZlCisKKworQC8vIFNldCBkZWJ1Z2dpbmcgbGV2ZWwKK0AvL0RFQlVHX09OICAgIFNFVEwge1RSVUV9CisKKworCitALy8gR3VhcmRpbmcgaW1wbGVtZW50YXRpb24gYnkgdGhlIHByb2Nlc3NvciBuYW1lCisKKworCisgICAgICBALy8gR3VhcmRpbmcgaW1wbGVtZW50YXRpb24gYnkgdGhlIHByb2Nlc3NvciBuYW1lCisKK0AvLyBJbXBvcnQgc3ltYm9scyByZXF1aXJlZCBmcm9tIG90aGVyIGZpbGVzCitALy8gKEZvciBleGFtcGxlIHRhYmxlcykKKyAgICAgICAgLmV4dGVybiAgYXJtU1BfRkZUSW52X0NUb0NfRkMzMl9SYWRpeDRfbHNfT3V0T2ZQbGFjZV91bnNhZmUKKyAgICAgICAgLmV4dGVybiAgYXJtU1BfRkZUSW52X0NUb0NfRkMzMl9SYWRpeDJfbHNfT3V0T2ZQbGFjZV91bnNhZmUKKworCitALy9JbnB1dCBSZWdpc3RlcnMKKworI2RlZmluZSBwU3JjICAgICAgICAgICAgcjAKKyNkZWZpbmUgcERzdCAgICAgICAgICAgIHIxCisjZGVmaW5lIHBGRlRTcGVjICAgICAgICByMgorI2RlZmluZSBzY2FsZSAgICAgICAgICAgcjMKKworCitALy8gT3V0cHV0IHJlZ2lzdGVycworI2RlZmluZSByZXN1bHQgICAgICAgICAgcjAKKworQC8vTG9jYWwgU2NyYXRjaCBSZWdpc3RlcnMKKworI2RlZmluZSBhcmdUd2lkZGxlICAgICAgcjEKKyNkZWZpbmUgYXJnRHN0ICAgICAgICAgIHIyCisjZGVmaW5lIGFyZ1NjYWxlICAgICAgICByNAorI2RlZmluZSB0bXBPcmRlciAgICAgICAgcjQKKyNkZWZpbmUgcFR3aWRkbGUgICAgICAgIHI0CisjZGVmaW5lIHBPdXQgICAgICAgICAgICByNQorI2RlZmluZSBzdWJGRlRTaXplICAgICAgcjcKKyNkZWZpbmUgc3ViRkZUTnVtICAgICAgIHI2CisjZGVmaW5lIE4gICAgICAgICAgICAgICByNgorI2RlZmluZSBvcmRlciAgICAgICAgICAgcjE0CisjZGVmaW5lIGRpZmYgICAgICAgICAgICByOQorQC8vIFRvdGFsIG51bSBvZiByYWRpeCBzdGFnZXMgcmVxdWlyZWQgdG8gY29tcGxlIHRoZSBGRlQKKyNkZWZpbmUgY291bnQgICAgICAgICAgIHI4CisjZGVmaW5lIHgwciAgICAgICAgICAgICByNAorI2RlZmluZSB4MGkgICAgICAgICAgICAgcjUKKyNkZWZpbmUgZGlmZk1pbnVzT25lICAgIHIyCisjZGVmaW5lIHJvdW5kICAgICAgICAgICByMworCisjZGVmaW5lIHBPdXQxICAgICAgICAgICByMgorI2RlZmluZSBzaXplICAgICAgICAgICAgcjcKKyNkZWZpbmUgc3RlcCAgICAgICAgICAgIHI4CisjZGVmaW5lIHN0ZXAxICAgICAgICAgICByOQorI2RlZmluZSB0d1N0ZXAgICAgICAgICAgcjEwCisjZGVmaW5lIHBUd2lkZGxlVG1wICAgICByMTEKKyNkZWZpbmUgYXJnVHdpZGRsZTEgICAgIHIxMgorI2RlZmluZSB6ZXJvICAgICAgICAgICAgcjE0CisKK0AvLyBOZW9uIHJlZ2lzdGVycworCisjZGVmaW5lIGRYMCAgICAgRDAuRjMyCisjZGVmaW5lIGRTaGlmdCAgRDEuRjMyCisjZGVmaW5lIGRYMSAgICAgRDEuRjMyCisjZGVmaW5lIGRZMCAgICAgRDIuRjMyCisjZGVmaW5lIGRZMSAgICAgRDMuRjMyCisjZGVmaW5lIGRYMHIgICAgRDAuRjMyCisjZGVmaW5lIGRYMGkgICAgRDEuRjMyCisjZGVmaW5lIGRYMXIgICAgRDIuRjMyCisjZGVmaW5lIGRYMWkgICAgRDMuRjMyCisjZGVmaW5lIGRXMHIgICAgRDQuRjMyCisjZGVmaW5lIGRXMGkgICAgRDUuRjMyCisjZGVmaW5lIGRXMXIgICAgRDYuRjMyCisjZGVmaW5lIGRXMWkgICAgRDcuRjMyCisjZGVmaW5lIGRUMCAgICAgRDguRjMyCisjZGVmaW5lIGRUMSAgICAgRDkuRjMyCisjZGVmaW5lIGRUMiAgICAgRDEwLkYzMgorI2RlZmluZSBkVDMgICAgIEQxMS5GMzIKKyNkZWZpbmUgcVQwICAgICBkMTIuRjMyCisjZGVmaW5lIHFUMSAgICAgZDE0LkYzMgorI2RlZmluZSBxVDIgICAgIGQxNi5GMzIKKyNkZWZpbmUgcVQzICAgICBkMTguRjMyCisjZGVmaW5lIGRZMHIgICAgRDQuRjMyCisjZGVmaW5lIGRZMGkgICAgRDUuRjMyCisjZGVmaW5lIGRZMXIgICAgRDYuRjMyCisjZGVmaW5lIGRZMWkgICAgRDcuRjMyCisjZGVmaW5lIGR6ZXJvICAgRDIwLkYzMgorCisjZGVmaW5lIGRZMiAgICAgRDQuRjMyCisjZGVmaW5lIGRZMyAgICAgRDUuRjMyCisjZGVmaW5lIGRXMCAgICAgRDYuRjMyCisjZGVmaW5lIGRXMSAgICAgRDcuRjMyCisjZGVmaW5lIGRXMFRtcCAgRDEwLkYzMgorI2RlZmluZSBkVzFOZWcgIEQxMS5GMzIKKworI2RlZmluZSBzTiAgICAgIFMwLlMzMgorI2RlZmluZSBmTiAgICAgIFMxLkYzMgorQC8vIG9uZSBtdXN0IGJlIHRoZSBzYW1lIGFzIGRTY2FsZVswXSEKKyNkZWZpbmUgZFNjYWxlICBEMi5GMzIKKyNkZWZpbmUgb25lICAgICBTNC5GMzIKKworCisgICAgQC8vIEFsbG9jYXRlIHN0YWNrIG1lbW9yeSByZXF1aXJlZCBieSB0aGUgZnVuY3Rpb24KKyAgICAgICAgTV9BTExPQzQgICAgICAgIGNvbXBsZXhGRlRTaXplLCA0CisKKyAgICBALy8gV3JpdGUgZnVuY3Rpb24gaGVhZGVyCisgICAgICAgIE1fU1RBUlQgICAgIG9teFNQX0ZGVEludl9DQ1NUb1JfRjMyX1NmcyxyMTEsZDE1CisKK0AgU3RydWN0dXJlIG9mZnNldHMgZm9yIHRoZSBGRlRTcGVjCisgICAgICAgIC5zZXQgICAgQVJNc0ZGVFNwZWNfTiwgMAorICAgICAgICAuc2V0ICAgIEFSTXNGRlRTcGVjX3BCaXRSZXYsIDQKKyAgICAgICAgLnNldCAgICBBUk1zRkZUU3BlY19wVHdpZGRsZSwgOAorICAgICAgICAuc2V0ICAgIEFSTXNGRlRTcGVjX3BCdWYsIDEyCisKKyAgICAgICAgQC8vIERlZmluZSBzdGFjayBhcmd1bWVudHMKKworICAgICAgICBALy8gUmVhZCB0aGUgc2l6ZSBmcm9tIHN0cnVjdHVyZSBhbmQgdGFrZSBsb2cKKyAgICAgICAgTERSICAgICBOLCBbcEZGVFNwZWMsICNBUk1zRkZUU3BlY19OXQorCisgICAgICAgIEAvLyBSZWFkIG90aGVyIHN0cnVjdHVyZSBwYXJhbWV0ZXJzCisgICAgICAgIExEUiAgICAgcFR3aWRkbGUsIFtwRkZUU3BlYywgI0FSTXNGRlRTcGVjX3BUd2lkZGxlXQorICAgICAgICBMRFIgICAgIHBPdXQsIFtwRkZUU3BlYywgI0FSTXNGRlRTcGVjX3BCdWZdCisKKyAgICAgICAgQC8vICBOPTEgVHJlYXQgc2VwZXJhdGVseQorICAgICAgICBDTVAgICAgIE4sIzEKKyAgICAgICAgQkdUICAgICBzaXplR3JlYXRlclRoYW5PbmUKKyAgICAgICAgVkxEMSAgICBkWDBbMF0sW3BTcmNdCisgICAgICAgIFZTVDEgICAgZFgwWzBdLFtwRHN0XQorCisgICAgICAgIEIgICAgICAgRW5kCisKK3NpemVHcmVhdGVyVGhhbk9uZToKKworICAgICAgICBALy8gQ2FsbCB0aGUgcHJlVHdpZGRsZSBSYWRpeDIgc3RhZ2UgYmVmb3JlIGRvaW5nIHRoZSBjb21wbGVkSUZGVAorCisKKyAgICAgICAgQkwgICAgYXJtU1BfRkZUSW52X0NDU1RvUl9GMzJfcHJlVHdpZGRsZVJhZGl4Ml91bnNhZmUKKworCitjb21wbGV4SUZGVDoKKworICAgICAgICBBU1IgICAgIE4sTiwjMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQC8vIE4vMiBwb2ludCBjb21wbGV4IElGRlQKKyAgICAgICAgTV9TVFIgICBOLCBjb21wbGV4RkZUU2l6ZSAgICAgICAgICAgICAgICAgIEAgU2F2ZSBOIGZvciBzY2FsaW5nIGxhdGVyCisgICAgICAgIEFERCAgICAgcFNyYyxwT3V0LE4sTFNMICMzICAgICAgICAgICAgICAgICBALy8gc2V0IHBTcmMgYXMgcE91dDEKKworICAgICAgICBDTFogICAgIG9yZGVyLE4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyBOID0gMl5vcmRlcgorICAgICAgICBSU0IgICAgIG9yZGVyLG9yZGVyLCMzMQorICAgICAgICBNT1YgICAgIHN1YkZGVFNpemUsIzEKKyAgICAgICAgQC8vTU9WICAgICBzdWJGRlROdW0sTgorCisgICAgICAgIENNUCAgICAgb3JkZXIsIzMKKyAgICAgICAgQkdUICAgICBvcmRlckdyZWF0ZXJ0aGFuMyAgICAgICAgICAgICAgICAgICBALy8gb3JkZXIgPiAzCisKKyAgICAgICAgQ01QICAgICBvcmRlciwjMQorICAgICAgICBCR0UgICAgIG9yZGVyR3JlYXRlcnRoYW4wICAgICAgICAgICAgICAgICAgIEAvLyBvcmRlciA+IDAKKworICAgICAgICBWTEQxICAgIGRYMCxbcFNyY10KKyAgICAgICAgVlNUMSAgICBkWDAsW3BEc3RdCisgICAgICAgIE1PViAgICAgcFNyYyxwRHN0CisgICAgICAgIEJMVCAgICAgRkZURW5kCisKK29yZGVyR3JlYXRlcnRoYW4wOgorICAgICAgICBALy8gc2V0IHRoZSBidWZmZXJzIGFwcHJvcHJpYXRlbHkgZm9yIHZhcmlvdXMgb3JkZXJzCisgICAgICAgIENNUCAgICAgb3JkZXIsIzIKKyAgICAgICAgTU9WTkUgICBhcmdEc3QscERzdAorICAgICAgICBNT1ZFUSAgIGFyZ0RzdCxwT3V0CisgICAgICAgIEAvLyBQYXNzIHRoZSBmaXJzdCBzdGFnZSBkZXN0aW5hdGlvbiBpbiBSTjUKKyAgICAgICAgTU9WRVEgICBwT3V0LHBEc3QKKyAgICAgICAgTU9WICAgICBhcmdUd2lkZGxlLHBUd2lkZGxlCisKKyAgICAgICAgQkdFICAgICBvcmRlckdyZWF0ZXJ0aGFuMQorICAgICAgICBCTExUICAgIGFybVNQX0ZGVEludl9DVG9DX0ZDMzJfUmFkaXgyX2ZzX091dE9mUGxhY2VfdW5zYWZlICBALy8gb3JkZXIgPSAxCisgICAgICAgIEIgICAgICAgRkZURW5kCisKK29yZGVyR3JlYXRlcnRoYW4xOgorICAgICAgICBNT1YgICAgIHRtcE9yZGVyLG9yZGVyICAgICAgICAgICAgICAgICAgICAgICAgICBALy8gdG1wT3JkZXIgPSBSTiA0CisgICAgICAgIEJMICAgICAgYXJtU1BfRkZUSW52X0NUb0NfRkMzMl9SYWRpeDJfZnNfT3V0T2ZQbGFjZV91bnNhZmUKKyAgICAgICAgQ01QICAgICB0bXBPcmRlciwjMgorICAgICAgICBCTEdUICAgIGFybVNQX0ZGVEludl9DVG9DX0ZDMzJfUmFkaXgyX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIEJMICAgICAgYXJtU1BfRkZUSW52X0NUb0NfRkMzMl9SYWRpeDJfbHNfT3V0T2ZQbGFjZV91bnNhZmUKKyAgICAgICAgQiAgICAgICBGRlRFbmQKKworCitvcmRlckdyZWF0ZXJ0aGFuMzoKK3NwZWNpYWxTY2FsZUNhc2U6CisKKyAgICAgICAgQC8vIFNldCBpbnB1dCBhcmdzIHRvIGZmdCBzdGFnZXMKKyAgICAgICAgVFNUICAgICBvcmRlciwgIzIKKyAgICAgICAgTU9WTkUgICBhcmdEc3QscERzdAorICAgICAgICBNT1ZFUSAgIGFyZ0RzdCxwT3V0CisgICAgICAgIEAvLyBQYXNzIHRoZSBmaXJzdCBzdGFnZSBkZXN0aW5hdGlvbiBpbiBSTjUKKyAgICAgICAgTU9WRVEgICBwT3V0LHBEc3QKKyAgICAgICAgTU9WICAgICBhcmdUd2lkZGxlLHBUd2lkZGxlCisKKyAgICAgICAgQC8vY2hlY2sgZm9yIGV2ZW4gb3Igb2RkIG9yZGVyCisgICAgICAgIEAvLyBOT1RFOiBUaGUgZm9sbG93aW5nIGNvbWJpbmF0aW9uIG9mIEJMJ3Mgd291bGQgd29yayBmaW5lIGV2ZW4gdGhvdWdoCisgICAgICAgIEAvLyB0aGUgZmlyc3QgQkwgd291bGQgY29ycnVwdCB0aGUgZmxhZ3MuIFRoaXMgaXMgYmVjYXVzZSB0aGUgZW5kIG9mCisgICAgICAgIEAvLyB0aGUgImdycFplcm9TZXRMb29wIiBsb29wIGluc2lkZQorICAgICAgICBALy8gYXJtU1BfRkZUSW52X0NUb0NfRkMzMl9SYWRpeDRfZnNfT3V0T2ZQbGFjZV91bnNhZmUgc2V0cyB0aGUgWiBmbGFnCisgICAgICAgIEAvLyB0byBFUQorCisgICAgICAgIFRTVCAgICAgb3JkZXIsIzB4MDAwMDAwMDEKKyAgICAgICAgQkxFUSAgICBhcm1TUF9GRlRJbnZfQ1RvQ19GQzMyX1JhZGl4NF9mc19PdXRPZlBsYWNlX3Vuc2FmZQorICAgICAgICBCTE5FICAgIGFybVNQX0ZGVEludl9DVG9DX0ZDMzJfUmFkaXg4X2ZzX091dE9mUGxhY2VfdW5zYWZlCisKKyAgICAgICAgQ01QICAgICAgICBzdWJGRlROdW0sIzQKKyAgICAgICAgQkxUICAgICBGRlRFbmQKKworCit1bnNjYWxlZFJhZGl4NExvb3A6CisgICAgICAgIEJFUSAgICAgICAgbGFzdFN0YWdlVW5zY2FsZWRSYWRpeDQKKyAgICAgICAgIEJMICAgICAgICBhcm1TUF9GRlRJbnZfQ1RvQ19GQzMyX1JhZGl4NF9PdXRPZlBsYWNlX3Vuc2FmZQorICAgICAgICAgQ01QICAgICAgICBzdWJGRlROdW0sIzQKKyAgICAgICAgIEIgICAgICAgIHVuc2NhbGVkUmFkaXg0TG9vcAorCitsYXN0U3RhZ2VVbnNjYWxlZFJhZGl4NDoKKyAgICAgICAgQkwgICAgICBhcm1TUF9GRlRJbnZfQ1RvQ19GQzMyX1JhZGl4NF9sc19PdXRPZlBsYWNlX3Vuc2FmZQorICAgICAgICBCICAgICAgICBGRlRFbmQKKworRkZURW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQC8vIERvZXMgb25seSB0aGUgc2NhbGluZworICAgICAgICBAIFNjYWxlIGludmVyc2UgRkZUIHJlc3VsdCBieSAxL04KKworICAgICAgICBNX0xEUiAgIE4sIGNvbXBsZXhGRlRTaXplCisgICAgICAgIFZNT1YgICAgc04sTgorICAgICAgICBWQ1ZUICAgIGZOLCBzTiAgICAgICAgICAgICAgICAgIEAgZm4gPSBmZnRTaXplLCBhcyBhIGZsb2F0CisgICAgICAgIFZNT1YgICAgb25lLCAxLjAKKyAgICAgICAgVkRJViAgICBvbmUsIG9uZSwgZk4gICAgICAgICAgICBAIG9uZSA9IGRTY2FsZVswXSA9IDEgLyBmZnRTaXplCisKKworICAgICAgICBALy8gTiA9IHN1YkZGVFNpemUgIDsgZGF0YXB0ciA9IHBEc3QKK3NjYWxlRkZURGF0YToKKyAgICAgICAgVkxEMSAgICB7ZFgwfSxbcFNyY10gICAgICAgICAgICBALy8gcFNyYyBjb250YWlucyBwRHN0IHBvaW50ZXIKKyAgICAgICAgU1VCUyAgICBzdWJGRlRTaXplLHN1YkZGVFNpemUsIzEKKyAgICAgICAgVk1VTCAgICBkWDAsIGRYMCwgZFNjYWxlWzBdCisgICAgICAgIFZTVDEgICAge2RYMH0sW3BTcmNdIQorCisgICAgICAgIEJHVCAgICAgc2NhbGVGRlREYXRhCisKK0VuZDoKKyAgICAgICAgQC8vIFNldCByZXR1cm4gdmFsdWUKKyAgICAgICAgTU9WICAgICByZXN1bHQsICNPTVhfU3RzX05vRXJyCisKKyAgICAgICAgQC8vIFdyaXRlIGZ1bmN0aW9uIHRhaWwKKyAgICAgICAgTV9FTkQKKworCisKKyAgICAgICAgLmVuZApkaWZmIC0tZ2l0IGEvZGwvb214U1BfRkZUSW52X0NDU1RvUl9TMzJTMTZfU2ZzX3MuUyBiL2RsL29teFNQX0ZGVEludl9DQ1NUb1JfUzMyUzE2X1Nmc19zLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWFiNjFmZQotLS0gL2Rldi9udWxsCisrKyBiL2RsL29teFNQX0ZGVEludl9DQ1NUb1JfUzMyUzE2X1Nmc19zLlMKQEAgLTAsMCArMSwxNDYgQEAKK0AvLworQC8vICBDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitALy8KK0AvLyAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorQC8vICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKK0AvLyAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorQC8vICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CitALy8gIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorQC8vCitALy8gIFRoaXMgZmlsZSB3YXMgb3JpZ2luYWxseSBsaWNlbnNlZCBhcyBmb2xsb3dzLiBJdCBoYXMgYmVlbgorQC8vICByZWxpY2Vuc2VkIHdpdGggcGVybWlzc2lvbiBmcm9tIHRoZSBjb3B5cmlnaHQgaG9sZGVycy4KK0AvLworCitALy8gCitALy8gRmlsZSBOYW1lOiAgb214U1BfRkZUSW52X0NDU1RvUl9TMzJTMTZfU2ZzX3MucworQC8vIE9wZW5NQVggREw6IHYxLjAuMgorQC8vIExhc3QgTW9kaWZpZWQgUmV2aXNpb246ICAgNzA5OAorQC8vIExhc3QgTW9kaWZpZWQgRGF0ZTogICAgICAgVGh1LCAxNiBBdWcgMjAwNworQC8vIAorQC8vIChjKSBDb3B5cmlnaHQgMjAwNy0yMDA4IEFSTSBMaW1pdGVkLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorQC8vIAorQC8vIAorQC8vCitALy8gRGVzY3JpcHRpb246CitALy8gQ29tcHV0ZSBhbiBpbnZlcnNlIEZGVCBmb3IgYSBjb21wbGV4IHNpZ25hbAorQC8vIAorCisKKyAgICAgICAgCitALy8gSW5jbHVkZSBzdGFuZGFyZCBoZWFkZXJzCisKKyNpbmNsdWRlICJvbXh0eXBlc19zLmgiCisjaW5jbHVkZSAiYXJtQ09NTV9zLmgiCisgICAgICAgIAorICAgICAgICAKK0AvLyBJbXBvcnQgc3ltYm9scyByZXF1aXJlZCBmcm9tIG90aGVyIGZpbGVzCitALy8gKEZvciBleGFtcGxlIHRhYmxlcykKKyAgICAgICAgCisgICAgICAgIC5leHRlcm4gIG9teFNQX0ZGVEludl9DQ1NUb1JfUzMyX1NmcworICAgICAgICAKKyAgICAgICAgCitALy8gU2V0IGRlYnVnZ2luZyBsZXZlbCAgICAgICAgCitALy9ERUJVR19PTiAgICBTRVRMIHtUUlVFfQorCisKKworQC8vIEd1YXJkaW5nIGltcGxlbWVudGF0aW9uIGJ5IHRoZSBwcm9jZXNzb3IgbmFtZQorICAgIAorICAgIAorICAgIAorICAgICAgQC8vIEd1YXJkaW5nIGltcGxlbWVudGF0aW9uIGJ5IHRoZSBwcm9jZXNzb3IgbmFtZQorICAgIAorICAgIAorQC8vIEltcG9ydCBzeW1ib2xzIHJlcXVpcmVkIGZyb20gb3RoZXIgZmlsZXMKK0AvLyAoRm9yIGV4YW1wbGUgdGFibGVzKQorICAgICAKKyAgICAKK0AvL0lucHV0IFJlZ2lzdGVycworCisjZGVmaW5lIHBTcmMgICAgICAgICAgICByMAorI2RlZmluZSBwRHN0ICAgICAgICAgICAgcjEKKyNkZWZpbmUgcEZGVFNwZWMgICAgICAgIHIyCisjZGVmaW5lIHNjYWxlICAgICAgICAgICByMworCisKK0AvLyBPdXRwdXQgcmVnaXN0ZXJzCisjZGVmaW5lIHJlc3VsdCAgICAgICAgICByMAorCisKKyNkZWZpbmUgTiAgICAgICAgICAgICAgIHI2CisjZGVmaW5lIHBPdXQgICAgICAgICAgICByNQorI2RlZmluZSBwVG1wRHN0ICAgICAgICAgcjQKKworCitALy8gTmVvbiByZWdpc3RlcnMKKworI2RlZmluZSBkWDAgICAgIEQwLlMzMgorI2RlZmluZSBkWDAxICAgIEQxLlMzMiAgCisjZGVmaW5lIHFYMCAgICAgUTAuUzMyCisjZGVmaW5lIGRZMCAgICAgRDIuUzE2CisjZGVmaW5lIGRZMFMzMiAgRDIuUzMyCisKKworCisgICAgQC8vIEFsbG9jYXRlIHN0YWNrIG1lbW9yeSByZXF1aXJlZCBieSB0aGUgZnVuY3Rpb24KKyAgICAgICAgCisgICAgQC8vIFdyaXRlIGZ1bmN0aW9uIGhlYWRlcgorICAgICAgICBNX1NUQVJUICAgICBvbXhTUF9GRlRJbnZfQ0NTVG9SX1MzMlMxNl9TZnMscjExLGQxNQorICAgICAgICAKKyAgICAgICAgLnNldCAgICBBUk1zRkZUU3BlY19OLCAwCisgICAgICAgIC5zZXQgICAgQVJNc0ZGVFNwZWNfcEJpdFJldiwgNAorICAgICAgICAuc2V0ICAgIEFSTXNGRlRTcGVjX3BUd2lkZGxlLCA4CisgICAgICAgIC5zZXQgICAgQVJNc0ZGVFNwZWNfcEJ1ZiwgMTIKKworICAgICAgICBALy8gRGVmaW5lIHN0YWNrIGFyZ3VtZW50cworICAgICAgICAKKyAgICAgICAgQC8vIFJlYWQgdGhlIHNpemUgZnJvbSBzdHJ1Y3R1cmUgYW5kIHRha2UgbG9nCisgICAgICAgIExEUiAgICAgTiwgW3BGRlRTcGVjLCAjQVJNc0ZGVFNwZWNfTl0KKyAgICAgICAgCisgICAgICAgIEAvLyBSZWFkIG90aGVyIHN0cnVjdHVyZSBwYXJhbWV0ZXJzCisgICAgICAgIEAvL0xEUiAgICAgcFR3aWRkbGUsIFtwRkZUU3BlYywgI0FSTXNGRlRTcGVjX3BUd2lkZGxlXQorICAgICAgICBMRFIgICAgIHBPdXQsIFtwRkZUU3BlYywgI0FSTXNGRlRTcGVjX3BCdWZdCisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgTU9WICAgICBwVG1wRHN0LHBEc3QKKyAgICAgICAgQUREICAgICBwRHN0LHBPdXQsTiwgTFNMICMyCisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgQkwgICAgICBvbXhTUF9GRlRJbnZfQ0NTVG9SX1MzMl9TZnMKKyAgICAgICAgCisgICAgICAgIEFERCAgICAgcERzdCxwT3V0LE4sIExTTCAjMgorICAgICAgICAKKyAgICAgICAgQ01QICAgICBOLCMyCisgICAgICAgIEJHVCAgICAgY29weUxvb3AKKyAgICAgICAgQkVRICAgICBjb3B5UzMyVG9TMTYKKyAgICAgICAgVkxEMSAgICBkWDBbMF0sW3BEc3RdCisgICAgICAgIFZRTU9WTiAgZFkwLHFYMAorICAgICAgICBWU1QxICAgIGRZMFswXSxbcFRtcERzdF0KKyAgICAgICAgCisgICAgICAgIEIgICAgICAgRW5kCisgICAgICAgIAorY29weVMzMlRvUzE2OiAgIAorICAgICAgICAKKyAgICAgICAgVkxEMSAgICBkWDAsW3BEc3RdCisgICAgICAgIFZRTU9WTiAgZFkwLHFYMAorICAgICAgICBWU1QxICAgIGRZMFMzMlswXSxbcFRtcERzdF0KKyAgICAgICAgQiAgICAgICBFbmQKKworY29weUxvb3A6ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgIAorICAgICAgICBWTEQxICAgIHtkWDAsZFgwMX0sW3BEc3RdIQorICAgICAgICBTVUJTICAgIE4sTiwjNAorICAgICAgICBWUU1PVk4gIGRZMCxxWDAKKyAgICAgICAgVlNUMSAgICBkWTAsW3BUbXBEc3RdIQorICAgICAgICAKKyAgICAgICAgQkdUICAgICBjb3B5TG9vcAorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAKK0VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIEAvLyBTZXQgcmV0dXJuIHZhbHVlCisgICAgICAgIE1PViAgICAgcmVzdWx0LCAjT01YX1N0c19Ob0VyciAgICAgICAKKworICAgICAgICBALy8gV3JpdGUgZnVuY3Rpb24gdGFpbAorICAgICAgICBNX0VORAorICAgICAgICAKKyAgICAuZW5kCmRpZmYgLS1naXQgYS9kbC9vbXhTUF9GRlRJbnZfQ0NTVG9SX1MzMl9TZnNfcy5TIGIvZGwvb214U1BfRkZUSW52X0NDU1RvUl9TMzJfU2ZzX3MuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNTQ3ZjczCi0tLSAvZGV2L251bGwKKysrIGIvZGwvb214U1BfRkZUSW52X0NDU1RvUl9TMzJfU2ZzX3MuUwpAQCAtMCwwICsxLDM5MCBAQAorQC8vCitALy8gIENvcHlyaWdodCAoYykgMjAxMyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KK0AvLworQC8vICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCitALy8gIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorQC8vICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCitALy8gIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKK0AvLyAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCitALy8KK0AvLyAgVGhpcyBmaWxlIHdhcyBvcmlnaW5hbGx5IGxpY2Vuc2VkIGFzIGZvbGxvd3MuIEl0IGhhcyBiZWVuCitALy8gIHJlbGljZW5zZWQgd2l0aCBwZXJtaXNzaW9uIGZyb20gdGhlIGNvcHlyaWdodCBob2xkZXJzLgorQC8vCisKK0AvLyAKK0AvLyBGaWxlIE5hbWU6ICBvbXhTUF9GRlRJbnZfQ0NTVG9SX1MzMl9TZnNfcy5zCitALy8gT3Blbk1BWCBETDogdjEuMC4yCitALy8gTGFzdCBNb2RpZmllZCBSZXZpc2lvbjogICA3NDY5CitALy8gTGFzdCBNb2RpZmllZCBEYXRlOiAgICAgICBUaHUsIDIwIFNlcCAyMDA3CitALy8gCitALy8gKGMpIENvcHlyaWdodCAyMDA3LTIwMDggQVJNIExpbWl0ZWQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitALy8gCitALy8gCitALy8KK0AvLyBEZXNjcmlwdGlvbjoKK0AvLyBDb21wdXRlIGFuIGludmVyc2UgRkZUIGZvciBhIGNvbXBsZXggc2lnbmFsCitALy8gCisKKworICAgICAgICAKK0AvLyBJbmNsdWRlIHN0YW5kYXJkIGhlYWRlcnMKKworI2luY2x1ZGUgIm9teHR5cGVzX3MuaCIKKyNpbmNsdWRlICJhcm1DT01NX3MuaCIKKyAgICAgICAgCisgICAgICAgIAorQC8vIEltcG9ydCBzeW1ib2xzIHJlcXVpcmVkIGZyb20gb3RoZXIgZmlsZXMKK0AvLyAoRm9yIGV4YW1wbGUgdGFibGVzKQorICAgICAgICAKKyAgICAgICAgLmV4dGVybiAgYXJtU1BfRkZUSW52X0NUb0NfU0MzMl9TZnNfUmFkaXgyX2ZzX091dE9mUGxhY2VfdW5zYWZlIAorICAgICAgICAuZXh0ZXJuICBhcm1TUF9GRlRJbnZfQ1RvQ19TQzMyX1JhZGl4Ml9mc19PdXRPZlBsYWNlX3Vuc2FmZQorICAgICAgICAuZXh0ZXJuICBhcm1TUF9GRlRJbnZfQ1RvQ19TQzMyX1JhZGl4NF9mc19PdXRPZlBsYWNlX3Vuc2FmZSAKKyAgICAgICAgLmV4dGVybiAgYXJtU1BfRkZUSW52X0NUb0NfU0MzMl9SYWRpeDhfZnNfT3V0T2ZQbGFjZV91bnNhZmUgCisgICAgICAgIC5leHRlcm4gIGFybVNQX0ZGVEludl9DVG9DX1NDMzJfUmFkaXg0X091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIC5leHRlcm4gIGFybVNQX0ZGVEludl9DVG9DX1NDMzJfU2ZzX1JhZGl4NF9mc19PdXRPZlBsYWNlX3Vuc2FmZSAKKyAgICAgICAgLmV4dGVybiAgYXJtU1BfRkZUSW52X0NUb0NfU0MzMl9TZnNfUmFkaXg4X2ZzX091dE9mUGxhY2VfdW5zYWZlIAorICAgICAgICAuZXh0ZXJuICBhcm1TUF9GRlRJbnZfQ1RvQ19TQzMyX1Nmc19SYWRpeDRfT3V0T2ZQbGFjZV91bnNhZmUKKyAgICAgICAgLmV4dGVybiAgYXJtU1BfRkZUSW52X0NUb0NfU0MzMl9TZnNfUmFkaXgyX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIC5leHRlcm4gIGFybVNQX0ZGVEludl9DVG9DX1NDMzJfUmFkaXgyX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIC5leHRlcm4gIGFybVNQX0ZGVEludl9DQ1NUb1JfUzMyX1Nmc19wcmVUd2lkZGxlUmFkaXgyX3Vuc2FmZSAgICAgICAgCisgICAgICAgIC5leHRlcm4gIGFybVNQX0ZGVEludl9DQ1NUb1JfUzMyX3ByZVR3aWRkbGVSYWRpeDJfdW5zYWZlICAgICAgICAKKyAgICAgICAgCisgICAgICAgIAorQC8vIFNldCBkZWJ1Z2dpbmcgbGV2ZWwgICAgICAgIAorQC8vREVCVUdfT04gICAgU0VUTCB7VFJVRX0KKworCisKK0AvLyBHdWFyZGluZyBpbXBsZW1lbnRhdGlvbiBieSB0aGUgcHJvY2Vzc29yIG5hbWUKKyAgICAKKyAgICAKKyAgICAKKyAgICAgIEAvLyBHdWFyZGluZyBpbXBsZW1lbnRhdGlvbiBieSB0aGUgcHJvY2Vzc29yIG5hbWUKKyAgICAKK0AvLyBJbXBvcnQgc3ltYm9scyByZXF1aXJlZCBmcm9tIG90aGVyIGZpbGVzCitALy8gKEZvciBleGFtcGxlIHRhYmxlcykKKyAgICAgICAgLmV4dGVybiAgYXJtU1BfRkZUSW52X0NUb0NfU0MzMl9SYWRpeDRfbHNfT3V0T2ZQbGFjZV91bnNhZmUgICAgIAorICAgICAgICAuZXh0ZXJuICBhcm1TUF9GRlRJbnZfQ1RvQ19TQzMyX1JhZGl4Ml9sc19PdXRPZlBsYWNlX3Vuc2FmZQorICAgICAgICAuZXh0ZXJuICBhcm1TUF9GRlRJbnZfQ1RvQ19TQzMyX1Nmc19SYWRpeDJfbHNfT3V0T2ZQbGFjZV91bnNhZmUKKyAgICAgICAgLmV4dGVybiAgYXJtU1BfRkZUSW52X0NUb0NfU0MzMl9TZnNfUmFkaXg0X2xzX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIAorICAgIAorQC8vSW5wdXQgUmVnaXN0ZXJzCisKKyNkZWZpbmUgcFNyYyAgICAgICAgICAgIHIwCisjZGVmaW5lIHBEc3QgICAgICAgICAgICByMQorI2RlZmluZSBwRkZUU3BlYyAgICAgICAgcjIKKyNkZWZpbmUgc2NhbGUgICAgICAgICAgIHIzCisKKworQC8vIE91dHB1dCByZWdpc3RlcnMKKyNkZWZpbmUgcmVzdWx0ICAgICAgICAgIHIwCisKK0AvL0xvY2FsIFNjcmF0Y2ggUmVnaXN0ZXJzCisKKyNkZWZpbmUgYXJnVHdpZGRsZSAgICAgIHIxCisjZGVmaW5lIGFyZ0RzdCAgICAgICAgICByMgorI2RlZmluZSBhcmdTY2FsZSAgICAgICAgcjQKKyNkZWZpbmUgdG1wT3JkZXIgICAgICAgIHI0CisjZGVmaW5lIHBUd2lkZGxlICAgICAgICByNAorI2RlZmluZSBwT3V0ICAgICAgICAgICAgcjUKKyNkZWZpbmUgc3ViRkZUU2l6ZSAgICAgIHI3ICAgICAKKyNkZWZpbmUgc3ViRkZUTnVtICAgICAgIHI2CisjZGVmaW5lIE4gICAgICAgICAgICAgICByNgorI2RlZmluZSBvcmRlciAgICAgICAgICAgcjE0CisjZGVmaW5lIGRpZmYgICAgICAgICAgICByOQorQC8vIFRvdGFsIG51bSBvZiByYWRpeCBzdGFnZXMgcmVxdWlyZWQgdG8gY29tcGxlIHRoZSBGRlQKKyNkZWZpbmUgY291bnQgICAgICAgICAgIHI4CisjZGVmaW5lIHgwciAgICAgICAgICAgICByNCAgICAKKyNkZWZpbmUgeDBpICAgICAgICAgICAgIHI1CisjZGVmaW5lIGRpZmZNaW51c09uZSAgICByMgorI2RlZmluZSByb3VuZCAgICAgICAgICAgcjMKKworI2RlZmluZSBwT3V0MSAgICAgICAgICAgcjIKKyNkZWZpbmUgc2l6ZSAgICAgICAgICAgIHI3CisjZGVmaW5lIHN0ZXAgICAgICAgICAgICByOCAgICAgICAgICAgIAorI2RlZmluZSBzdGVwMSAgICAgICAgICAgcjkKKyNkZWZpbmUgdHdTdGVwICAgICAgICAgIHIxMAorI2RlZmluZSBwVHdpZGRsZVRtcCAgICAgcjExCisjZGVmaW5lIGFyZ1R3aWRkbGUxICAgICByMTIKKyNkZWZpbmUgemVybyAgICAgICAgICAgIHIxNAorCitALy8gTmVvbiByZWdpc3RlcnMKKworI2RlZmluZSBkWDAgICAgIEQwLlMzMgorI2RlZmluZSBkU2hpZnQgIEQxLlMzMgorI2RlZmluZSBkWDEgICAgIEQxLlMzMgorI2RlZmluZSBkWTAgICAgIEQyLlMzMgorI2RlZmluZSBkWTEgICAgIEQzLlMzMgorI2RlZmluZSBkWDByICAgIEQwLlMzMiAgICAgICAgICAgIAorI2RlZmluZSBkWDBpICAgIEQxLlMzMgorI2RlZmluZSBkWDFyICAgIEQyLlMzMgorI2RlZmluZSBkWDFpICAgIEQzLlMzMgorI2RlZmluZSBkVzByICAgIEQ0LlMzMgorI2RlZmluZSBkVzBpICAgIEQ1LlMzMgorI2RlZmluZSBkVzFyICAgIEQ2LlMzMgorI2RlZmluZSBkVzFpICAgIEQ3LlMzMgorI2RlZmluZSBkVDAgICAgIEQ4LlMzMgorI2RlZmluZSBkVDEgICAgIEQ5LlMzMgorI2RlZmluZSBkVDIgICAgIEQxMC5TMzIKKyNkZWZpbmUgZFQzICAgICBEMTEuUzMyCisjZGVmaW5lIHFUMCAgICAgUTYuUzY0CisjZGVmaW5lIHFUMSAgICAgUTcuUzY0CisjZGVmaW5lIHFUMiAgICAgUTguUzY0CisjZGVmaW5lIHFUMyAgICAgUTkuUzY0CisjZGVmaW5lIGRZMHIgICAgRDQuUzMyCisjZGVmaW5lIGRZMGkgICAgRDUuUzMyCisjZGVmaW5lIGRZMXIgICAgRDYuUzMyCisjZGVmaW5lIGRZMWkgICAgRDcuUzMyCisjZGVmaW5lIGR6ZXJvICAgRDIwLlMzMgorCisjZGVmaW5lIGRZMiAgICAgRDQuUzMyCisjZGVmaW5lIGRZMyAgICAgRDUuUzMyCisjZGVmaW5lIGRXMCAgICAgRDYuUzMyCisjZGVmaW5lIGRXMSAgICAgRDcuUzMyCisjZGVmaW5lIGRXMFRtcCAgRDEwLlMzMgorI2RlZmluZSBkVzFOZWcgIEQxMS5TMzIKKworCisKKyAgICBALy8gQWxsb2NhdGUgc3RhY2sgbWVtb3J5IHJlcXVpcmVkIGJ5IHRoZSBmdW5jdGlvbgorICAgICAgICBNX0FMTE9DNCAgICAgICAgZGlmZk9uU3RhY2ssIDQKKworICAgIEAvLyBXcml0ZSBmdW5jdGlvbiBoZWFkZXIKKyAgICAgICAgTV9TVEFSVCAgICAgb214U1BfRkZUSW52X0NDU1RvUl9TMzJfU2ZzLHIxMSxkMTUKKyAgICAgICAgCitAIFN0cnVjdHVyZSBvZmZzZXRzIGZvciB0aGUgRkZUU3BlYyAgICAgICAgICAgICAKKyAgICAgICAgLnNldCAgICBBUk1zRkZUU3BlY19OLCAwCisgICAgICAgIC5zZXQgICAgQVJNc0ZGVFNwZWNfcEJpdFJldiwgNAorICAgICAgICAuc2V0ICAgIEFSTXNGRlRTcGVjX3BUd2lkZGxlLCA4CisgICAgICAgIC5zZXQgICAgQVJNc0ZGVFNwZWNfcEJ1ZiwgMTIKKworICAgICAgICBALy8gRGVmaW5lIHN0YWNrIGFyZ3VtZW50cworICAgICAgICAKKyAgICAgICAgQC8vIFJlYWQgdGhlIHNpemUgZnJvbSBzdHJ1Y3R1cmUgYW5kIHRha2UgbG9nCisgICAgICAgIExEUiAgICAgTiwgW3BGRlRTcGVjLCAjQVJNc0ZGVFNwZWNfTl0KKyAgICAgICAgCisgICAgICAgIEAvLyBSZWFkIG90aGVyIHN0cnVjdHVyZSBwYXJhbWV0ZXJzCisgICAgICAgIExEUiAgICAgcFR3aWRkbGUsIFtwRkZUU3BlYywgI0FSTXNGRlRTcGVjX3BUd2lkZGxlXQorICAgICAgICBMRFIgICAgIHBPdXQsIFtwRkZUU3BlYywgI0FSTXNGRlRTcGVjX3BCdWZdCisgICAgICAgIAorICAgICAgICBALy8gIE49MSBUcmVhdCBzZXBlcmF0ZWx5ICAKKyAgICAgICAgQ01QICAgICBOLCMxCisgICAgICAgIEJHVCAgICAgc2l6ZUdyZWF0ZXJUaGFuT25lCisgICAgICAgIFZMRDEgICAgZFgwWzBdLFtwU3JjXQorICAgICAgICBSU0IgICAgIHNjYWxlLHNjYWxlLCMwICAgICAgICAgICAgICAgICAgICAgICAgQC8vIHRvIHVzZSBWUlNITCBmb3IgcmlnaHQgc2hpZnQgYnkgYSB2YXJpYWJsZQorICAgICAgICBWTU9WICAgIGRTaGlmdFswXSxzY2FsZQorICAgICAgICBWUlNITCAgIGRYMCxkU2hpZnQKKyAgICAgICAgVlNUMSAgICBkWDBbMF0sW3BEc3RdCisgICAgICAgICAgICAgICAgCisgICAgICAgIEIgICAgICAgRW5kCisgICAgICAgIAorc2l6ZUdyZWF0ZXJUaGFuT25lOiAgICAgCisgICAgICAgIAorICAgICAgICBALy8gQ2FsbCB0aGUgcHJlVHdpZGRsZSBSYWRpeDIgc3RhZ2UgYmVmb3JlIGRvaW5nIHRoZSBjb21wbGVkSUZGVAorICAgICAgICAKKyAgICAgICAgQC8vIFRoZSBmb2xsb3dpbmcgY29uZGl0aW9uYWwgQkwgY29tYmluYXRpb24gd291bGQgd29yayBzaW5jZSAKKyAgICAgICAgQC8vIGV2ZW5PZGRCdXR0ZXJmbHlMb29wIGluIHRoZSBmaXJzdCBjYWxsIHdvdWxkIHNldCBaIGZsYWcgdG8gemVybworICAgICAgICAKKyAgICAgICAgQ01QICAgICBzY2FsZSwjMAorICAgICAgICBCTEVRICAgIGFybVNQX0ZGVEludl9DQ1NUb1JfUzMyX3ByZVR3aWRkbGVSYWRpeDJfdW5zYWZlCisgICAgICAgIEJMR1QgICAgYXJtU1BfRkZUSW52X0NDU1RvUl9TMzJfU2ZzX3ByZVR3aWRkbGVSYWRpeDJfdW5zYWZlCisgICAgICAgICAgICAgICAgCisgICAgICAgIAorICAgICAgICAKK2NvbXBsZXhJRkZUOiAgICAKKyAgICAgICAgCisgICAgICAgIEFTUiAgICAgTixOLCMxICAgICAgICAgICAgICAgICAgICAgICAgICAgICBALy8gTi8yIHBvaW50IGNvbXBsZXggSUZGVCAKKyAgICAgICAgQUREICAgICBwU3JjLHBPdXQsTixMU0wgIzMgICAgICAgICAgICAgICAgIEAvLyBzZXQgcFNyYyBhcyBwT3V0MSAKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBDTFogICAgIG9yZGVyLE4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyBOID0gMl5vcmRlciAKKyAgICAgICAgUlNCICAgICBvcmRlcixvcmRlciwjMzEgICAgIAorICAgICAgICBNT1YgICAgIHN1YkZGVFNpemUsIzEKKyAgICAgICAgQC8vTU9WICAgICBzdWJGRlROdW0sTgorICAgICAgICAKKyAgICAgICAgQUREICAgICBzY2FsZSxzY2FsZSxvcmRlciAgICAgICAgICAgICAgICAgICBALy8gRkZUSW52ZXJzZSBoYXMgYSBmaW5hbCBzY2FsaW5nIGZhY3RvciBieSBOCisgICAgICAgIAorICAgICAgICBDTVAgICAgIG9yZGVyLCMzCisgICAgICAgIEJHVCAgICAgb3JkZXJHcmVhdGVydGhhbjMgICAgICAgICAgICAgICAgICAgQC8vIG9yZGVyID4gMworICAgICAgICAgICAgICAgIAorICAgICAgICBDTVAgICAgIG9yZGVyLCMxCisgICAgICAgIEJHRSAgICAgb3JkZXJHcmVhdGVydGhhbjAgICAgICAgICAgICAgICAgICAgQC8vIG9yZGVyID4gMAorICAgICAgICBNX1NUUiAgIHNjYWxlLCBkaWZmT25TdGFjayxMVCAgICAgICAgICAgICAgIEAvLyBvcmRlciA9IDAKKyAgICAgICAgVkxEMSAgICBkWDAsW3BTcmNdCisgICAgICAgIFZTVDEgICAgZFgwLFtwRHN0XQorICAgICAgICBNT1YgICAgIHBTcmMscERzdAorICAgICAgICBCTFQgICAgIEZGVEVuZAorICAgICAgICAKK29yZGVyR3JlYXRlcnRoYW4wOiAgICAgIAorICAgICAgICBALy8gc2V0IHRoZSBidWZmZXJzIGFwcHJvcHJpYXRlbHkgZm9yIHZhcmlvdXMgb3JkZXJzCisgICAgICAgIENNUCAgICAgb3JkZXIsIzIKKyAgICAgICAgTU9WTkUgICBhcmdEc3QscERzdCAgICAgICAgCisgICAgICAgIE1PVkVRICAgYXJnRHN0LHBPdXQKKyAgICAgICAgTU9WRVEgICBwT3V0LHBEc3QgICAgICAgICAgICAgICAgICAgICAgICAgICBALy8gUGFzcyB0aGUgZmlyc3Qgc3RhZ2UgZGVzdGluYXRpb24gaW4gUk41CisgICAgICAgIE1PViAgICAgYXJnVHdpZGRsZSxwVHdpZGRsZQorICAgICAgICBALy8gU3RvcmUgdGhlIHNjYWxlIGZhY3RvciBhbmQgc2NhbGUgYXQgdGhlIGVuZAorICAgICAgICBTVUIgICAgIGRpZmYsc2NhbGUsb3JkZXIKKyAgICAgICAgTV9TVFIgICBkaWZmLCBkaWZmT25TdGFjaworICAgICAgICBCR0UgICAgIG9yZGVyR3JlYXRlcnRoYW4xCisgICAgICAgIEJMTFQgICAgYXJtU1BfRkZUSW52X0NUb0NfU0MzMl9TZnNfUmFkaXgyX2ZzX091dE9mUGxhY2VfdW5zYWZlICBALy8gb3JkZXIgPSAxCisgICAgICAgIEIgICAgICAgRkZURW5kCisKK29yZGVyR3JlYXRlcnRoYW4xOiAgICAgIAorICAgICAgICBNT1YgICAgIHRtcE9yZGVyLG9yZGVyICAgICAgICAgICAgICAgICAgICAgICAgICBALy8gdG1wT3JkZXIgPSBSTiA0CisgICAgICAgIEJMICAgICAgYXJtU1BfRkZUSW52X0NUb0NfU0MzMl9TZnNfUmFkaXgyX2ZzX091dE9mUGxhY2VfdW5zYWZlICAgICAgICAKKyAgICAgICAgQ01QICAgICB0bXBPcmRlciwjMgorICAgICAgICBCTEdUICAgIGFybVNQX0ZGVEludl9DVG9DX1NDMzJfU2ZzX1JhZGl4Ml9PdXRPZlBsYWNlX3Vuc2FmZQorICAgICAgICBCTCAgICAgIGFybVNQX0ZGVEludl9DVG9DX1NDMzJfU2ZzX1JhZGl4Ml9sc19PdXRPZlBsYWNlX3Vuc2FmZQorICAgICAgICBCICAgICAgIEZGVEVuZAorICAgICAgICAKKworb3JkZXJHcmVhdGVydGhhbjM6ICAgICAgICAgICAgIAorICAgICAgICBALy8gY2hlY2sgc2NhbGUgPSAwIG9yIHNjYWxlID0gb3JkZXIKKyAgICAgICAgU1VCUyAgICBkaWZmLCBzY2FsZSwgb3JkZXIgICAgICAgICAgICAgICAgIEAvLyBzY2FsZSA+IG9yZGVyIAorICAgICAgICBNT1ZHVCAgIHNjYWxlLG9yZGVyICAgICAKKyAgICAgICAgQkdFICAgICBzcGVjaWFsU2NhbGVDYXNlICAgICAgICAgICAgICAgICAgIEAvLyBzY2FsZSA9IDAgb3Igc2NhbGUgPSBvcmRlciAKKyAgICAgICAgQ01QICAgICBzY2FsZSwjMAorICAgICAgICBCRVEgICAgIHNwZWNpYWxTY2FsZUNhc2UKKyAgICAgICAgQiAgICAgICBnZW5lcmFsU2NhbGVDYXNlCisgICAgICAgIAorc3BlY2lhbFNjYWxlQ2FzZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQC8vICBzY2FsZSA9IDAgb3Igc2NhbGUgPSBvcmRlciAgYW5kIG9yZGVyID49IDIgICAgIAorICAgICAgICAKKyAgICAgICAgVFNUICAgICBvcmRlciwgIzIgICAgICAgICAgICAgICAgICAgICAgICAgICBALy8gU2V0IGlucHV0IGFyZ3MgdG8gZmZ0IHN0YWdlcworICAgICAgICBNT1ZORSAgIGFyZ0RzdCxwRHN0ICAgICAgICAKKyAgICAgICAgTU9WRVEgICBhcmdEc3QscE91dAorICAgICAgICBNT1ZFUSAgIHBPdXQscERzdCAgICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyBQYXNzIHRoZSBmaXJzdCBzdGFnZSBkZXN0aW5hdGlvbiBpbiBSTjUKKyAgICAgICAgTU9WICAgICBhcmdUd2lkZGxlLHBUd2lkZGxlICAKKworICAgICAgICBDTVAgICAgICBkaWZmLCMwCisgICAgICAgIE1fU1RSICAgIGRpZmYsIGRpZmZPblN0YWNrCisgICAgICAgIEJHRSAgICAgIHNjYWxlRXF1YWxzT3JkZXIgIAorICAgICAgIAorICAgICAgICBALy9jaGVjayBmb3IgZXZlbiBvciBvZGQgb3JkZXIKKyAgICAgICAgQC8vIE5PVEU6IFRoZSBmb2xsb3dpbmcgY29tYmluYXRpb24gb2YgQkwncyB3b3VsZCB3b3JrIGZpbmUgZXZlbnRob3VnaCB0aGUgZmlyc3QKKyAgICAgICAgQC8vIEJMIHdvdWxkIGNvcnJ1cHQgdGhlIGZsYWdzLiBUaGlzIGlzIGJlY2F1c2UgdGhlIGVuZCBvZiB0aGUgImdycFplcm9TZXRMb29wIiBsb29wIGluc2lkZSAKKyAgICAgICAgQC8vIGFybVNQX0ZGVEludl9DVG9DX1NDMzJfUmFkaXg0X2ZzX091dE9mUGxhY2VfdW5zYWZlIHNldHMgdGhlIFogZmxhZyB0byBFUQorICAgICAgICAKKyAgICAgICAgVFNUICAgICBvcmRlciwjMHgwMDAwMDAwMQorICAgICAgICBCTEVRICAgIGFybVNQX0ZGVEludl9DVG9DX1NDMzJfUmFkaXg0X2ZzX091dE9mUGxhY2VfdW5zYWZlIAorICAgICAgICBCTE5FICAgIGFybVNQX0ZGVEludl9DVG9DX1NDMzJfUmFkaXg4X2ZzX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIAorICAgICAgICBDTVAgICAgICAgIHN1YkZGVE51bSwjNAorICAgICAgICBCTFQgICAgIEZGVEVuZAorICAgICAgICAgCisKK3Vuc2NhbGVkUmFkaXg0TG9vcDogICAgIAorICAgICAgICBCRVEgICAgICAgIGxhc3RTdGFnZVVuc2NhbGVkUmFkaXg0CisgICAgICAgICBCTCAgICAgICAgYXJtU1BfRkZUSW52X0NUb0NfU0MzMl9SYWRpeDRfT3V0T2ZQbGFjZV91bnNhZmUKKyAgICAgICAgIENNUCAgICAgICAgc3ViRkZUTnVtLCM0CisgICAgICAgICBCICAgICAgICB1bnNjYWxlZFJhZGl4NExvb3AKKyAgICAgICAgIAorbGFzdFN0YWdlVW5zY2FsZWRSYWRpeDQ6ICAgICAgICAKKyAgICAgICAgQkwgICAgICBhcm1TUF9GRlRJbnZfQ1RvQ19TQzMyX1JhZGl4NF9sc19PdXRPZlBsYWNlX3Vuc2FmZSAKKyAgICAgICAgQiAgICAgICAgRkZURW5kICAgICAgICAKKyAgICAgICAgIAorCitzY2FsZUVxdWFsc09yZGVyOiAgICAgICAgICAgICAgICAKKyAgICAgICAgQC8vY2hlY2sgZm9yIGV2ZW4gb3Igb2RkIG9yZGVyCisgICAgICAgIEAvLyBOT1RFOiBUaGUgZm9sbG93aW5nIGNvbWJpbmF0aW9uIG9mIEJMJ3Mgd291bGQgd29yayBmaW5lIGV2ZW50aG91Z2ggdGhlIGZpcnN0CisgICAgICAgIEAvLyBCTCB3b3VsZCBjb3JydXB0IHRoZSBmbGFncy4gVGhpcyBpcyBiZWNhdXNlIHRoZSBlbmQgb2YgdGhlICJncnBaZXJvU2V0TG9vcCIgbG9vcCBpbnNpZGUgCisgICAgICAgIEAvLyBhcm1TUF9GRlRJbnZfQ1RvQ19TQzMyX1JhZGl4NF9mc19PdXRPZlBsYWNlX3Vuc2FmZSBzZXRzIHRoZSBaIGZsYWcgdG8gRVEKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgVFNUICAgICBvcmRlciwjMHgwMDAwMDAwMQorICAgICAgICBCTEVRICAgIGFybVNQX0ZGVEludl9DVG9DX1NDMzJfU2ZzX1JhZGl4NF9mc19PdXRPZlBsYWNlX3Vuc2FmZSAKKyAgICAgICAgQkxORSAgICBhcm1TUF9GRlRJbnZfQ1RvQ19TQzMyX1Nmc19SYWRpeDhfZnNfT3V0T2ZQbGFjZV91bnNhZmUgCisgICAgICAgIAorICAgICAgICBDTVAgICAgICAgIHN1YkZGVE51bSwjNAorICAgICAgICBCTFQgICAgIEZGVEVuZAorICAgICAgICAKKworc2NhbGVkUmFkaXg0TG9vcDogICAgICAgCisgICAgICAgIEJFUSAgICAgICAgbGFzdFN0YWdlU2NhbGVkUmFkaXg0CisgICAgICAgICBCTCAgICAgICAgYXJtU1BfRkZUSW52X0NUb0NfU0MzMl9TZnNfUmFkaXg0X091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgICBDTVAgICAgICAgIHN1YkZGVE51bSwjNAorICAgICAgICAgQiAgICAgICAgc2NhbGVkUmFkaXg0TG9vcCAgICAgICAgIAorICAgICAgICAgCitsYXN0U3RhZ2VTY2FsZWRSYWRpeDQ6ICAKKyAgICAgICAgQkwgICAgICBhcm1TUF9GRlRJbnZfQ1RvQ19TQzMyX1Nmc19SYWRpeDRfbHNfT3V0T2ZQbGFjZV91bnNhZmUgCisgICAgICAgIEIgICAgICAgIEZGVEVuZCAgICAgICAgCisgICAgICAgIAorZ2VuZXJhbFNjYWxlQ2FzZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyAwIDwgc2NhbGUgPCBvcmRlciBhbmQgb3JkZXIgPj0gMgorICAgICAgICBALy8gRGV0ZXJtaW5lIHRoZSBjb3JyZWN0IGRlc3RpbmF0aW9uIGJ1ZmZlcgorICAgICAgICBTVUIgICAgIGRpZmYsb3JkZXIsc2NhbGUKKyAgICAgICAgVFNUICAgICBkaWZmLCMweDAxCisgICAgICAgIEFEREVRICAgY291bnQsc2NhbGUsZGlmZixMU1IgIzEgICAgICAgICBALy8gY291bnQgPSBzY2FsZSArIChvcmRlciAtIHNjYWxlKS8yCisgICAgICAgIE1PVk5FICAgY291bnQsb3JkZXIKKyAgICAgICAgVFNUICAgICBjb3VudCwjMHgwMSAgICAgICAgICAgICAgICAgICAgIEAvLyBJcyBjb3VudCBldmVuIG9yIG9kZCA/CisgICAgICAgIAorICAgICAgICBNT1ZORSAgIGFyZ0RzdCxwRHN0ICAgICAgICAgICAgICAgICAgICAgQC8vIFNldCBpbnB1dCBhcmdzIHRvIGZmdCBzdGFnZXMKKyAgICAgICAgTU9WRVEgICBhcmdEc3QscE91dAorICAgICAgICBNT1ZFUSAgIHBPdXQscERzdCAgICAgICAgICAgICAgICAgICAgICAgQC8vIFBhc3MgdGhlIGZpcnN0IHN0YWdlIGRlc3RpbmF0aW9uIGluIFJONQorICAgICAgICBNT1YgICAgIGFyZ1R3aWRkbGUscFR3aWRkbGUgIAorCisgICAgICAgIE1fU1RSICAgZGlmZiwgZGlmZk9uU3RhY2sgICAgCisgICAgICAgIAorICAgICAgICBNT1YgICAgIGFyZ1NjYWxlLHNjYWxlICAgICAgICAgICAgICAgICAgQC8vIFB1dCBzY2FsZSBpbiBSTjQgc28gYXMgdG8gc2F2ZSBhbmQgcmVzdG9yZQorICAgICAgICBCTCAgICAgIGFybVNQX0ZGVEludl9DVG9DX1NDMzJfU2ZzX1JhZGl4Ml9mc19PdXRPZlBsYWNlX3Vuc2FmZSAgICAgQC8vIHNjYWxlZCBmaXJzdCBzdGFnZQorICAgICAgICBTVUJTICAgIGFyZ1NjYWxlLGFyZ1NjYWxlLCMxCisgICAgICAgIAorc2NhbGVkUmFkaXgyTG9vcDogICAgICAgICAgICAgICAKKyAgICAgICAgQkxHVCAgICBhcm1TUF9GRlRJbnZfQ1RvQ19TQzMyX1Nmc19SYWRpeDJfT3V0T2ZQbGFjZV91bnNhZmUKKyAgICAgICAgU1VCUyAgICBhcmdTY2FsZSxhcmdTY2FsZSwjMSAgICAgICAgICAgIEAvLyBzYXZlIGFuZCByZXN0b3JlIHNjYWxlIChSTjQpIGluIHRoZSBzY2FsZWQgc3RhZ2VzCisgICAgICAgIEJHVCAgICAgc2NhbGVkUmFkaXgyTG9vcAorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIE1fTERSICAgZGlmZiwgZGlmZk9uU3RhY2sgIAorICAgICAgICBALy9jaGVjayBmb3IgZXZlbiBvciBvZGQgb3JkZXIKKyAgICAgICAgVFNUICAgICBkaWZmLCMweDAwMDAwMDAxCisgICAgICAgIEJFUSAgICAgZ2VuZXJhbFVuc2NhbGVkUmFkaXg0TG9vcAorICAgICAgICBCICAgICAgIHVuc2NhbGVkUmFkaXgyTG9vcAorCitnZW5lcmFsVW5zY2FsZWRSYWRpeDRMb29wOiAgICAgIAorICAgICAgICBDTVAgICAgICAgIHN1YkZGVE51bSwjNAorICAgICAgICAgQkVRICAgICAgICBnZW5lcmFsTGFzdFN0YWdlVW5zY2FsZWRSYWRpeDQKKyAgICAgICAgIEJMICAgICAgICBhcm1TUF9GRlRJbnZfQ1RvQ19TQzMyX1JhZGl4NF9PdXRPZlBsYWNlX3Vuc2FmZQorICAgICAgICAgQiAgICAgICAgZ2VuZXJhbFVuc2NhbGVkUmFkaXg0TG9vcCAKKyAgICAgICAgIAorZ2VuZXJhbExhc3RTdGFnZVVuc2NhbGVkUmFkaXg0OiAKKyAgICAgICAgQkwgICAgICBhcm1TUF9GRlRJbnZfQ1RvQ19TQzMyX1JhZGl4NF9sc19PdXRPZlBsYWNlX3Vuc2FmZSAKKyAgICAgICAgQiAgICAgICAgRW5kICAgICAgICAgICAgIAorICAgICAgICAgICAgIAorCit1bnNjYWxlZFJhZGl4Mkxvb3A6ICAgICAKKyAgICAgICAgQ01QICAgICAgICBzdWJGRlROdW0sIzIKKyAgICAgICAgIEJFUSAgICAgICAgZ2VuZXJhbExhc3RTdGFnZVVuc2NhbGVkUmFkaXgyCisgICAgICAgICBCTCAgICAgICAgYXJtU1BfRkZUSW52X0NUb0NfU0MzMl9SYWRpeDJfT3V0T2ZQbGFjZV91bnNhZmUKKyAgICAgICAgIEIgICAgICAgIHVuc2NhbGVkUmFkaXgyTG9vcCAgICAgICAgCisKK2dlbmVyYWxMYXN0U3RhZ2VVbnNjYWxlZFJhZGl4MjogCisgICAgICAgIEJMICAgICAgYXJtU1BfRkZUSW52X0NUb0NfU0MzMl9SYWRpeDJfbHNfT3V0T2ZQbGFjZV91bnNhZmUgCisgICAgICAgIEIgICAgICAgIEVuZCAgICAgICAgICAgICAKKworICAgICAgIAorRkZURW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQC8vIERvZXMgb25seSB0aGUgc2NhbGluZworICAgICAgICAKKyAgICAgICAgTV9MRFIgICBkaWZmLCBkaWZmT25TdGFjayAgCisgICAgICAgIENNUCAgICAgZGlmZiwjMAorICAgICAgICBCTEUgICAgIEVuZAorICAgICAgICAKKyAgICAgICAgUlNCICAgICBkaWZmLGRpZmYsIzAgICAgICAgICAgICAgICAgICAgICAgICBALy8gdG8gdXNlIFZSU0hMIGZvciByaWdodCBzaGlmdCBieSBhIHZhcmlhYmxlCisgICAgICAgIFZEVVAgICAgZFNoaWZ0LGRpZmYgICAgIAorICAgICAgICAKK3NjYWxlRkZURGF0YTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQC8vIE4gPSBzdWJGRlRTaXplICA7IGRhdGFwdHIgPSBwRHN0ICA7IHNjYWxlID0gZGlmZgorICAgICAgICBWTEQxICAgIHtkWDB9LFtwU3JjXSAgICAgICAgICAgIEAvLyBwU3JjIGNvbnRhaW5zIHBEc3QgcG9pbnRlcgorICAgICAgICBTVUJTICAgIHN1YkZGVFNpemUsc3ViRkZUU2l6ZSwjMQorICAgICAgICBWUlNITCAgIGRYMCxkU2hpZnQKKyAgICAgICAgVlNUMSAgICB7ZFgwfSxbcFNyY10hCisgICAgICAgICAgICAgICAgCisgICAgICAgIEJHVCAgICAgc2NhbGVGRlREYXRhCisgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAKK0VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIEAvLyBTZXQgcmV0dXJuIHZhbHVlCisgICAgICAgIE1PViAgICAgcmVzdWx0LCAjT01YX1N0c19Ob0VyciAgICAgICAKKworICAgICAgICBALy8gV3JpdGUgZnVuY3Rpb24gdGFpbAorICAgICAgICBNX0VORAorICAgICAgICAKKyAgICAKKyAgICAgCisgICAgICAgIC5lbmQKZGlmZiAtLWdpdCBhL2RsL29teFNQX0ZGVEludl9DVG9DX0ZDMzJfU2ZzX3MuUyBiL2RsL29teFNQX0ZGVEludl9DVG9DX0ZDMzJfU2ZzX3MuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZDVkM2Q4Ci0tLSAvZGV2L251bGwKKysrIGIvZGwvb214U1BfRkZUSW52X0NUb0NfRkMzMl9TZnNfcy5TCkBAIC0wLDAgKzEsMjE0IEBACitALy8KK0AvLyAgQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorQC8vCitALy8gIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKK0AvLyAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCitALy8gIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKK0AvLyAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorQC8vICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KK0AvLworQC8vICBUaGlzIGlzIGEgbW9kaWZpY2F0aW9uIG9mIGFybVNQX0ZGVF9DVG9DX1NDMzJfUmFkaXgyX2ZzX3Vuc2FmZV9zLnMKK0AvLyAgdG8gc3VwcG9ydCBmbG9hdCBpbnN0ZWFkIG9mIFNDMzIuCitALy8KKworQC8vCitALy8gRGVzY3JpcHRpb246CitALy8gQ29tcHV0ZSBhbiBpbnZlcnNlIEZGVCBmb3IgYSBjb21wbGV4IHNpZ25hbAorQC8vCitALy8KKworCitALy8gSW5jbHVkZSBzdGFuZGFyZCBoZWFkZXJzCisKKyNpbmNsdWRlICJvbXh0eXBlc19zLmgiCisjaW5jbHVkZSAiYXJtQ09NTV9zLmgiCisKK0AvLyBJbXBvcnQgc3ltYm9scyByZXF1aXJlZCBmcm9tIG90aGVyIGZpbGVzCitALy8gKEZvciBleGFtcGxlIHRhYmxlcykKKworICAgICAgICAuZXh0ZXJuICBhcm1TUF9GRlRJbnZfQ1RvQ19GQzMyX1JhZGl4Ml9mc19PdXRPZlBsYWNlX3Vuc2FmZQorICAgICAgICAuZXh0ZXJuICBhcm1TUF9GRlRJbnZfQ1RvQ19GQzMyX1JhZGl4NF9mc19PdXRPZlBsYWNlX3Vuc2FmZQorICAgICAgICAuZXh0ZXJuICBhcm1TUF9GRlRJbnZfQ1RvQ19GQzMyX1JhZGl4OF9mc19PdXRPZlBsYWNlX3Vuc2FmZQorICAgICAgICAuZXh0ZXJuICBhcm1TUF9GRlRJbnZfQ1RvQ19GQzMyX1JhZGl4NF9PdXRPZlBsYWNlX3Vuc2FmZQorICAgICAgICAuZXh0ZXJuICBhcm1TUF9GRlRJbnZfQ1RvQ19GQzMyX1JhZGl4Ml9PdXRPZlBsYWNlX3Vuc2FmZQorCitALy8gU2V0IGRlYnVnZ2luZyBsZXZlbAorQC8vREVCVUdfT04gICAgU0VUTCB7VFJVRX0KKworCisKK0AvLyBHdWFyZGluZyBpbXBsZW1lbnRhdGlvbiBieSB0aGUgcHJvY2Vzc29yIG5hbWUKKworCisKKyAgICAgIEAvLyBHdWFyZGluZyBpbXBsZW1lbnRhdGlvbiBieSB0aGUgcHJvY2Vzc29yIG5hbWUKKworQC8vIEltcG9ydCBzeW1ib2xzIHJlcXVpcmVkIGZyb20gb3RoZXIgZmlsZXMKK0AvLyAoRm9yIGV4YW1wbGUgdGFibGVzKQorICAgICAgICAuZXh0ZXJuICBhcm1TUF9GRlRJbnZfQ1RvQ19GQzMyX1JhZGl4NF9sc19PdXRPZlBsYWNlX3Vuc2FmZQorICAgICAgICAuZXh0ZXJuICBhcm1TUF9GRlRJbnZfQ1RvQ19GQzMyX1JhZGl4Ml9sc19PdXRPZlBsYWNlX3Vuc2FmZQorCisKK0AvL0lucHV0IFJlZ2lzdGVycworCisjZGVmaW5lIHBTcmMgICAgICAgICAgICByMAorI2RlZmluZSBwRHN0ICAgICAgICAgICAgcjEKKyNkZWZpbmUgcEZGVFNwZWMgICAgICAgIHIyCisKKworQC8vIE91dHB1dCByZWdpc3RlcnMKKyNkZWZpbmUgcmVzdWx0ICAgICAgICAgIHIwCisKK0AvL0xvY2FsIFNjcmF0Y2ggUmVnaXN0ZXJzCisKKyNkZWZpbmUgYXJnVHdpZGRsZSAgICAgIHIxCisjZGVmaW5lIGFyZ0RzdCAgICAgICAgICByMgorI2RlZmluZSBhcmdTY2FsZSAgICAgICAgcjQKKyNkZWZpbmUgdG1wT3JkZXIgICAgICAgIHI0CisjZGVmaW5lIHBUd2lkZGxlICAgICAgICByNAorI2RlZmluZSBwT3V0ICAgICAgICAgICAgcjUKKyNkZWZpbmUgc3ViRkZUU2l6ZSAgICAgIHI3CisjZGVmaW5lIHN1YkZGVE51bSAgICAgICByNgorI2RlZmluZSBOICAgICAgICAgICAgICAgcjYKKyNkZWZpbmUgb3JkZXIgICAgICAgICAgIHIxNAorI2RlZmluZSBkaWZmICAgICAgICAgICAgcjkKK0AvLyBUb3RhbCBudW0gb2YgcmFkaXggc3RhZ2VzIHJlcXVpcmVkIHRvIGNvbXBsZSB0aGUgRkZUCisjZGVmaW5lIGNvdW50ICAgICAgICAgICByOAorI2RlZmluZSB4MHIgICAgICAgICAgICAgcjQKKyNkZWZpbmUgeDBpICAgICAgICAgICAgIHI1CisjZGVmaW5lIGRpZmZNaW51c09uZSAgICByMgorCitALy8gTmVvbiByZWdpc3RlcnMKKworI2RlZmluZSBkWDAgICAgIEQwLkYzMgorI2RlZmluZSBxWDAgICAgIFEwLkYzMgorI2RlZmluZSBzTiAgICAgIFMwLlMzMgorI2RlZmluZSBmTiAgICAgIFMxLkYzMgorQC8vIG9uZSBtdXN0IGJlIHRoZSBzYW1lIGFzIGRTY2FsZVswXSEKKyNkZWZpbmUgZFNjYWxlICBENC5GMzIKKyNkZWZpbmUgb25lICAgICBTOC5GMzIKKworCisKKyAgICBALy8gQWxsb2NhdGUgc3RhY2sgbWVtb3J5IHJlcXVpcmVkIGJ5IHRoZSBmdW5jdGlvbgorICAgICAgICBNX0FMTE9DNCAgICAgICAgZmZ0U2l6ZSwgNAorCisgICAgQC8vIFdyaXRlIGZ1bmN0aW9uIGhlYWRlcgorICAgICAgICBNX1NUQVJUICAgICBvbXhTUF9GRlRJbnZfQ1RvQ19GQzMyX1NmcyxyMTEsZDE1CisKK0AgU3RydWN0dXJlIG9mZnNldHMgZm9yIHRoZSBGRlRTcGVjCisgICAgICAgIC5zZXQgICAgQVJNc0ZGVFNwZWNfTiwgMAorICAgICAgICAuc2V0ICAgIEFSTXNGRlRTcGVjX3BCaXRSZXYsIDQKKyAgICAgICAgLnNldCAgICBBUk1zRkZUU3BlY19wVHdpZGRsZSwgOAorICAgICAgICAuc2V0ICAgIEFSTXNGRlRTcGVjX3BCdWYsIDEyCisKKyAgICAgICAgQC8vIERlZmluZSBzdGFjayBhcmd1bWVudHMKKworICAgICAgICBALy8gUmVhZCB0aGUgc2l6ZSBmcm9tIHN0cnVjdHVyZSBhbmQgdGFrZSBsb2cKKyAgICAgICAgTERSICAgICBOLCBbcEZGVFNwZWMsICNBUk1zRkZUU3BlY19OXQorICAgICAgICBNX1NUUiAgIE4sIGZmdFNpemUKKworICAgICAgICBALy8gUmVhZCBvdGhlciBzdHJ1Y3R1cmUgcGFyYW1ldGVycworICAgICAgICBMRFIgICAgIHBUd2lkZGxlLCBbcEZGVFNwZWMsICNBUk1zRkZUU3BlY19wVHdpZGRsZV0KKyAgICAgICAgTERSICAgICBwT3V0LCBbcEZGVFNwZWMsICNBUk1zRkZUU3BlY19wQnVmXQorCisgICAgICAgIENMWiAgICAgb3JkZXIsTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQC8vIE4gPSAyXm9yZGVyCisgICAgICAgIFJTQiAgICAgb3JkZXIsb3JkZXIsIzMxCisgICAgICAgIE1PViAgICAgc3ViRkZUU2l6ZSwjMQorICAgICAgICBALy9NT1YgICAgIHN1YkZGVE51bSxOCisKKyAgICAgICAgQ01QICAgICBvcmRlciwjMworICAgICAgICBCR1QgICAgIG9yZGVyR3JlYXRlcnRoYW4zICAgICAgICAgICAgICAgICAgIEAvLyBvcmRlciA+IDMKKworICAgICAgICBDTVAgICAgIG9yZGVyLCMxCisgICAgICAgIEJHRSAgICAgb3JkZXJHcmVhdGVydGhhbjAgICAgICAgICAgICAgICAgICAgQC8vIG9yZGVyID4gMAorICAgICAgICBWTEQxICAgIGRYMCxbcFNyY10KKyAgICAgICAgVlNUMSAgICBkWDAsW3BEc3RdCisgICAgICAgIE1PViAgICAgcFNyYyxwRHN0CisgICAgICAgIEJMVCAgICAgRkZURW5kCisKK29yZGVyR3JlYXRlcnRoYW4wOgorICAgICAgICBALy8gc2V0IHRoZSBidWZmZXJzIGFwcHJvcHJpYXRlbHkgZm9yIHZhcmlvdXMgb3JkZXJzCisgICAgICAgIENNUCAgICAgb3JkZXIsIzIKKyAgICAgICAgTU9WTkUgICBhcmdEc3QscERzdAorICAgICAgICBNT1ZFUSAgIGFyZ0RzdCxwT3V0CisgICAgICAgIEAvLyBQYXNzIHRoZSBmaXJzdCBzdGFnZSBkZXN0aW5hdGlvbiBpbiBSTjUKKyAgICAgICAgTU9WRVEgICBwT3V0LHBEc3QKKyAgICAgICAgTU9WICAgICBhcmdUd2lkZGxlLHBUd2lkZGxlCisgICAgICAgIEJHRSAgICAgb3JkZXJHcmVhdGVydGhhbjEKKyAgICAgICAgQC8vIG9yZGVyID0gMQorICAgICAgICBCTExUICAgIGFybVNQX0ZGVEludl9DVG9DX0ZDMzJfUmFkaXgyX2ZzX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIEIgICAgICAgRkZURW5kCisKK29yZGVyR3JlYXRlcnRoYW4xOgorICAgICAgICBNT1YgICAgIHRtcE9yZGVyLG9yZGVyICAgICAgICAgICAgICAgICAgICAgICAgICBALy8gdG1wT3JkZXIgPSBSTiA0CisgICAgICAgIEJMICAgICAgYXJtU1BfRkZUSW52X0NUb0NfRkMzMl9SYWRpeDJfZnNfT3V0T2ZQbGFjZV91bnNhZmUKKyAgICAgICAgQ01QICAgICB0bXBPcmRlciwjMgorICAgICAgICBCTEdUICAgIGFybVNQX0ZGVEludl9DVG9DX0ZDMzJfUmFkaXgyX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIEJMICAgICAgYXJtU1BfRkZUSW52X0NUb0NfRkMzMl9SYWRpeDJfbHNfT3V0T2ZQbGFjZV91bnNhZmUKKyAgICAgICAgQiAgICAgICBGRlRFbmQKKworCitvcmRlckdyZWF0ZXJ0aGFuMzoKKworICAgICAgICBALy8gU2V0IGlucHV0IGFyZ3MgdG8gZmZ0IHN0YWdlcworICAgICAgICBUU1QgICAgIG9yZGVyLCAjMgorICAgICAgICBNT1ZORSAgIGFyZ0RzdCxwRHN0CisgICAgICAgIE1PVkVRICAgYXJnRHN0LHBPdXQKKyAgICAgICAgQC8vIFBhc3MgdGhlIGZpcnN0IHN0YWdlIGRlc3RpbmF0aW9uIGluIFJONQorICAgICAgICBNT1ZFUSAgIHBPdXQscERzdAorICAgICAgICBNT1YgICAgIGFyZ1R3aWRkbGUscFR3aWRkbGUKKworICAgICAgICBALy9jaGVjayBmb3IgZXZlbiBvciBvZGQgb3JkZXIKKyAgICAgICAgQC8vIE5PVEU6IFRoZSBmb2xsb3dpbmcgY29tYmluYXRpb24gb2YgQkwncyB3b3VsZCB3b3JrIGZpbmUgZXZlbiB0aG91Z2gKKyAgICAgICAgQC8vIHRoZSBmaXJzdCBCTCB3b3VsZCBjb3JydXB0IHRoZSBmbGFncy4gVGhpcyBpcyBiZWNhdXNlIHRoZSBlbmQgb2YKKyAgICAgICAgQC8vIHRoZSAiZ3JwWmVyb1NldExvb3AiIGxvb3AgaW5zaWRlCisgICAgICAgIEAvLyBhcm1TUF9GRlRJbnZfQ1RvQ19TQzMyX1JhZGl4NF9mc19PdXRPZlBsYWNlX3Vuc2FmZSBzZXRzIHRoZSBaIGZsYWcKKyAgICAgICAgQC8vIHRvIEVRCisKKyAgICAgICAgVFNUICAgICBvcmRlciwjMHgwMDAwMDAwMQorICAgICAgICBCTEVRICAgIGFybVNQX0ZGVEludl9DVG9DX0ZDMzJfUmFkaXg0X2ZzX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIEJMTkUgICAgYXJtU1BfRkZUSW52X0NUb0NfRkMzMl9SYWRpeDhfZnNfT3V0T2ZQbGFjZV91bnNhZmUKKworICAgICAgICBDTVAgICAgICAgIHN1YkZGVE51bSwjNAorICAgICAgICBCTFQgICAgIEZGVEVuZAorCisKK3Vuc2NhbGVkUmFkaXg0TG9vcDoKKyAgICAgICAgQkVRICAgICAgICBsYXN0U3RhZ2VVbnNjYWxlZFJhZGl4NAorICAgICAgICAgQkwgICAgICAgIGFybVNQX0ZGVEludl9DVG9DX0ZDMzJfUmFkaXg0X091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgICBDTVAgICAgICAgIHN1YkZGVE51bSwjNAorICAgICAgICAgQiAgICAgICAgdW5zY2FsZWRSYWRpeDRMb29wCisKK2xhc3RTdGFnZVVuc2NhbGVkUmFkaXg0OgorICAgICAgICBCTCAgICAgIGFybVNQX0ZGVEludl9DVG9DX0ZDMzJfUmFkaXg0X2xzX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIEIgICAgICAgIEZGVEVuZAorCitGRlRFbmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBALy8gRG9lcyBvbmx5IHRoZSBzY2FsaW5nCisKKyAgICAgICAgTV9MRFIgICBOLCBmZnRTaXplCisKKyAgICAgICAgVk1PViAgICBzTixOCisgICAgICAgIFZDVlQgICAgZk4sIHNOICAgICAgICAgICAgICAgICAgQCBmbiA9IGZmdFNpemUsIGFzIGEgZmxvYXQKKyAgICAgICAgVk1PViAgICBvbmUsIDEuMAorICAgICAgICBWRElWICAgIG9uZSwgb25lLCBmTiAgICAgICAgICAgIEAgb25lID0gZFNjYWxlWzBdID0gMSAvIGZmdFNpemUKKworICAgICAgICBAIFNjYWxlIGRhdGEsIGRvaW5nIDIgY29tcGxleCB2YWx1ZXMgYXQgYSB0aW1lIChiZWNhdXNlIE4gaXMKKyAgICAgICAgQCBhbHdheXMgZXZlbikuCisKKyAgICAgICAgQC8vIE4gPSBzdWJGRlRTaXplICA7IGRhdGFwdHIgPSBwRHN0ICA7IHNjYWxlID0gZGlmZgorc2NhbGVGRlREYXRhOgorICAgICAgICBWTEQxICAgIHtxWDB9LFtwU3JjIDoxMjhdICAgICAgICAgICAgQC8vIHBTcmMgY29udGFpbnMgcERzdCBwb2ludGVyCisgICAgICAgIFNVQlMgICAgc3ViRkZUU2l6ZSxzdWJGRlRTaXplLCMyCisgICAgICAgIFZNVUwgICAgcVgwLCBxWDAsIGRTY2FsZVswXQorICAgICAgICBWU1QxICAgIHtxWDB9LFtwU3JjIDoxMjhdIQorCisgICAgICAgIEJHVCAgICAgc2NhbGVGRlREYXRhCitFbmQ6CisgICAgICAgIEAvLyBTZXQgcmV0dXJuIHZhbHVlCisgICAgICAgIE1PViAgICAgcmVzdWx0LCAjT01YX1N0c19Ob0VycgorCisgICAgICAgIEAvLyBXcml0ZSBmdW5jdGlvbiB0YWlsCisgICAgICAgIE1fRU5ECisKKyAgICAgICAgLmVuZApkaWZmIC0tZ2l0IGEvZGwvb214U1BfRkZUSW52X0NUb0NfU0MzMl9TZnNfcy5TIGIvZGwvb214U1BfRkZUSW52X0NUb0NfU0MzMl9TZnNfcy5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2NDVmYjgKLS0tIC9kZXYvbnVsbAorKysgYi9kbC9vbXhTUF9GRlRJbnZfQ1RvQ19TQzMyX1Nmc19zLlMKQEAgLTAsMCArMSwzMTQgQEAKK0AvLworQC8vICBDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitALy8KK0AvLyAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorQC8vICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKK0AvLyAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorQC8vICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CitALy8gIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorQC8vCitALy8gIFRoaXMgZmlsZSB3YXMgb3JpZ2luYWxseSBsaWNlbnNlZCBhcyBmb2xsb3dzLiBJdCBoYXMgYmVlbgorQC8vICByZWxpY2Vuc2VkIHdpdGggcGVybWlzc2lvbiBmcm9tIHRoZSBjb3B5cmlnaHQgaG9sZGVycy4KK0AvLworCitALy8gCitALy8gRmlsZSBOYW1lOiAgb214U1BfRkZUSW52X0NUb0NfU0MzMl9TZnNfcy5zCitALy8gT3Blbk1BWCBETDogdjEuMC4yCitALy8gTGFzdCBNb2RpZmllZCBSZXZpc2lvbjogICA2Njc1CitALy8gTGFzdCBNb2RpZmllZCBEYXRlOiAgICAgICBGcmksIDA2IEp1bCAyMDA3CitALy8gCitALy8gKGMpIENvcHlyaWdodCAyMDA3LTIwMDggQVJNIExpbWl0ZWQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitALy8gCitALy8gCitALy8KK0AvLyBEZXNjcmlwdGlvbjoKK0AvLyBDb21wdXRlIGFuIGludmVyc2UgRkZUIGZvciBhIGNvbXBsZXggc2lnbmFsCitALy8gCisKKyAgICAgICAgCitALy8gSW5jbHVkZSBzdGFuZGFyZCBoZWFkZXJzCisKKyNpbmNsdWRlICJvbXh0eXBlc19zLmgiCisjaW5jbHVkZSAiYXJtQ09NTV9zLmgiCisgICAgICAgIAorQC8vIEltcG9ydCBzeW1ib2xzIHJlcXVpcmVkIGZyb20gb3RoZXIgZmlsZXMKK0AvLyAoRm9yIGV4YW1wbGUgdGFibGVzKQorICAgICAgICAKKyAgICAgICAgLmV4dGVybiAgYXJtU1BfRkZUSW52X0NUb0NfU0MzMl9TZnNfUmFkaXgyX2ZzX091dE9mUGxhY2VfdW5zYWZlIAorICAgICAgICAuZXh0ZXJuICBhcm1TUF9GRlRJbnZfQ1RvQ19TQzMyX1JhZGl4Ml9mc19PdXRPZlBsYWNlX3Vuc2FmZQorICAgICAgICAuZXh0ZXJuICBhcm1TUF9GRlRJbnZfQ1RvQ19TQzMyX1JhZGl4NF9mc19PdXRPZlBsYWNlX3Vuc2FmZSAKKyAgICAgICAgLmV4dGVybiAgYXJtU1BfRkZUSW52X0NUb0NfU0MzMl9SYWRpeDhfZnNfT3V0T2ZQbGFjZV91bnNhZmUgCisgICAgICAgIC5leHRlcm4gIGFybVNQX0ZGVEludl9DVG9DX1NDMzJfUmFkaXg0X091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIC5leHRlcm4gIGFybVNQX0ZGVEludl9DVG9DX1NDMzJfU2ZzX1JhZGl4NF9mc19PdXRPZlBsYWNlX3Vuc2FmZSAKKyAgICAgICAgLmV4dGVybiAgYXJtU1BfRkZUSW52X0NUb0NfU0MzMl9TZnNfUmFkaXg4X2ZzX091dE9mUGxhY2VfdW5zYWZlIAorICAgICAgICAuZXh0ZXJuICBhcm1TUF9GRlRJbnZfQ1RvQ19TQzMyX1Nmc19SYWRpeDRfT3V0T2ZQbGFjZV91bnNhZmUKKyAgICAgICAgLmV4dGVybiAgYXJtU1BfRkZUSW52X0NUb0NfU0MzMl9TZnNfUmFkaXgyX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIC5leHRlcm4gIGFybVNQX0ZGVEludl9DVG9DX1NDMzJfUmFkaXgyX091dE9mUGxhY2VfdW5zYWZlICAgCisgICAgICAgIAorQC8vIFNldCBkZWJ1Z2dpbmcgbGV2ZWwgICAgICAgIAorQC8vREVCVUdfT04gICAgU0VUTCB7VFJVRX0KKworCisKK0AvLyBHdWFyZGluZyBpbXBsZW1lbnRhdGlvbiBieSB0aGUgcHJvY2Vzc29yIG5hbWUKKyAgICAKKyAgICAKKyAgICAKKyAgICAgIEAvLyBHdWFyZGluZyBpbXBsZW1lbnRhdGlvbiBieSB0aGUgcHJvY2Vzc29yIG5hbWUKKyAgICAKK0AvLyBJbXBvcnQgc3ltYm9scyByZXF1aXJlZCBmcm9tIG90aGVyIGZpbGVzCitALy8gKEZvciBleGFtcGxlIHRhYmxlcykKKyAgICAgICAgLmV4dGVybiAgYXJtU1BfRkZUSW52X0NUb0NfU0MzMl9SYWRpeDRfbHNfT3V0T2ZQbGFjZV91bnNhZmUgICAgIAorICAgICAgICAuZXh0ZXJuICBhcm1TUF9GRlRJbnZfQ1RvQ19TQzMyX1JhZGl4Ml9sc19PdXRPZlBsYWNlX3Vuc2FmZQorICAgICAgICAuZXh0ZXJuICBhcm1TUF9GRlRJbnZfQ1RvQ19TQzMyX1Nmc19SYWRpeDJfbHNfT3V0T2ZQbGFjZV91bnNhZmUKKyAgICAgICAgLmV4dGVybiAgYXJtU1BfRkZUSW52X0NUb0NfU0MzMl9TZnNfUmFkaXg0X2xzX091dE9mUGxhY2VfdW5zYWZlICAgICAgICAKKyAgICAgCisgICAgCitALy9JbnB1dCBSZWdpc3RlcnMKKworI2RlZmluZSBwU3JjCXIwCisjZGVmaW5lIHBEc3QJcjEKKyNkZWZpbmUgcEZGVFNwZWMJcjIKKyNkZWZpbmUgc2NhbGUJcjMKKworCitALy8gT3V0cHV0IHJlZ2lzdGVycworI2RlZmluZSByZXN1bHQJcjAKKworQC8vTG9jYWwgU2NyYXRjaCBSZWdpc3RlcnMKKworI2RlZmluZSBhcmdUd2lkZGxlCXIxCisjZGVmaW5lIGFyZ0RzdAlyMgorI2RlZmluZSBhcmdTY2FsZQlyNAorI2RlZmluZSB0bXBPcmRlcglyNAorI2RlZmluZSBwVHdpZGRsZQlyNAorI2RlZmluZSBwT3V0CXI1CisjZGVmaW5lIHN1YkZGVFNpemUJcjcgICAgIAorI2RlZmluZSBzdWJGRlROdW0JcjYKKyNkZWZpbmUgTglyNgorI2RlZmluZSBvcmRlcglyMTQKKyNkZWZpbmUgZGlmZglyOQorQC8vIFRvdGFsIG51bSBvZiByYWRpeCBzdGFnZXMgcmVxdWlyZWQgdG8gY29tcGxlIHRoZSBGRlQKKyNkZWZpbmUgY291bnQJcjgKKyNkZWZpbmUgeDByCXI0ICAgIAorI2RlZmluZSB4MGkJcjUKKyNkZWZpbmUgZGlmZk1pbnVzT25lCXIyCisjZGVmaW5lIHJvdW5kCXIzCisKK0AvLyBOZW9uIHJlZ2lzdGVycworCisjZGVmaW5lIGRYMAlEMC5TMzIKKyNkZWZpbmUgZFNoaWZ0CUQxLlMzMgorCisKKworICAgIEAvLyBBbGxvY2F0ZSBzdGFjayBtZW1vcnkgcmVxdWlyZWQgYnkgdGhlIGZ1bmN0aW9uCisgICAgICAgIE1fQUxMT0M0ICAgICAgICBkaWZmT25TdGFjaywgNAorCisgICAgQC8vIFdyaXRlIGZ1bmN0aW9uIGhlYWRlcgorICAgICAgICBNX1NUQVJUICAgICBvbXhTUF9GRlRJbnZfQ1RvQ19TQzMyX1NmcyxyMTEsZDE1CisgICAgICAgIAorQCBTdHJ1Y3R1cmUgb2Zmc2V0cyBmb3IgdGhlIEZGVFNwZWMJCQorCS5zZXQJQVJNc0ZGVFNwZWNfTiwgMAorCS5zZXQJQVJNc0ZGVFNwZWNfcEJpdFJldiwgNAorCS5zZXQJQVJNc0ZGVFNwZWNfcFR3aWRkbGUsIDgKKwkuc2V0CUFSTXNGRlRTcGVjX3BCdWYsIDEyCisJICAgICAgICAKKyAgICAgICAgQC8vIERlZmluZSBzdGFjayBhcmd1bWVudHMKKyAgICAgICAgCisgICAgICAgIEAvLyBSZWFkIHRoZSBzaXplIGZyb20gc3RydWN0dXJlIGFuZCB0YWtlIGxvZworICAgICAgICBMRFIgICAgIE4sIFtwRkZUU3BlYywgI0FSTXNGRlRTcGVjX05dCisgICAgICAgIAorICAgICAgICBALy8gUmVhZCBvdGhlciBzdHJ1Y3R1cmUgcGFyYW1ldGVycworICAgICAgICBMRFIgICAgIHBUd2lkZGxlLCBbcEZGVFNwZWMsICNBUk1zRkZUU3BlY19wVHdpZGRsZV0KKyAgICAgICAgTERSICAgICBwT3V0LCBbcEZGVFNwZWMsICNBUk1zRkZUU3BlY19wQnVmXQorICAgICAgICAgICAgICAgIAorICAgICAgICBDTFogICAgIG9yZGVyLE4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyBOID0gMl5vcmRlciAKKyAgICAgICAgUlNCICAgICBvcmRlcixvcmRlciwjMzEgICAgIAorICAgICAgICBNT1YgICAgIHN1YkZGVFNpemUsIzEKKyAgICAgICAgQC8vTU9WICAgICBzdWJGRlROdW0sTgorICAgICAgICAKKyAgICAgICAgQUREICAgICBzY2FsZSxzY2FsZSxvcmRlciAgICAgICAgICAgICAgICAgICBALy8gRkZUSW52ZXJzZSBoYXMgYSBmaW5hbCBzY2FsaW5nIGZhY3RvciBieSBOCisgICAgICAgIAorICAgICAgICBDTVAgICAgIG9yZGVyLCMzCisgICAgICAgIEJHVCAgICAgb3JkZXJHcmVhdGVydGhhbjMgICAgICAgICAgICAgICAgICAgQC8vIG9yZGVyID4gMworICAgICAgICAgICAgICAgIAorICAgICAgICBDTVAgICAgIG9yZGVyLCMxCisgICAgICAgIEJHRSAgICAgb3JkZXJHcmVhdGVydGhhbjAgICAgICAgICAgICAgICAgICAgQC8vIG9yZGVyID4gMAorICAgICAgICBNX1NUUiAgIHNjYWxlLCBkaWZmT25TdGFjayxMVCAgICAgICAgICAgICAgIEAvLyBvcmRlciA9IDAKKyAgICAgICAgVkxEMSAgICBkWDAsW3BTcmNdCisgICAgICAgIFZTVDEgICAgZFgwLFtwRHN0XQorICAgICAgICBNT1YgICAgIHBTcmMscERzdAorICAgICAgICBCTFQgICAgIEZGVEVuZAorICAgICAgICAKK29yZGVyR3JlYXRlcnRoYW4wOgkKKyAgICAgICAgQC8vIHNldCB0aGUgYnVmZmVycyBhcHByb3ByaWF0ZWx5IGZvciB2YXJpb3VzIG9yZGVycworICAgICAgICBDTVAgICAgIG9yZGVyLCMyCisgICAgICAgIE1PVk5FICAgYXJnRHN0LHBEc3QgICAgICAgIAorICAgICAgICBNT1ZFUSAgIGFyZ0RzdCxwT3V0CisgICAgICAgIE1PVkVRICAgcE91dCxwRHN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgQC8vIFBhc3MgdGhlIGZpcnN0IHN0YWdlIGRlc3RpbmF0aW9uIGluIFJONQorICAgICAgICBNT1YgICAgIGFyZ1R3aWRkbGUscFR3aWRkbGUKKyAgICAgICAgQC8vIFN0b3JlIHRoZSBzY2FsZSBmYWN0b3IgYW5kIHNjYWxlIGF0IHRoZSBlbmQKKyAgICAgICAgU1VCICAgICBkaWZmLHNjYWxlLG9yZGVyCisgICAgICAgIE1fU1RSICAgZGlmZiwgZGlmZk9uU3RhY2sKKyAgICAgICAgQkdFICAgICBvcmRlckdyZWF0ZXJ0aGFuMQorICAgICAgICBCTExUICAgIGFybVNQX0ZGVEludl9DVG9DX1NDMzJfU2ZzX1JhZGl4Ml9mc19PdXRPZlBsYWNlX3Vuc2FmZSAgQC8vIG9yZGVyID0gMQorICAgICAgICBCICAgICAgIEZGVEVuZAorCitvcmRlckdyZWF0ZXJ0aGFuMToJCisgICAgICAgIE1PViAgICAgdG1wT3JkZXIsb3JkZXIgICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyB0bXBPcmRlciA9IFJOIDQKKyAgICAgICAgQkwgICAgICBhcm1TUF9GRlRJbnZfQ1RvQ19TQzMyX1Nmc19SYWRpeDJfZnNfT3V0T2ZQbGFjZV91bnNhZmUgICAgICAgIAorICAgICAgICBDTVAgICAgIHRtcE9yZGVyLCMyCisgICAgICAgIEJMR1QgICAgYXJtU1BfRkZUSW52X0NUb0NfU0MzMl9TZnNfUmFkaXgyX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIEJMICAgICAgYXJtU1BfRkZUSW52X0NUb0NfU0MzMl9TZnNfUmFkaXgyX2xzX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIEIgICAgICAgRkZURW5kCisgICAgICAgIAorCitvcmRlckdyZWF0ZXJ0aGFuMzoJICAgICAgIAorICAgICAgICBALy8gY2hlY2sgc2NhbGUgPSAwIG9yIHNjYWxlID0gb3JkZXIKKyAgICAgICAgU1VCUyAgICBkaWZmLCBzY2FsZSwgb3JkZXIgICAgICAgICAgICAgICAgIEAvLyBzY2FsZSA+IG9yZGVyIAorICAgICAgICBNT1ZHVCAgIHNjYWxlLG9yZGVyICAgICAKKyAgICAgICAgQkdFICAgICBzcGVjaWFsU2NhbGVDYXNlICAgICAgICAgICAgICAgICAgIEAvLyBzY2FsZSA9IDAgb3Igc2NhbGUgPSBvcmRlciAKKyAgICAgICAgQ01QICAgICBzY2FsZSwjMAorICAgICAgICBCRVEgICAgIHNwZWNpYWxTY2FsZUNhc2UKKyAgICAgICAgQiAgICAgICBnZW5lcmFsU2NhbGVDYXNlCisgICAgICAgIAorc3BlY2lhbFNjYWxlQ2FzZToJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQC8vICBzY2FsZSA9IDAgb3Igc2NhbGUgPSBvcmRlciAgYW5kIG9yZGVyID49IDIgICAgIAorICAgICAgICAKKyAgICAgICAgVFNUICAgICBvcmRlciwgIzIgICAgICAgICAgICAgICAgICAgICAgICAgICBALy8gU2V0IGlucHV0IGFyZ3MgdG8gZmZ0IHN0YWdlcworICAgICAgICBNT1ZORSAgIGFyZ0RzdCxwRHN0ICAgICAgICAKKyAgICAgICAgTU9WRVEgICBhcmdEc3QscE91dAorICAgICAgICBNT1ZFUSAgIHBPdXQscERzdCAgICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyBQYXNzIHRoZSBmaXJzdCBzdGFnZSBkZXN0aW5hdGlvbiBpbiBSTjUKKyAgICAgICAgTU9WICAgICBhcmdUd2lkZGxlLHBUd2lkZGxlICAKKworICAgICAgICBDTVAgICAgICBkaWZmLCMwCisgICAgICAgIE1fU1RSICAgIGRpZmYsIGRpZmZPblN0YWNrCisgICAgICAgIEJHRSAgICAgIHNjYWxlRXF1YWxzT3JkZXIgIAorICAgICAgIAorICAgICAgICBALy9jaGVjayBmb3IgZXZlbiBvciBvZGQgb3JkZXIKKyAgICAgICAgQC8vIE5PVEU6IFRoZSBmb2xsb3dpbmcgY29tYmluYXRpb24gb2YgQkwncyB3b3VsZCB3b3JrIGZpbmUgZXZlbnRob3VnaCB0aGUgZmlyc3QKKyAgICAgICAgQC8vIEJMIHdvdWxkIGNvcnJ1cHQgdGhlIGZsYWdzLiBUaGlzIGlzIGJlY2F1c2UgdGhlIGVuZCBvZiB0aGUgImdycFplcm9TZXRMb29wIiBsb29wIGluc2lkZSAKKyAgICAgICAgQC8vIGFybVNQX0ZGVEludl9DVG9DX1NDMzJfUmFkaXg0X2ZzX091dE9mUGxhY2VfdW5zYWZlIHNldHMgdGhlIFogZmxhZyB0byBFUQorICAgICAgICAKKyAgICAgICAgVFNUICAgICBvcmRlciwjMHgwMDAwMDAwMQorICAgICAgICBCTEVRICAgIGFybVNQX0ZGVEludl9DVG9DX1NDMzJfUmFkaXg0X2ZzX091dE9mUGxhY2VfdW5zYWZlIAorICAgICAgICBCTE5FICAgIGFybVNQX0ZGVEludl9DVG9DX1NDMzJfUmFkaXg4X2ZzX091dE9mUGxhY2VfdW5zYWZlCisgICAgICAgIAorICAgICAgICBDTVAgICAgICAgIHN1YkZGVE51bSwjNAorICAgICAgICBCTFQgICAgIEZGVEVuZAorICAgICAgICAgCisKK3Vuc2NhbGVkUmFkaXg0TG9vcDoJCisgICAgICAgIEJFUSAgICAgICAgbGFzdFN0YWdlVW5zY2FsZWRSYWRpeDQKKyAgICAgICAgIEJMICAgICAgICBhcm1TUF9GRlRJbnZfQ1RvQ19TQzMyX1JhZGl4NF9PdXRPZlBsYWNlX3Vuc2FmZQorICAgICAgICAgQ01QICAgICAgICBzdWJGRlROdW0sIzQKKyAgICAgICAgIEIgICAgICAgIHVuc2NhbGVkUmFkaXg0TG9vcAorICAgICAgICAgCitsYXN0U3RhZ2VVbnNjYWxlZFJhZGl4NDoJCisgICAgICAgIEJMICAgICAgYXJtU1BfRkZUSW52X0NUb0NfU0MzMl9SYWRpeDRfbHNfT3V0T2ZQbGFjZV91bnNhZmUgCisgICAgICAgIEIgICAgICAgIEZGVEVuZCAgICAgICAgCisgICAgICAgICAKKworc2NhbGVFcXVhbHNPcmRlcjoJICAgICAgICAgCisgICAgICAgIEAvL2NoZWNrIGZvciBldmVuIG9yIG9kZCBvcmRlcgorICAgICAgICBALy8gTk9URTogVGhlIGZvbGxvd2luZyBjb21iaW5hdGlvbiBvZiBCTCdzIHdvdWxkIHdvcmsgZmluZSBldmVudGhvdWdoIHRoZSBmaXJzdAorICAgICAgICBALy8gQkwgd291bGQgY29ycnVwdCB0aGUgZmxhZ3MuIFRoaXMgaXMgYmVjYXVzZSB0aGUgZW5kIG9mIHRoZSAiZ3JwWmVyb1NldExvb3AiIGxvb3AgaW5zaWRlIAorICAgICAgICBALy8gYXJtU1BfRkZUSW52X0NUb0NfU0MzMl9SYWRpeDRfZnNfT3V0T2ZQbGFjZV91bnNhZmUgc2V0cyB0aGUgWiBmbGFnIHRvIEVRCisgICAgICAgICAgICAgICAgCisgICAgICAgIFRTVCAgICAgb3JkZXIsIzB4MDAwMDAwMDEKKyAgICAgICAgQkxFUSAgICBhcm1TUF9GRlRJbnZfQ1RvQ19TQzMyX1Nmc19SYWRpeDRfZnNfT3V0T2ZQbGFjZV91bnNhZmUgCisgICAgICAgIEJMTkUgICAgYXJtU1BfRkZUSW52X0NUb0NfU0MzMl9TZnNfUmFkaXg4X2ZzX091dE9mUGxhY2VfdW5zYWZlIAorICAgICAgICAKKyAgICAgICAgQ01QICAgICAgICBzdWJGRlROdW0sIzQKKyAgICAgICAgQkxUICAgICBGRlRFbmQKKyAgICAgICAgCisKK3NjYWxlZFJhZGl4NExvb3A6CQorICAgICAgICBCRVEgICAgICAgIGxhc3RTdGFnZVNjYWxlZFJhZGl4NAorICAgICAgICAgQkwgICAgICAgIGFybVNQX0ZGVEludl9DVG9DX1NDMzJfU2ZzX1JhZGl4NF9PdXRPZlBsYWNlX3Vuc2FmZQorICAgICAgICAgQ01QICAgICAgICBzdWJGRlROdW0sIzQKKyAgICAgICAgIEIgICAgICAgIHNjYWxlZFJhZGl4NExvb3AgICAgICAgICAKKyAgICAgICAgIAorbGFzdFN0YWdlU2NhbGVkUmFkaXg0OgkKKyAgICAgICAgQkwgICAgICBhcm1TUF9GRlRJbnZfQ1RvQ19TQzMyX1Nmc19SYWRpeDRfbHNfT3V0T2ZQbGFjZV91bnNhZmUgCisgICAgICAgIEIgICAgICAgIEZGVEVuZCAgICAgICAgCisgICAgICAgIAorZ2VuZXJhbFNjYWxlQ2FzZToJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyAwIDwgc2NhbGUgPCBvcmRlciBhbmQgb3JkZXIgPj0gMgorICAgICAgICBALy8gRGV0ZXJtaW5lIHRoZSBjb3JyZWN0IGRlc3RpbmF0aW9uIGJ1ZmZlcgorICAgICAgICBTVUIgICAgIGRpZmYsb3JkZXIsc2NhbGUKKyAgICAgICAgVFNUICAgICBkaWZmLCMweDAxCisgICAgICAgIEFEREVRICAgY291bnQsc2NhbGUsZGlmZixMU1IgIzEgICAgICAgICBALy8gY291bnQgPSBzY2FsZSArIChvcmRlciAtIHNjYWxlKS8yCisgICAgICAgIE1PVk5FICAgY291bnQsb3JkZXIKKyAgICAgICAgVFNUICAgICBjb3VudCwjMHgwMSAgICAgICAgICAgICAgICAgICAgIEAvLyBJcyBjb3VudCBldmVuIG9yIG9kZCA/CisgICAgICAgIAorICAgICAgICBNT1ZORSAgIGFyZ0RzdCxwRHN0ICAgICAgICAgICAgICAgICAgICAgQC8vIFNldCBpbnB1dCBhcmdzIHRvIGZmdCBzdGFnZXMKKyAgICAgICAgTU9WRVEgICBhcmdEc3QscE91dAorICAgICAgICBNT1ZFUSAgIHBPdXQscERzdCAgICAgICAgICAgICAgICAgICAgICAgQC8vIFBhc3MgdGhlIGZpcnN0IHN0YWdlIGRlc3RpbmF0aW9uIGluIFJONQorICAgICAgICBNT1YgICAgIGFyZ1R3aWRkbGUscFR3aWRkbGUgIAorCisgICAgICAgIE1fU1RSICAgZGlmZiwgZGlmZk9uU3RhY2sgICAgCisgICAgICAgIAorICAgICAgICBNT1YgICAgIGFyZ1NjYWxlLHNjYWxlICAgICAgICAgICAgICAgICAgQC8vIFB1dCBzY2FsZSBpbiBSTjQgc28gYXMgdG8gc2F2ZSBhbmQgcmVzdG9yZQorICAgICAgICBCTCAgICAgIGFybVNQX0ZGVEludl9DVG9DX1NDMzJfU2ZzX1JhZGl4Ml9mc19PdXRPZlBsYWNlX3Vuc2FmZSAgICAgQC8vIHNjYWxlZCBmaXJzdCBzdGFnZQorICAgICAgICBTVUJTICAgIGFyZ1NjYWxlLGFyZ1NjYWxlLCMxCisgICAgICAgIAorc2NhbGVkUmFkaXgyTG9vcDoJICAgICAgICAKKyAgICAgICAgQkxHVCAgICBhcm1TUF9GRlRJbnZfQ1RvQ19TQzMyX1Nmc19SYWRpeDJfT3V0T2ZQbGFjZV91bnNhZmUKKyAgICAgICAgU1VCUyAgICBhcmdTY2FsZSxhcmdTY2FsZSwjMSAgICAgICAgICAgIEAvLyBzYXZlIGFuZCByZXN0b3JlIHNjYWxlIChSTjQpIGluIHRoZSBzY2FsZWQgc3RhZ2VzCisgICAgICAgIEJHVCAgICAgc2NhbGVkUmFkaXgyTG9vcAorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIE1fTERSICAgZGlmZiwgZGlmZk9uU3RhY2sgIAorICAgICAgICBALy9jaGVjayBmb3IgZXZlbiBvciBvZGQgb3JkZXIKKyAgICAgICAgVFNUICAgICBkaWZmLCMweDAwMDAwMDAxCisgICAgICAgIEJFUSAgICAgZ2VuZXJhbFVuc2NhbGVkUmFkaXg0TG9vcAorICAgICAgICBCICAgICAgIHVuc2NhbGVkUmFkaXgyTG9vcAorCitnZW5lcmFsVW5zY2FsZWRSYWRpeDRMb29wOgkKKyAgICAgICAgQ01QICAgICAgICBzdWJGRlROdW0sIzQKKyAgICAgICAgIEJFUSAgICAgICAgZ2VuZXJhbExhc3RTdGFnZVVuc2NhbGVkUmFkaXg0CisgICAgICAgICBCTCAgICAgICAgYXJtU1BfRkZUSW52X0NUb0NfU0MzMl9SYWRpeDRfT3V0T2ZQbGFjZV91bnNhZmUKKyAgICAgICAgIEIgICAgICAgIGdlbmVyYWxVbnNjYWxlZFJhZGl4NExvb3AgCisgICAgICAgICAKK2dlbmVyYWxMYXN0U3RhZ2VVbnNjYWxlZFJhZGl4NDoJCisgICAgICAgIEJMICAgICAgYXJtU1BfRkZUSW52X0NUb0NfU0MzMl9SYWRpeDRfbHNfT3V0T2ZQbGFjZV91bnNhZmUgCisgICAgICAgIEIgICAgICAgIEVuZCAgICAgICAgICAgICAKKyAgICAgICAgICAgICAKKwordW5zY2FsZWRSYWRpeDJMb29wOgkKKyAgICAgICAgQ01QICAgICAgICBzdWJGRlROdW0sIzIKKyAgICAgICAgIEJFUSAgICAgICAgZ2VuZXJhbExhc3RTdGFnZVVuc2NhbGVkUmFkaXgyCisgICAgICAgICBCTCAgICAgICAgYXJtU1BfRkZUSW52X0NUb0NfU0MzMl9SYWRpeDJfT3V0T2ZQbGFjZV91bnNhZmUKKyAgICAgICAgIEIgICAgICAgIHVuc2NhbGVkUmFkaXgyTG9vcCAgICAgICAgCisKK2dlbmVyYWxMYXN0U3RhZ2VVbnNjYWxlZFJhZGl4MjoJCisgICAgICAgIEJMICAgICAgYXJtU1BfRkZUSW52X0NUb0NfU0MzMl9SYWRpeDJfbHNfT3V0T2ZQbGFjZV91bnNhZmUgCisgICAgICAgIEIgICAgICAgIEVuZCAgICAgICAgICAgICAKKworICAgICAgIAorRkZURW5kOgkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQC8vIERvZXMgb25seSB0aGUgc2NhbGluZworICAgICAgICAKKyAgICAgICAgTV9MRFIgICBkaWZmLCBkaWZmT25TdGFjayAgCisgICAgICAgIENNUCAgICAgZGlmZiwjMAorICAgICAgICBCTEUgICAgIEVuZAorICAgICAgICAKKyAgICAgICAgUlNCICAgICBkaWZmLGRpZmYsIzAgICAgICAgICAgICAgICAgICAgICAgICBALy8gdG8gdXNlIFZSU0hMIGZvciByaWdodCBzaGlmdCBieSBhIHZhcmlhYmxlCisgICAgICAgIFZEVVAgICAgZFNoaWZ0LGRpZmYgICAgIAorICAgICAgICAKK3NjYWxlRkZURGF0YToJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEAvLyBOID0gc3ViRkZUU2l6ZSAgOyBkYXRhcHRyID0gcERzdCAgOyBzY2FsZSA9IGRpZmYKKyAgICAgICAgVkxEMSAgICB7ZFgwfSxbcFNyY10gICAgICAgICAgICBALy8gcFNyYyBjb250YWlucyBwRHN0IHBvaW50ZXIKKyAgICAgICAgU1VCUyAgICBzdWJGRlRTaXplLHN1YkZGVFNpemUsIzEKKyAgICAgICAgVlJTSEwgICBkWDAsZFNoaWZ0CisgICAgICAgIFZTVDEgICAge2RYMH0sW3BTcmNdIQorICAgICAgICAgICAgICAgIAorICAgICAgICBCR1QgICAgIHNjYWxlRkZURGF0YQorICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgCitFbmQ6CSAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBALy8gU2V0IHJldHVybiB2YWx1ZQorICAgICAgICBNT1YgICAgIHJlc3VsdCwgI09NWF9TdHNfTm9FcnIgICAgICAgCisKKyAgICAgICAgQC8vIFdyaXRlIGZ1bmN0aW9uIHRhaWwKKyAgICAgICAgTV9FTkQKKyAgICAgICAgCisJLmVuZApkaWZmIC0tZ2l0IGEvZGwvb214dHlwZXMuaCBiL2RsL29teHR5cGVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDczMmU0MAotLS0gL2Rldi9udWxsCisrKyBiL2RsL29teHR5cGVzLmgKQEAgLTAsMCArMSwyOTcgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqCisgKiAgVGhpcyBmaWxlIHdhcyBvcmlnaW5hbGx5IGxpY2Vuc2VkIGFzIGZvbGxvd3MuIEl0IGhhcyBiZWVuCisgKiAgcmVsaWNlbnNlZCB3aXRoIHBlcm1pc3Npb24gZnJvbSB0aGUgY29weXJpZ2h0IGhvbGRlcnMuCisgKi8KKworLyoqCisgKiBGaWxlOiBvbXh0eXBlcy5oCisgKiBCcmllZjogRGVmaW5lcyBiYXNpYyBEYXRhIHR5cGVzIHVzZWQgaW4gT3Blbk1BWCB2MS4wLjIgaGVhZGVyIGZpbGVzLgorICoKKyAqIENvcHlyaWdodCCpIDIwMDUtMjAwOCBUaGUgS2hyb25vcyBHcm91cCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIAorICoKKyAqIFRoZXNlIG1hdGVyaWFscyBhcmUgcHJvdGVjdGVkIGJ5IGNvcHlyaWdodCBsYXdzIGFuZCBjb250YWluIG1hdGVyaWFsIAorICogcHJvcHJpZXRhcnkgdG8gdGhlIEtocm9ub3MgR3JvdXAsIEluYy4gIFlvdSBtYXkgdXNlIHRoZXNlIG1hdGVyaWFscyAKKyAqIGZvciBpbXBsZW1lbnRpbmcgS2hyb25vcyBzcGVjaWZpY2F0aW9ucywgd2l0aG91dCBhbHRlcmluZyBvciByZW1vdmluZyAKKyAqIGFueSB0cmFkZW1hcmssIGNvcHlyaWdodCBvciBvdGhlciBub3RpY2UgZnJvbSB0aGUgc3BlY2lmaWNhdGlvbi4KKyAqIAorICogS2hyb25vcyBHcm91cCBtYWtlcyBubywgYW5kIGV4cHJlc3NseSBkaXNjbGFpbXMgYW55LCByZXByZXNlbnRhdGlvbnMgCisgKiBvciB3YXJyYW50aWVzLCBleHByZXNzIG9yIGltcGxpZWQsIHJlZ2FyZGluZyB0aGVzZSBtYXRlcmlhbHMsIGluY2x1ZGluZywgCisgKiB3aXRob3V0IGxpbWl0YXRpb24sIGFueSBpbXBsaWVkIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRhYmlsaXR5IG9yIGZpdG5lc3MgCisgKiBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2Ugb3Igbm9uLWluZnJpbmdlbWVudCBvZiBhbnkgaW50ZWxsZWN0dWFsIHByb3BlcnR5LiAKKyAqIEtocm9ub3MgR3JvdXAgbWFrZXMgbm8sIGFuZCBleHByZXNzbHkgZGlzY2xhaW1zIGFueSwgd2FycmFudGllcywgZXhwcmVzcyAKKyAqIG9yIGltcGxpZWQsIHJlZ2FyZGluZyB0aGUgY29ycmVjdG5lc3MsIGFjY3VyYWN5LCBjb21wbGV0ZW5lc3MsIHRpbWVsaW5lc3MsIAorICogYW5kIHJlbGlhYmlsaXR5IG9mIHRoZXNlIG1hdGVyaWFscy4gCisgKgorICogVW5kZXIgbm8gY2lyY3Vtc3RhbmNlcyB3aWxsIHRoZSBLaHJvbm9zIEdyb3VwLCBvciBhbnkgb2YgaXRzIFByb21vdGVycywgCisgKiBDb250cmlidXRvcnMgb3IgTWVtYmVycyBvciB0aGVpciByZXNwZWN0aXZlIHBhcnRuZXJzLCBvZmZpY2VycywgZGlyZWN0b3JzLCAKKyAqIGVtcGxveWVlcywgYWdlbnRzIG9yIHJlcHJlc2VudGF0aXZlcyBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzLCB3aGV0aGVyIAorICogZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgZm9yIGxvc3QgcmV2ZW51ZXMsIAorICogbG9zdCBwcm9maXRzLCBvciBvdGhlcndpc2UsIGFyaXNpbmcgZnJvbSBvciBpbiBjb25uZWN0aW9uIHdpdGggdGhlc2UgCisgKiBtYXRlcmlhbHMuCisgKiAKKyAqIEtocm9ub3MgYW5kIE9wZW5NQVggYXJlIHRyYWRlbWFya3Mgb2YgdGhlIEtocm9ub3MgR3JvdXAgSW5jLiAKKyAqCisgKi8KKyAgCisjaWZuZGVmIF9PTVhUWVBFU19IXworI2RlZmluZSBfT01YVFlQRVNfSF8KKworI2luY2x1ZGUgPGxpbWl0cy5oPiAKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisvKgorICogTWF4aW11bSBGRlQgb3JkZXIgc3VwcG9ydGVkIGJ5IHRoZSB0d2lkZGxlIHRhYmxlLiAgT25seSB1c2VkIGJ5IHRoZQorICogZmxvYXQgRkZUIHJvdXRpbmVzLiBNdXN0IGJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgdGFibGUgaW4KKyAqIGFybVNQX0ZGVF9GMzJUd2lkZGxlVGFibGUuYy4KKyAqLworI2lmZGVmIEJJR19GRlRfVEFCTEUKKyNkZWZpbmUgVFdJRERMRV9UQUJMRV9PUkRFUiAxNQorI2Vsc2UKKyNkZWZpbmUgVFdJRERMRV9UQUJMRV9PUkRFUiAxMgorI2VuZGlmCisKKyNkZWZpbmUgT01YX0lOCisjZGVmaW5lIE9NWF9PVVQKKyNkZWZpbmUgT01YX0lOT1VUCisKKwordHlwZWRlZiBlbnVtIHsKKyAgICAKKyAgICAvKiBNYW5kYXRvcnkgcmV0dXJuIGNvZGVzIC0gdXNlIGNhc2VzIGFyZSBleHBsaWNpdGx5IGRlc2NyaWJlZCBmb3IgZWFjaCBmdW5jdGlvbiAqLworICAgIE9NWF9TdHNfTm9FcnIgICAgICAgICAgICAgICAgICAgID0gIDAsICAgIC8qIE5vIGVycm9yLCB0aGUgZnVuY3Rpb24gY29tcGxldGVkIHN1Y2Nlc3NmdWxseSAqLworICAgIE9NWF9TdHNfRXJyICAgICAgICAgICAgICAgICAgICAgID0gLTIsICAgIC8qIFVua25vd24vdW5zcGVjaWZpZWQgZXJyb3IgKi8gICAgCisgICAgT01YX1N0c19JbnZhbGlkQml0c3RyZWFtVmFsRXJyICAgPSAtMTgyLCAgLyogSW52YWxpZCB2YWx1ZSBkZXRlY3RlZCBkdXJpbmcgYml0c3RyZWFtIHByb2Nlc3NpbmcgKi8gICAgCisgICAgT01YX1N0c19NZW1BbGxvY0VyciAgICAgICAgICAgICAgPSAtOSwgICAgLyogTm90IGVub3VnaCBtZW1vcnkgYWxsb2NhdGVkIGZvciB0aGUgb3BlcmF0aW9uICovCisgICAgT01YX1N0c0FDQUFDX0dhaW5DdHJFcnIgICAgCSAgICAgPSAtMTU5LCAgLyogQUFDOiBVbnN1cHBvcnRlZCBnYWluIGNvbnRyb2wgZGF0YSBkZXRlY3RlZCAqLworICAgIE9NWF9TdHNBQ0FBQ19QcmdOdW1FcnIgICAgICAgICAgID0gLTE2NywgIC8qIEFBQzogSW52YWxpZCBudW1iZXIgb2YgZWxlbWVudHMgZm9yIG9uZSBwcm9ncmFtICAgKi8KKyAgICBPTVhfU3RzQUNBQUNfQ29lZlZhbEVyciAgICAgICAgICA9IC0xNjMsICAvKiBBQUM6IEludmFsaWQgcXVhbnRpemVkIGNvZWZmaWNpZW50IHZhbHVlICAgICAgICAgICovICAgICAKKyAgICBPTVhfU3RzQUNBQUNfTWF4U2ZiRXJyICAgICAgICAgICA9IC0xNjIsICAvKiBBQUM6IEludmFsaWQgbWF4U2ZiIHZhbHVlIGluIHJlbGF0aW9uIHRvIG51bVN3YiAqLyAgICAKKwlPTVhfU3RzQUNBQUNfUGxzRGF0YUVycgkJICAgICA9IC0xNjAsICAvKiBBQUM6IHB1bHNlIGVzY2FwZSBzZXF1ZW5jZSBkYXRhIGVycm9yICovCisKKyAgICAvKiBPcHRpb25hbCByZXR1cm4gY29kZXMgLSB1c2UgY2FzZXMgYXJlIGV4cGxpY2l0bHkgZGVzY3JpYmVkIGZvciBlYWNoIGZ1bmN0aW9uKi8KKyAgICBPTVhfU3RzX0JhZEFyZ0VyciAgICAgICAgICAgICAgICA9IC01LCAgICAvKiBCYWQgQXJndW1lbnRzICovCisKKyAgICBPTVhfU3RzQUNBQUNfVG5zTnVtRmlsdEVyciAgICAgICA9IC0xNTcsICAvKiBBQUM6IEludmFsaWQgbnVtYmVyIG9mIFROUyBmaWx0ZXJzICAqLworICAgIE9NWF9TdHNBQ0FBQ19UbnNMZW5FcnIgICAgICAgICAgID0gLTE1NiwgIC8qIEFBQzogSW52YWxpZCBUTlMgcmVnaW9uIGxlbmd0aCAgKi8gICAKKyAgICBPTVhfU3RzQUNBQUNfVG5zT3JkZXJFcnIgICAgICAgICA9IC0xNTUsICAvKiBBQUM6IEludmFsaWQgb3JkZXIgb2YgVE5TIGZpbHRlciAgKi8gICAgICAgICAgICAgICAgICAKKyAgICBPTVhfU3RzQUNBQUNfVG5zQ29lZlJlc0VyciAgICAgICA9IC0xNTQsICAvKiBBQUM6IEludmFsaWQgYml0LXJlc29sdXRpb24gZm9yIFROUyBmaWx0ZXIgY29lZmZpY2llbnRzICAqLworICAgIE9NWF9TdHNBQ0FBQ19UbnNDb2VmRXJyICAgICAgICAgID0gLTE1MywgIC8qIEFBQzogSW52YWxpZCBUTlMgZmlsdGVyIGNvZWZmaWNpZW50cyAgKi8gICAgICAgICAgICAgICAgICAKKyAgICBPTVhfU3RzQUNBQUNfVG5zRGlyZWN0RXJyICAgICAgICA9IC0xNTIsICAvKiBBQUM6IEludmFsaWQgVE5TIGZpbHRlciBkaXJlY3Rpb24gICovICAKKworICAgIE9NWF9TdHNJQ0pQX0pQRUdNYXJrZXJFcnIgICAgICAgID0gLTE4MywgIC8qIEpQRUcgbWFya2VyIGVuY291bnRlcmVkIHdpdGhpbiBhbiBlbnRyb3B5LWNvZGVkIGJsb2NrOyAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEh1ZmZtYW4gZGVjb2Rpbmcgb3BlcmF0aW9uIHRlcm1pbmF0ZWQgZWFybHkuICAgICAgICAgICAqLworICAgIE9NWF9TdHNJQ0pQX0pQRUdNYXJrZXIgICAgICAgICAgID0gLTE4MSwgIC8qIEpQRUcgbWFya2VyIGVuY291bnRlcmVkOyBIdWZmbWFuIGRlY29kaW5nICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogb3BlcmF0aW9uIHRlcm1pbmF0ZWQgZWFybHkuICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgT01YX1N0c0lQUFBfQ29udGV4dE1hdGNoRXJyICAgICAgPSAtMTcsICAgLyogQ29udGV4dCBwYXJhbWV0ZXIgZG9lc24ndCBtYXRjaCB0byB0aGUgb3BlcmF0aW9uICovCisKKyAgICBPTVhfU3RzU1BfRXZlbk1lZGlhbk1hc2tTaXplRXJyICA9IC0xODAsICAvKiBFdmVuIHNpemUgb2YgdGhlIE1lZGlhbiBGaWx0ZXIgbWFzayB3YXMgcmVwbGFjZWQgYnkgdGhlIG9kZCBvbmUgKi8KKworICAgIE9NWF9TdHNfTWF4aW11bUVudW1lcmF0aW9uICAgICAgID0gSU5UX01BWCAgLypQbGFjZWhvbGRlciwgZm9yY2VzIGVudW0gb2Ygc2l6ZSBPTVhfSU5UKi8KKyAgICAKKyB9IE9NWFJlc3VsdDsgICAgICAgICAgLyoqIFJldHVybiB2YWx1ZSBvciBlcnJvciB2YWx1ZSByZXR1cm5lZCBmcm9tIGEgZnVuY3Rpb24uIElkZW50aWNhbCB0byBPTVhfSU5UICovCisKKyAKKy8qIE9NWF9VOCAqLworI2lmIFVDSEFSX01BWCA9PSAweGZmCit0eXBlZGVmIHVuc2lnbmVkIGNoYXIgT01YX1U4OworI2VsaWYgVVNIUlRfTUFYID09IDB4ZmYgCit0eXBlZGVmIHVuc2lnbmVkIHNob3J0IGludCBPTVhfVTg7IAorI2Vsc2UKKyNlcnJvciBPTVhfVTggdW5kZWZpbmVkCisjZW5kaWYgCisKKyAKKy8qIE9NWF9TOCAqLworI2lmIFNDSEFSX01BWCA9PSAweDdmIAordHlwZWRlZiBzaWduZWQgY2hhciBPTVhfUzg7CisjZWxpZiBTSFJUX01BWCA9PSAweDdmIAordHlwZWRlZiBzaWduZWQgc2hvcnQgaW50IE9NWF9TODsgCisjZWxzZQorI2Vycm9yIE9NWF9TOCB1bmRlZmluZWQKKyNlbmRpZgorIAorIAorLyogT01YX1UxNiAqLworI2lmIFVTSFJUX01BWCA9PSAweGZmZmYKK3R5cGVkZWYgdW5zaWduZWQgc2hvcnQgaW50IE9NWF9VMTY7CisjZWxpZiBVSU5UX01BWCA9PSAweGZmZmYKK3R5cGVkZWYgdW5zaWduZWQgaW50IE9NWF9VMTY7IAorI2Vsc2UKKyNlcnJvciBPTVhfVTE2IHVuZGVmaW5lZAorI2VuZGlmCisKKworLyogT01YX1MxNiAqLworI2lmIFNIUlRfTUFYID09IDB4N2ZmZiAKK3R5cGVkZWYgc2lnbmVkIHNob3J0IGludCBPTVhfUzE2OworI2VsaWYgSU5UX01BWCA9PSAweDdmZmYgCit0eXBlZGVmIHNpZ25lZCBpbnQgT01YX1MxNjsgCisjZWxzZQorI2Vycm9yIE9NWF9TMTYgdW5kZWZpbmVkCisjZW5kaWYKKworCisvKiBPTVhfVTMyICovCisjaWYgVUlOVF9NQVggPT0gMHhmZmZmZmZmZgordHlwZWRlZiB1bnNpZ25lZCBpbnQgT01YX1UzMjsKKyNlbGlmIExPTkdfTUFYID09IDB4ZmZmZmZmZmYKK3R5cGVkZWYgdW5zaWduZWQgbG9uZyBpbnQgT01YX1UzMjsgCisjZWxzZQorI2Vycm9yIE9NWF9VMzIgdW5kZWZpbmVkCisjZW5kaWYKKworCisvKiBPTVhfUzMyICovCisjaWYgSU5UX01BWCA9PSAweDdmZmZmZmZmCit0eXBlZGVmIHNpZ25lZCBpbnQgT01YX1MzMjsKKyNlbGlmIExPTkdfTUFYID09IDB4N2ZmZmZmZmYKK3R5cGVkZWYgbG9uZyBzaWduZWQgaW50IE9NWF9TMzI7IAorI2Vsc2UKKyNlcnJvciBPTVhfUzMyIHVuZGVmaW5lZAorI2VuZGlmCisKKworLyogT01YX1U2NCAmIE9NWF9TNjQgKi8KKyNpZiBkZWZpbmVkKCBfV0lOMzIgKSB8fCBkZWZpbmVkICggX1dJTjY0ICkKKyAgICB0eXBlZGVmIF9faW50NjQgT01YX1M2NDsgLyoqIFNpZ25lZCA2NC1iaXQgaW50ZWdlciAqLworICAgIHR5cGVkZWYgdW5zaWduZWQgX19pbnQ2NCBPTVhfVTY0OyAvKiogVW5zaWduZWQgNjQtYml0IGludGVnZXIgKi8KKyAgICAjZGVmaW5lIE9NWF9NSU5fUzY0CQkJKDB4ODAwMDAwMDAwMDAwMDAwMGk2NCkKKyAgICAjZGVmaW5lIE9NWF9NSU5fVTY0CQkJKDB4MDAwMDAwMDAwMDAwMDAwMGk2NCkKKyAgICAjZGVmaW5lIE9NWF9NQVhfUzY0CQkJKDB4N0ZGRkZGRkZGRkZGRkZGRmk2NCkKKyAgICAjZGVmaW5lIE9NWF9NQVhfVTY0CQkJKDB4RkZGRkZGRkZGRkZGRkZGRmk2NCkKKyNlbHNlCisgICAgdHlwZWRlZiBsb25nIGxvbmcgT01YX1M2NDsgLyoqIFNpZ25lZCA2NC1iaXQgaW50ZWdlciAqLworICAgIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIE9NWF9VNjQ7IC8qKiBVbnNpZ25lZCA2NC1iaXQgaW50ZWdlciAqLworICAgICNkZWZpbmUgT01YX01JTl9TNjQJCQkoMHg4MDAwMDAwMDAwMDAwMDAwTEwpCisgICAgI2RlZmluZSBPTVhfTUlOX1U2NAkJCSgweDAwMDAwMDAwMDAwMDAwMDBMTCkKKyAgICAjZGVmaW5lIE9NWF9NQVhfUzY0CQkJKDB4N0ZGRkZGRkZGRkZGRkZGRkxMKQorICAgICNkZWZpbmUgT01YX01BWF9VNjQJCQkoMHhGRkZGRkZGRkZGRkZGRkZGTEwpCisjZW5kaWYKKworCisvKiBPTVhfU0M4ICovCit0eXBlZGVmIHN0cnVjdAoreworICBPTVhfUzggUmU7IC8qKiBSZWFsIHBhcnQgKi8KKyAgT01YX1M4IEltOyAvKiogSW1hZ2luYXJ5IHBhcnQgKi8JCisJCit9IE9NWF9TQzg7IC8qKiBTaWduZWQgOC1iaXQgY29tcGxleCBudW1iZXIgKi8KKworCisvKiBPTVhfU0MxNiAqLwordHlwZWRlZiBzdHJ1Y3QKK3sKKyAgT01YX1MxNiBSZTsgLyoqIFJlYWwgcGFydCAqLworICBPTVhfUzE2IEltOyAvKiogSW1hZ2luYXJ5IHBhcnQgKi8JCisJCit9IE9NWF9TQzE2OyAvKiogU2lnbmVkIDE2LWJpdCBjb21wbGV4IG51bWJlciAqLworCisKKy8qIE9NWF9TQzMyICovCit0eXBlZGVmIHN0cnVjdAoreworICBPTVhfUzMyIFJlOyAvKiogUmVhbCBwYXJ0ICovCisgIE9NWF9TMzIgSW07IC8qKiBJbWFnaW5hcnkgcGFydCAqLwkKKwkKK30gT01YX1NDMzI7IC8qKiBTaWduZWQgMzItYml0IGNvbXBsZXggbnVtYmVyICovCisKKworLyogT01YX1NDNjQgKi8KK3R5cGVkZWYgc3RydWN0Cit7CisgIE9NWF9TNjQgUmU7IC8qKiBSZWFsIHBhcnQgKi8KKyAgT01YX1M2NCBJbTsgLyoqIEltYWdpbmFyeSBwYXJ0ICovCQorCQorfSBPTVhfU0M2NDsgLyoqIFNpZ25lZCA2NC1iaXQgY29tcGxleCBudW1iZXIgKi8KKworCisvKiBPTVhfRjMyICovCit0eXBlZGVmIGZsb2F0IE9NWF9GMzI7IC8qKiBTaW5nbGUgcHJlY2lzaW9uIGZsb2F0aW5nIHBvaW50LElFRUUgNzU0ICovCisKKy8qIE9NWF9GNjQgKi8KK3R5cGVkZWYgZG91YmxlIE9NWF9GNjQ7IC8qKiBEb3VibGUgcHJlY2lzaW9uIGZsb2F0aW5nIHBvaW50LElFRUUgNzU0ICovCisKKy8qIE9NWF9GQzMyICovCit0eXBlZGVmIHN0cnVjdAoreworICBPTVhfRjMyIFJlOyAvKiogUmVhbCBwYXJ0ICovCisgIE9NWF9GMzIgSW07IC8qKiBJbWFnaW5hcnkgcGFydCAqLwkKKworfSBPTVhfRkMzMjsgLyoqIHNpbmdsZSBwcmVjaXNpb24gZmxvYXRpbmcgcG9pbnQgY29tcGxleCBudW1iZXIgKi8KKworLyogT01YX0ZDNjQgKi8KK3R5cGVkZWYgc3RydWN0Cit7CisgIE9NWF9GNjQgUmU7IC8qKiBSZWFsIHBhcnQgKi8KKyAgT01YX0Y2NCBJbTsgLyoqIEltYWdpbmFyeSBwYXJ0ICovCQorCit9IE9NWF9GQzY0OyAvKiogZG91YmxlIHByZWNpc2lvbiBmbG9hdGluZyBwb2ludCBjb21wbGV4IG51bWJlciAqLworCisvKiBPTVhfSU5UICovCit0eXBlZGVmIGludCBPTVhfSU5UOyAvKiogc2lnbmVkIGludGVnZXIgY29ycmVzcG9uZGluZyB0byBtYWNoaW5lIHdvcmQgbGVuZ3RoLCBoYXMgbWF4aW11bSBzaWduZWQgdmFsdWUgSU5UX01BWCovCisKKworI2RlZmluZSBPTVhfTUlOX1M4ICAJICAgCSgtMTI4KQorI2RlZmluZSBPTVhfTUlOX1U4ICAJCTAKKyNkZWZpbmUgT01YX01JTl9TMTYJCSAJKC0zMjc2OCkKKyNkZWZpbmUgT01YX01JTl9VMTYJCQkwCisjZGVmaW5lIE9NWF9NSU5fUzMyCQkJKC0yMTQ3NDgzNjQ3LTEpCisjZGVmaW5lIE9NWF9NSU5fVTMyCQkJMAorCisjZGVmaW5lIE9NWF9NQVhfUzgJCQkoMTI3KQorI2RlZmluZSBPTVhfTUFYX1U4CQkJKDI1NSkKKyNkZWZpbmUgT01YX01BWF9TMTYJCQkoMzI3NjcpCisjZGVmaW5lIE9NWF9NQVhfVTE2CQkJKDB4RkZGRikKKyNkZWZpbmUgT01YX01BWF9TMzIJCQkoMjE0NzQ4MzY0NykKKyNkZWZpbmUgT01YX01BWF9VMzIJCQkoMHhGRkZGRkZGRikKKwordHlwZWRlZiB2b2lkIE9NWFZvaWQ7CisKKyNpZm5kZWYgTlVMTAorI2RlZmluZSBOVUxMICgodm9pZCopMCkKKyNlbmRpZgorCisvKiogRGVmaW5lcyB0aGUgZ2VvbWV0cmljIHBvc2l0aW9uIGFuZCBzaXplIG9mIGEgcmVjdGFuZ2xlLCAKKyAgKiB3aGVyZSB4LHkgZGVmaW5lcyB0aGUgY29vcmRpbmF0ZXMgb2YgdGhlIHRvcCBsZWZ0IGNvcm5lcgorICAqIG9mIHRoZSByZWN0YW5nbGUsIHdpdGggZGltZW5zaW9ucyB3aWR0aCBpbiB0aGUgeC1kaXJlY3Rpb24gCisgICogYW5kIGhlaWdodCBpbiB0aGUgeS1kaXJlY3Rpb24gKi8KK3R5cGVkZWYgc3RydWN0IHsKKwlPTVhfSU5UIHg7ICAgICAgLyoqIHgtY29vcmRpbmF0ZSBvZiB0b3AgbGVmdCBjb3JuZXIgb2YgcmVjdGFuZ2xlICovCisJT01YX0lOVCB5OyAgICAgIC8qKiB5LWNvb3JkaW5hdGUgb2YgdG9wIGxlZnQgY29ybmVyIG9mIHJlY3RhbmdsZSAqLworCU9NWF9JTlQgd2lkdGg7ICAvKiogV2lkdGggaW4gdGhlIHgtZGlyZWN0aW9uLiAqLworCU9NWF9JTlQgaGVpZ2h0OyAvKiogSGVpZ2h0IGluIHRoZSB5LWRpcmVjdGlvbi4gKi8KK31PTVhSZWN0OworCisKKy8qKiBEZWZpbmVzIHRoZSBnZW9tZXRyaWMgcG9zaXRpb24gb2YgYSBwb2ludCwgKi8KK3R5cGVkZWYgc3RydWN0IAoreworIE9NWF9JTlQgeDsgLyoqIHgtY29vcmRpbmF0ZSAqLworIE9NWF9JTlQgeTsJLyoqIHktY29vcmRpbmF0ZSAqLworCQorfSBPTVhQb2ludDsKKworCisvKiogRGVmaW5lcyB0aGUgZGltZW5zaW9ucyBvZiBhIHJlY3RhbmdsZSwgb3IgcmVnaW9uIG9mIGludGVyZXN0IGluIGFuIGltYWdlICovCit0eXBlZGVmIHN0cnVjdCAKK3sKKyBPTVhfSU5UIHdpZHRoOyAgLyoqIFdpZHRoIG9mIHRoZSByZWN0YW5nbGUsIGluIHRoZSB4LWRpcmVjdGlvbiAqLworIE9NWF9JTlQgaGVpZ2h0OyAvKiogSGVpZ2h0IG9mIHRoZSByZWN0YW5nbGUsIGluIHRoZSB5LWRpcmVjdGlvbiAqLworCQorfSBPTVhTaXplOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorI2VuZGlmIC8qIF9PTVhUWVBFU19IXyAqLwpkaWZmIC0tZ2l0IGEvZGwvb214dHlwZXNfcy5oIGIvZGwvb214dHlwZXNfcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ4ODBkMzUKLS0tIC9kZXYvbnVsbAorKysgYi9kbC9vbXh0eXBlc19zLmgKQEAgLTAsMCArMSw3NiBAQAorQC8vCitALy8gIENvcHlyaWdodCAoYykgMjAxMyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KK0AvLworQC8vICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCitALy8gIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorQC8vICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCitALy8gIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKK0AvLyAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCitALy8KK0AvLyAgVGhpcyBmaWxlIHdhcyBvcmlnaW5hbGx5IGxpY2Vuc2VkIGFzIGZvbGxvd3MuIEl0IGhhcyBiZWVuCitALy8gIHJlbGljZW5zZWQgd2l0aCBwZXJtaXNzaW9uIGZyb20gdGhlIGNvcHlyaWdodCBob2xkZXJzLgorQC8vCisKK0AvLyAKK0AvLyBGaWxlIE5hbWU6ICBvbXh0eXBlc19zLmgKK0AvLyBPcGVuTUFYIERMOiB2MS4wLjIKK0AvLyBMYXN0IE1vZGlmaWVkIFJldmlzaW9uOiAgIDk2MjIKK0AvLyBMYXN0IE1vZGlmaWVkIERhdGU6ICAgICAgIFdlZCwgMDYgRmViIDIwMDgKK0AvLyAKK0AvLyAoYykgQ29weXJpZ2h0IDIwMDctMjAwOCBBUk0gTGltaXRlZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KK0AvLyAKK0AvLworCitALy8gTWFuZGF0b3J5IHJldHVybiBjb2RlcyAtIHVzZSBjYXNlcyBhcmUgZXhwbGljaXRseSBkZXNjcmliZWQgZm9yIGVhY2ggZnVuY3Rpb24gCisJLmVxdQlPTVhfU3RzX05vRXJyLCAwICAgIEAvLyBObyBlcnJvciB0aGUgZnVuY3Rpb24gY29tcGxldGVkIHN1Y2Nlc3NmdWxseSAKKwkuZXF1CU9NWF9TdHNfRXJyLCAtMiAgICBALy8gVW5rbm93bi91bnNwZWNpZmllZCBlcnJvciAgICAgCisJLmVxdQlPTVhfU3RzX0ludmFsaWRCaXRzdHJlYW1WYWxFcnIsIC0xODIgIEAvLyBJbnZhbGlkIHZhbHVlIGRldGVjdGVkIGR1cmluZyBiaXRzdHJlYW0gcHJvY2Vzc2luZyAgICAgCisJLmVxdQlPTVhfU3RzX01lbUFsbG9jRXJyLCAtOSAgICBALy8gTm90IGVub3VnaCBtZW1vcnkgYWxsb2NhdGVkIGZvciB0aGUgb3BlcmF0aW9uIAorCS5lcXUJT01YX1N0c0FDQUFDX0dhaW5DdHJFcnIsIC0xNTkgIEAvLyBBQUM6IFVuc3VwcG9ydGVkIGdhaW4gY29udHJvbCBkYXRhIGRldGVjdGVkIAorCS5lcXUJT01YX1N0c0FDQUFDX1ByZ051bUVyciwgLTE2NyAgQC8vIEFBQzogSW52YWxpZCBudW1iZXIgb2YgZWxlbWVudHMgZm9yIG9uZSBwcm9ncmFtICAgCisJLmVxdQlPTVhfU3RzQUNBQUNfQ29lZlZhbEVyciwgLTE2MyAgQC8vIEFBQzogSW52YWxpZCBxdWFudGl6ZWQgY29lZmZpY2llbnQgdmFsdWUgICAgICAgICAgICAgICAKKwkuZXF1CU9NWF9TdHNBQ0FBQ19NYXhTZmJFcnIsIC0xNjIgIEAvLyBBQUM6IEludmFsaWQgbWF4U2ZiIHZhbHVlIGluIHJlbGF0aW9uIHRvIG51bVN3YiAgICAgCisJLmVxdQlPTVhfU3RzQUNBQUNfUGxzRGF0YUVyciwgLTE2MCAgQC8vIEFBQzogcHVsc2UgZXNjYXBlIHNlcXVlbmNlIGRhdGEgZXJyb3IgCisKK0AvLyBPcHRpb25hbCByZXR1cm4gY29kZXMgLSB1c2UgY2FzZXMgYXJlIGV4cGxpY2l0bHkgZGVzY3JpYmVkIGZvciBlYWNoIGZ1bmN0aW9uCisJLmVxdQlPTVhfU3RzX0JhZEFyZ0VyciwgLTUgICAgQC8vIEJhZCBBcmd1bWVudHMgCisKKwkuZXF1CU9NWF9TdHNBQ0FBQ19UbnNOdW1GaWx0RXJyLCAtMTU3ICBALy8gQUFDOiBJbnZhbGlkIG51bWJlciBvZiBUTlMgZmlsdGVycyAgCisJLmVxdQlPTVhfU3RzQUNBQUNfVG5zTGVuRXJyLCAtMTU2ICBALy8gQUFDOiBJbnZhbGlkIFROUyByZWdpb24gbGVuZ3RoICAgICAKKwkuZXF1CU9NWF9TdHNBQ0FBQ19UbnNPcmRlckVyciwgLTE1NSAgQC8vIEFBQzogSW52YWxpZCBvcmRlciBvZiBUTlMgZmlsdGVyICAgICAgICAgICAgICAgICAgICAKKwkuZXF1CU9NWF9TdHNBQ0FBQ19UbnNDb2VmUmVzRXJyLCAtMTU0ICBALy8gQUFDOiBJbnZhbGlkIGJpdC1yZXNvbHV0aW9uIGZvciBUTlMgZmlsdGVyIGNvZWZmaWNpZW50cyAgCisJLmVxdQlPTVhfU3RzQUNBQUNfVG5zQ29lZkVyciwgLTE1MyAgQC8vIEFBQzogSW52YWxpZCBUTlMgZmlsdGVyIGNvZWZmaWNpZW50cyAgICAgICAgICAgICAgICAgICAgCisJLmVxdQlPTVhfU3RzQUNBQUNfVG5zRGlyZWN0RXJyLCAtMTUyICBALy8gQUFDOiBJbnZhbGlkIFROUyBmaWx0ZXIgZGlyZWN0aW9uICAgIAorCS5lcXUJT01YX1N0c0lDSlBfSlBFR01hcmtlckVyciwgLTE4MyAgQC8vIEpQRUcgbWFya2VyIGVuY291bnRlcmVkIHdpdGhpbiBhbiBlbnRyb3B5LWNvZGVkIGJsb2NrOyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQC8vIEh1ZmZtYW4gZGVjb2Rpbmcgb3BlcmF0aW9uIHRlcm1pbmF0ZWQgZWFybHkuICAgICAgICAgICAKKwkuZXF1CU9NWF9TdHNJQ0pQX0pQRUdNYXJrZXIsIC0xODEgIEAvLyBKUEVHIG1hcmtlciBlbmNvdW50ZXJlZDsgSHVmZm1hbiBkZWNvZGluZyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQC8vIG9wZXJhdGlvbiB0ZXJtaW5hdGVkIGVhcmx5LiAgICAgICAgICAgICAgICAgICAgICAgICAKKwkuZXF1CU9NWF9TdHNJUFBQX0NvbnRleHRNYXRjaEVyciwgLTE3ICAgQC8vIENvbnRleHQgcGFyYW1ldGVyIGRvZXNuJ3QgbWF0Y2ggdG8gdGhlIG9wZXJhdGlvbiAKKworCS5lcXUJT01YX1N0c1NQX0V2ZW5NZWRpYW5NYXNrU2l6ZUVyciwgLTE4MCAgQC8vIEV2ZW4gc2l6ZSBvZiB0aGUgTWVkaWFuIEZpbHRlciBtYXNrIHdhcyByZXBsYWNlZCBieSB0aGUgb2RkIG9uZSAKKworCS5lcXUJT01YX1N0c19NYXhpbXVtRW51bWVyYXRpb24sIDB4N0ZGRkZGRkYKKworCisKKwkuZXF1CU9NWF9NSU5fUzgsICgtMTI4KQorCS5lcXUJT01YX01JTl9VOCwgMAorCS5lcXUJT01YX01JTl9TMTYsICgtMzI3NjgpCisJLmVxdQlPTVhfTUlOX1UxNiwgMAorCisKKwkuZXF1CU9NWF9NSU5fUzMyLCAoLTIxNDc0ODM2NDctMSkKKwkuZXF1CU9NWF9NSU5fVTMyLCAwCisKKwkuZXF1CU9NWF9NQVhfUzgsICgxMjcpCisJLmVxdQlPTVhfTUFYX1U4LCAoMjU1KQorCS5lcXUJT01YX01BWF9TMTYsICgzMjc2NykKKwkuZXF1CU9NWF9NQVhfVTE2LCAoMHhGRkZGKQorCS5lcXUJT01YX01BWF9TMzIsICgyMTQ3NDgzNjQ3KQorCS5lcXUJT01YX01BWF9VMzIsICgweEZGRkZGRkZGKQorCisJLmVxdQlPTVhfVkNfVVBQRVIsIDB4MSAgICAgICAgICAgICAgICAgQC8vIFVzZWQgYnkgdGhlIFByZWRpY3RJbnRyYSBmdW5jdGlvbnMgICAKKwkuZXF1CU9NWF9WQ19MRUZULCAweDIgICAgICAgICAgICAgICAgIEAvLyBVc2VkIGJ5IHRoZSBQcmVkaWN0SW50cmEgZnVuY3Rpb25zIAorCS5lcXUJT01YX1ZDX1VQUEVSX1JJR0hULCAweDQwICAgICAgICAgIEAvLyBVc2VkIGJ5IHRoZSBQcmVkaWN0SW50cmEgZnVuY3Rpb25zICAgCisKKwkuZXF1CU5VTEwsIDAKZGlmZiAtLWdpdCBhL2RsL3Rlc3QvYWxpZ25lZF9wdHIuYyBiL2RsL3Rlc3QvYWxpZ25lZF9wdHIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYmIzZTdhCi0tLSAvZGV2L251bGwKKysrIGIvZGwvdGVzdC9hbGlnbmVkX3B0ci5jCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworCisjaW5jbHVkZSAiYWxpZ25lZF9wdHIuaCIKKworI2luY2x1ZGUgPHN0ZGxpYi5oPgorCisvKiB8YWxpZ25tZW50fCBpcyB0aGUgYnl0ZSBhbGlnbm1lbnQgYW5kIE1VU1QgYmUgYSBwb3dlciBvZiB0d28uICovCitzdHJ1Y3QgQWxpZ25lZFB0ciogQWxsb2NBbGlnbmVkUG9pbnRlcihpbnQgYWxpZ25tZW50LCBpbnQgYnl0ZXMpIHsKKyAgc3RydWN0IEFsaWduZWRQdHIqIGFsaWduZWRfcHRyOworICB1bnNpZ25lZCBsb25nIHJhd19hZGRyZXNzOworICAgIAorICBhbGlnbmVkX3B0ciA9IChzdHJ1Y3QgQWxpZ25lZFB0ciopIG1hbGxvYyhzaXplb2YoKmFsaWduZWRfcHRyKSk7CisgIGFsaWduZWRfcHRyLT5yYXdfcG9pbnRlcl8gPSBtYWxsb2MoYnl0ZXMgKyBhbGlnbm1lbnQpOworICByYXdfYWRkcmVzcyA9ICh1bnNpZ25lZCBsb25nKSBhbGlnbmVkX3B0ci0+cmF3X3BvaW50ZXJfOworICByYXdfYWRkcmVzcyA9IChyYXdfYWRkcmVzcyArIGFsaWdubWVudCAtIDEpICYgfihhbGlnbm1lbnQgLSAxKTsKKyAgYWxpZ25lZF9wdHItPmFsaWduZWRfcG9pbnRlcl8gPSAodm9pZCopIHJhd19hZGRyZXNzOworCisgIHJldHVybiBhbGlnbmVkX3B0cjsKK30KKwordm9pZCBGcmVlQWxpZ25lZFBvaW50ZXIoc3RydWN0IEFsaWduZWRQdHIqIHBvaW50ZXIpIHsKKyAgZnJlZShwb2ludGVyLT5yYXdfcG9pbnRlcl8pOworICBmcmVlKHBvaW50ZXIpOworfQpkaWZmIC0tZ2l0IGEvZGwvdGVzdC9hbGlnbmVkX3B0ci5oIGIvZGwvdGVzdC9hbGlnbmVkX3B0ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2ZGE3NTIKLS0tIC9kZXYvbnVsbAorKysgYi9kbC90ZXN0L2FsaWduZWRfcHRyLmgKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICovCisKKyNpZm5kZWYgV0VCUlRDX0FSTV9GRlRfVEVTVF9BTElHTkVEX1BUUl9IXworI2RlZmluZSBXRUJSVENfQVJNX0ZGVF9URVNUX0FMSUdORURfUFRSX0hfCisKKy8qCisgKiBTaW1wbGUgYWxpZ25lZCBwb2ludGVyIHN0cnVjdHVyZSB0byBnZXQgcHJvdmlkZSBhbGlnbmVkIHBvaW50ZXJzCisgKiB0aGF0IGNhbiBiZSBmcmVlZC4KKyAqLworc3RydWN0IEFsaWduZWRQdHIgeworICB2b2lkKiByYXdfcG9pbnRlcl87CisgIHZvaWQqIGFsaWduZWRfcG9pbnRlcl87Cit9OworCisvKgorICogQWxsb2NhdGUgYW4gYWxpZ25lZCBwb2ludGVyIHRvIGFuIGFyZWEgb2Ygc2l6ZSB8Ynl0ZXN8IGJ5dGVzLiAgVGhlCisgKiBwb2ludGVyIGlzIGFsaWduZWQgdG8gfGFsaWdubWVudHwgYnl0ZXMsIHdoaWNoIE1VU1QgYmUgYSBwb3dlciBvZgorICogdHdvLiAgVGhlIGFsaWduZWQgcG9pbnRlciBpdHNlbGYgaXMgaW4gdGhlIGFsaWduZWRfcG9pbnRlcl8gc2xvdCBvZgorICogdGhlIHN0cnVjdHVyZS4KKyAqLworc3RydWN0IEFsaWduZWRQdHIqIEFsbG9jQWxpZ25lZFBvaW50ZXIoaW50IGFsaWdubWVudCwgaW50IGJ5dGVzKTsKKworLyoKKyAqIEZyZWUgdGhlIG1lbW9yeSBhbGxvY2F0ZWQgZm9yIHRoZSBhbGlnbmVkIHBvaW50ZXIsIGluY2x1ZGluZyB0aGUKKyAqIG9iamVjdCBpdHNlbGYuCisgKi8KK3ZvaWQgRnJlZUFsaWduZWRQb2ludGVyKHN0cnVjdCBBbGlnbmVkUHRyKiBwb2ludGVyKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kbC90ZXN0L2NvbXBhcmUuYyBiL2RsL3Rlc3QvY29tcGFyZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2YTRiYWYKLS0tIC9kZXYvbnVsbAorKysgYi9kbC90ZXN0L2NvbXBhcmUuYwpAQCAtMCwwICsxLDE4MyBAQAorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPG1hdGguaD4KKyNpbmNsdWRlICJhcm1TUC5oIgorI2luY2x1ZGUgImNvbXBhcmUuaCIKKworZXh0ZXJuIGludCB2ZXJib3NlOworCisvLyBDb252ZXJ0IHRvIGRCCitzdGF0aWMgZG91YmxlIERiKGRvdWJsZSB4KSB7CisgICAgcmV0dXJuICh4IDw9IDApID8gLTEwMDAuMCA6IDEwICogbG9nKHgpIC8gbG9nKDEwKTsKK30KKworc3RhdGljIGRvdWJsZSBDYWxjdWxhdGVTTlIoZG91YmxlIHNpZ25hbF9wb3dlciwgZG91YmxlIG5vaXNlX3Bvd2VyKSB7CisgICAgcmV0dXJuIChub2lzZV9wb3dlciA9PSAwKSA/IDEwMDAgOiBEYihzaWduYWxfcG93ZXIgLyBub2lzZV9wb3dlcik7Cit9CisKKy8qCisgKiBDb21wdXRlIHRoZSBTTlIgb2YgdGhlIGFjdHVhbCBzaWduYWwsIHJldHVybmluZyB0aGUgU05SIG9mIHRoZSByZWFsCisgKiBhbmQgaW1hZ2luYXJ5IHBhcnRzIHNlcGFyYXRlbHksIGFuZCBhbHNvIHRoZSBvdmVyYWxsIChjb21wbGV4IFNOUikKKyAqLworCit2b2lkIENvbXBhcmVDb21wbGV4MzIoc3RydWN0IFNuclJlc3VsdCogc25yLCBPTVhfU0MzMiogYWN0dWFsLAorICAgICAgICAgICAgICAgICAgICAgIE9NWF9TQzMyKiBleHBlY3RlZCwgaW50IHNpemUpIHsKKyAgZG91YmxlIHJlYWxfc2lnbmFsX3Bvd2VyID0gMDsKKyAgZG91YmxlIGltYWdfc2lnbmFsX3Bvd2VyID0gMDsKKyAgZG91YmxlIGNvbXBsZXhfc2lnbmFsX3Bvd2VyID0gMDsKKyAgZG91YmxlIHJlYWxfbm9pc2VfcG93ZXIgPSAwOworICBkb3VibGUgaW1hZ19ub2lzZV9wb3dlciA9IDA7CisgIGRvdWJsZSBjb21wbGV4X25vaXNlX3Bvd2VyID0gMDsKKyAgaW50IGs7CisKKyAgZm9yIChrID0gMDsgayA8IHNpemU7ICsraykgeworICAgIGRvdWJsZSB4MjsKKyAgICBkb3VibGUgeTI7CisgICAgZG91YmxlIHoyOworCisgICAgaWYgKHZlcmJvc2UgPiAyNTUpIHsKKyAgICAgIHByaW50ZigiJTRkOiAoJTEwZCwgJTEwZCkgKCUxMGQsICUxMGQpXG4iLCBrLAorICAgICAgICAgICAgIGFjdHVhbFtrXS5SZSwgYWN0dWFsW2tdLkltLAorICAgICAgICAgICAgIGV4cGVjdGVkW2tdLlJlLCBleHBlY3RlZFtrXS5JbSk7CisgICAgfQorCisgICAgeDIgPSBwb3coKGRvdWJsZSkgZXhwZWN0ZWRba10uUmUsIDIpOworICAgIHkyID0gcG93KChkb3VibGUpIGV4cGVjdGVkW2tdLkltLCAyKTsKKyAgICByZWFsX3NpZ25hbF9wb3dlciArPSB4MjsKKyAgICBpbWFnX3NpZ25hbF9wb3dlciArPSB5MjsKKyAgICBjb21wbGV4X3NpZ25hbF9wb3dlciArPSB4MiArIHkyOworCisgICAgeDIgPSBwb3coKGRvdWJsZSkgYWN0dWFsW2tdLlJlIC0gZXhwZWN0ZWRba10uUmUsIDIpOworICAgIHkyID0gcG93KChkb3VibGUpIGFjdHVhbFtrXS5JbSAtIGV4cGVjdGVkW2tdLkltLCAyKTsKKworICAgIHJlYWxfbm9pc2VfcG93ZXIgKz0geDI7CisgICAgaW1hZ19ub2lzZV9wb3dlciArPSB5MjsKKyAgICBjb21wbGV4X25vaXNlX3Bvd2VyICs9IHgyICsgeTI7CisgIH0KKworICBzbnItPnJlYWxfc25yXyA9IENhbGN1bGF0ZVNOUihyZWFsX3NpZ25hbF9wb3dlciwgcmVhbF9ub2lzZV9wb3dlcik7CisgIHNuci0+aW1hZ19zbnJfID0gQ2FsY3VsYXRlU05SKGltYWdfc2lnbmFsX3Bvd2VyLCBpbWFnX25vaXNlX3Bvd2VyKTsKKyAgc25yLT5jb21wbGV4X3Nucl8gPSBDYWxjdWxhdGVTTlIoY29tcGxleF9zaWduYWxfcG93ZXIsIGNvbXBsZXhfbm9pc2VfcG93ZXIpOworfQorCisvKgorICogQ29tcHV0ZSB0aGUgU05SIG9mIHRoZSBhY3R1YWwgcmVhbCBzaWduYWwsIHJldHVybmluZyB0aGUgU05SLgorICovCisKK3ZvaWQgQ29tcGFyZVJlYWwzMihzdHJ1Y3QgU25yUmVzdWx0KiBzbnIsIE9NWF9TMzIqIGFjdHVhbCwKKyAgICAgICAgICAgICAgICAgICBPTVhfUzMyKiBleHBlY3RlZCwgaW50IHNpemUpIHsKKyAgZG91YmxlIHJlYWxfc2lnbmFsX3Bvd2VyID0gMDsKKyAgZG91YmxlIHJlYWxfbm9pc2VfcG93ZXIgPSAwOworCisgIGludCBrOworICBmb3IgKGsgPSAwOyBrIDwgc2l6ZTsgKytrKSB7CisgICAgZG91YmxlIHgyOworCisgICAgeDIgPSBwb3coKGRvdWJsZSkgZXhwZWN0ZWRba10sIDIpOworCisgICAgcmVhbF9zaWduYWxfcG93ZXIgKz0geDI7CisKKyAgICB4MiA9IHBvdygoZG91YmxlKSBhY3R1YWxba10gLSBleHBlY3RlZFtrXSwgMik7CisKKyAgICByZWFsX25vaXNlX3Bvd2VyICs9IHgyOworICB9CisKKyAgc25yLT5yZWFsX3Nucl8gPSBDYWxjdWxhdGVTTlIocmVhbF9zaWduYWxfcG93ZXIsIHJlYWxfbm9pc2VfcG93ZXIpOworICBzbnItPmltYWdfc25yXyA9IC0xMDAwMDsKKyAgc25yLT5jb21wbGV4X3Nucl8gPSAtMTAwMDA7Cit9CisKK3ZvaWQgQ29tcGFyZVJlYWwxNihzdHJ1Y3QgU25yUmVzdWx0KiBzbnIsIE9NWF9TMTYqIGFjdHVhbCwKKyAgICAgICAgICAgICAgICAgICBPTVhfUzE2KiBleHBlY3RlZCwgaW50IHNpemUpIHsKKyAgZG91YmxlIHJlYWxfc2lnbmFsX3Bvd2VyID0gMDsKKyAgZG91YmxlIHJlYWxfbm9pc2VfcG93ZXIgPSAwOworCisgIGludCBrOworICBmb3IgKGsgPSAwOyBrIDwgc2l6ZTsgKytrKSB7CisgICAgZG91YmxlIHgyOworCisgICAgeDIgPSBwb3coKGRvdWJsZSkgZXhwZWN0ZWRba10sIDIpOworCisgICAgcmVhbF9zaWduYWxfcG93ZXIgKz0geDI7CisKKyAgICB4MiA9IHBvdygoZG91YmxlKSBhY3R1YWxba10gLSBleHBlY3RlZFtrXSwgMik7CisKKyAgICByZWFsX25vaXNlX3Bvd2VyICs9IHgyOworICB9CisKKyAgc25yLT5yZWFsX3Nucl8gPSBDYWxjdWxhdGVTTlIocmVhbF9zaWduYWxfcG93ZXIsIHJlYWxfbm9pc2VfcG93ZXIpOworICBzbnItPmltYWdfc25yXyA9IC0xMDAwMDsKKyAgc25yLT5jb21wbGV4X3Nucl8gPSAtMTAwMDA7Cit9CisKK3ZvaWQgQ29tcGFyZUNvbXBsZXhGbG9hdChzdHJ1Y3QgU25yUmVzdWx0KiBzbnIsIE9NWF9GQzMyKiBhY3R1YWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgT01YX0ZDMzIqIGV4cGVjdGVkLCBpbnQgc2l6ZSkgeworICBkb3VibGUgcmVhbF9zaWduYWxfcG93ZXIgPSAwOworICBkb3VibGUgaW1hZ19zaWduYWxfcG93ZXIgPSAwOworICBkb3VibGUgY29tcGxleF9zaWduYWxfcG93ZXIgPSAwOworICBkb3VibGUgcmVhbF9ub2lzZV9wb3dlciA9IDA7CisgIGRvdWJsZSBpbWFnX25vaXNlX3Bvd2VyID0gMDsKKyAgZG91YmxlIGNvbXBsZXhfbm9pc2VfcG93ZXIgPSAwOworICBpbnQgazsKKworICBmb3IgKGsgPSAwOyBrIDwgc2l6ZTsgKytrKSB7CisgICAgZG91YmxlIHgyOworICAgIGRvdWJsZSB5MjsKKyAgICBkb3VibGUgejI7CisKKyAgICBpZiAodmVyYm9zZSA+IDI1NSkgeworICAgICAgcHJpbnRmKCIlNGQ6ICglMTBnLCAlMTBnKSAoJTEwZywgJTEwZylcbiIsIGssCisgICAgICAgICAgICAgYWN0dWFsW2tdLlJlLCBhY3R1YWxba10uSW0sCisgICAgICAgICAgICAgZXhwZWN0ZWRba10uUmUsIGV4cGVjdGVkW2tdLkltKTsKKyAgICB9CisKKyAgICB4MiA9IHBvdygoZG91YmxlKSBleHBlY3RlZFtrXS5SZSwgMik7CisgICAgeTIgPSBwb3coKGRvdWJsZSkgZXhwZWN0ZWRba10uSW0sIDIpOworICAgIHJlYWxfc2lnbmFsX3Bvd2VyICs9IHgyOworICAgIGltYWdfc2lnbmFsX3Bvd2VyICs9IHkyOworICAgIGNvbXBsZXhfc2lnbmFsX3Bvd2VyICs9IHgyICsgeTI7CisKKyAgICB4MiA9IHBvdygoZG91YmxlKSBhY3R1YWxba10uUmUgLSBleHBlY3RlZFtrXS5SZSwgMik7CisgICAgeTIgPSBwb3coKGRvdWJsZSkgYWN0dWFsW2tdLkltIC0gZXhwZWN0ZWRba10uSW0sIDIpOworCisgICAgcmVhbF9ub2lzZV9wb3dlciArPSB4MjsKKyAgICBpbWFnX25vaXNlX3Bvd2VyICs9IHkyOworICAgIGNvbXBsZXhfbm9pc2VfcG93ZXIgKz0geDIgKyB5MjsKKyAgfQorCisgIHNuci0+cmVhbF9zbnJfID0gQ2FsY3VsYXRlU05SKHJlYWxfc2lnbmFsX3Bvd2VyLCByZWFsX25vaXNlX3Bvd2VyKTsKKyAgc25yLT5pbWFnX3Nucl8gPSBDYWxjdWxhdGVTTlIoaW1hZ19zaWduYWxfcG93ZXIsIGltYWdfbm9pc2VfcG93ZXIpOworICBzbnItPmNvbXBsZXhfc25yXyA9IENhbGN1bGF0ZVNOUihjb21wbGV4X3NpZ25hbF9wb3dlciwgY29tcGxleF9ub2lzZV9wb3dlcik7Cit9CisKK3ZvaWQgQ29tcGFyZUZsb2F0KHN0cnVjdCBTbnJSZXN1bHQqIHNuciwgT01YX0YzMiogYWN0dWFsLAorICAgICAgICAgICAgICAgICAgT01YX0YzMiogZXhwZWN0ZWQsIGludCBzaXplKSB7CisgIGRvdWJsZSBzaWduYWxfcG93ZXIgPSAwOworICBkb3VibGUgbm9pc2VfcG93ZXIgPSAwOworCisgIGludCBrOworICBmb3IgKGsgPSAwOyBrIDwgc2l6ZTsgKytrKSB7CisgICAgZG91YmxlIHgyOworCisgICAgeDIgPSBwb3coKGRvdWJsZSkgZXhwZWN0ZWRba10sIDIpOworCisgICAgc2lnbmFsX3Bvd2VyICs9IHgyOworCisgICAgeDIgPSBwb3coKGRvdWJsZSkgYWN0dWFsW2tdIC0gZXhwZWN0ZWRba10sIDIpOworCisgICAgbm9pc2VfcG93ZXIgKz0geDI7CisgIH0KKworICBzbnItPnJlYWxfc25yXyA9IENhbGN1bGF0ZVNOUihzaWduYWxfcG93ZXIsIG5vaXNlX3Bvd2VyKTsKKyAgc25yLT5pbWFnX3Nucl8gPSAtMTAwMDA7CisgIHNuci0+Y29tcGxleF9zbnJfID0gc25yLT5yZWFsX3Nucl87Cit9CmRpZmYgLS1naXQgYS9kbC90ZXN0L2NvbXBhcmUuaCBiL2RsL3Rlc3QvY29tcGFyZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjViNWQxODIKLS0tIC9kZXYvbnVsbAorKysgYi9kbC90ZXN0L2NvbXBhcmUuaApAQCAtMCwwICsxLDQyIEBACisvKgorICogIENvcHlyaWdodCAoYykgMjAxMyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKworI2lmbmRlZiBXRUJSVENfQVJNX0ZGVF9URVNUX0NPTVBBUkVfSF8KKyNkZWZpbmUgV0VCUlRDX0FSTV9GRlRfVEVTVF9DT01QQVJFX0hfCisKK3N0cnVjdCBTbnJSZXN1bHQgeworICAvKiBTTlIgKGluIGRCKSBmb3IgcmVhbCBjb21wb25lbnQgKGZvciBjb21wbGV4IHNpZ25hbHMpICovCisgIGZsb2F0IHJlYWxfc25yXzsKKworICAvKiBTTlIgKGluIGRCKSBmb3IgaW1hZ2luYXJ5IGNvbXBvbmVudCAoZm9yIGNvbXBsZXggc2lnbmFscykgKi8KKyAgZmxvYXQgaW1hZ19zbnJfOworCisgIC8qIFNOUiAoaW4gZEIpIGZvciByZWFsIGFuZCBjb21wbGV4IGNvbXBvbmVudCAoZm9yIGNvbXBsZXggc2lnbmFscykgKi8KKyAgZmxvYXQgY29tcGxleF9zbnJfOworfTsKKworLyoKKyAqIENvbXB1dGUgdGhlIFNOUiBiZXR3ZWVuIHRoZSB8YWN0dWFsfCBhbmQgfGV4cGVjdGVkfCBzaWduYWxzIG9mCisgKiBsZW5ndGggfHNpemV8LiAgVGhyZWUgU05ScyBhcmUgY29tcHV0ZWQuICBBbiBTTlIgaXMgY29tcHV0ZWQgZm9yCisgKiBqdXN0IHRoZSByZWFsIGNvbXBvbmVudCwganVzdCB0aGUgaW1hZ2luYXJ5IGNvbXBvbmVudCwgYW5kIHRoZQorICogY29tcGxleCBjb21wb25lbnQuICBUaGUgY29tcHV0ZWQgU05SIGlzIGluIGRCcy4KKyAqLwordm9pZCBDb21wYXJlQ29tcGxleDMyKHN0cnVjdCBTbnJSZXN1bHQqIHNuciwgT01YX1NDMzIqIGFjdHVhbCwKKyAgICAgICAgICAgICAgICAgICAgICBPTVhfU0MzMiogZXhwZWN0ZWQsIGludCBzaXplKTsKK3ZvaWQgQ29tcGFyZVJlYWwzMihzdHJ1Y3QgU25yUmVzdWx0KiBzbnIsIE9NWF9TMzIqIGFjdHVhbCwKKyAgICAgICAgICAgICAgICAgICBPTVhfUzMyKiBleHBlY3RlZCwgaW50IHNpemUpOwordm9pZCBDb21wYXJlUmVhbDE2KHN0cnVjdCBTbnJSZXN1bHQqIHNuciwgT01YX1MxNiogYWN0dWFsLAorICAgICAgICAgICAgICAgICAgIE9NWF9TMTYqIGV4cGVjdGVkLCBpbnQgc2l6ZSk7Cit2b2lkIENvbXBhcmVDb21wbGV4RmxvYXQoc3RydWN0IFNuclJlc3VsdCogc25yLCBPTVhfRkMzMiogYWN0dWFsLAorICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9GQzMyKiBleHBlY3RlZCwgaW50IHNpemUpOwordm9pZCBDb21wYXJlRmxvYXQoc3RydWN0IFNuclJlc3VsdCogc25yLCBPTVhfRjMyKiBhY3R1YWwsCisgICAgICAgICAgICAgICAgICBPTVhfRjMyKiBleHBlY3RlZCwgaW50IHNpemUpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RsL3Rlc3QvZ2Vuc2lnLmMgYi9kbC90ZXN0L2dlbnNpZy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkYmYwYTcKLS0tIC9kZXYvbnVsbAorKysgYi9kbC90ZXN0L2dlbnNpZy5jCkBAIC0wLDAgKzEsMTMyIEBACisvKgorICogIENvcHlyaWdodCAoYykgMjAxMyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKworI2luY2x1ZGUgImdlbnNpZy5oIgorCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxtYXRoLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisKKyNkZWZpbmUgTUFYX1JFQUxfU0lHTkFMX1RZUEUgMworI2RlZmluZSBNQVhfU0lHTkFMX1RZUEUgNAorCitpbnQgTWF4U2lnbmFsVHlwZShpbnQgcmVhbF9vbmx5KSB7CisgIHJldHVybiByZWFsX29ubHkgPyBNQVhfUkVBTF9TSUdOQUxfVFlQRSA6IE1BWF9TSUdOQUxfVFlQRTsKK30KKworLyoKKyAqIEdlbmVyYXRlIGEgdGVzdCBzaWduYWwgYW5kIGNvbXB1dGUgdGhlIHRoZW9yZXRpY2FsIEZGVC4KKyAqCisgKiBUaGUgdGVzdCBzaWduYWwgaXMgc3BlY2lmaWVkIGJ5IHxzaWduYWxfdHlwZXwsIGFuZCB0aGUgdGVzdCBzaWduYWwKKyAqIGlzIHNhdmVkIGluIHx4fCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIEZGVCBpbiB8ZmZ0fC4gIFRoZSBzaXplIG9mCisgKiB0aGUgdGVzdCBzaWduYWwgaXMgfHNpemV8LiAgfHNpZ25hbFZhbHVlfCBpcyBkZXNpcmVkIHRoZSBhbXBsaXR1ZGUKKyAqIG9mIHRoZSB0ZXN0IHNpZ25hbC4KKyAqCisgKiBJZiB8cmVhbF9vbmx5fCBpcyB0cnVlLCB0aGVuIHRoZSB0ZXN0IHNpZ25hbCBpcyBhc3N1bWVkIHRvIGJlIHJlYWwKKyAqIGluc3RlYWQgb2YgY29tcGxleCwgd2hpY2ggaXMgdGhlIGRlZmF1bHQuICBUaGlzIGlzIG9ubHkgYXBwbGljYWJsZQorICogZm9yIGEgfHNpZ25hbF90eXBlfCBvZiAwIG9yIDM7IHRoZSBvdGhlciBzaWduYWxzIGFyZSBhbHJlYWR5IHJlYWwtdmFsdWVkLgorICovCit2b2lkIEdlbmVyYXRlVGVzdFNpZ25hbEFuZEZGVChzdHJ1Y3QgQ29tcGxleEZsb2F0KiB4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IENvbXBsZXhGbG9hdCogZmZ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2lnbmFsX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBzaWduYWxfdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVhbF9vbmx5KSB7CisgIGludCBrOworICAgIAorICBzd2l0Y2ggKHNpZ25hbF90eXBlKSB7CisgICAgY2FzZSAwOgorICAgICAgLyoKKyAgICAgICAqIFNpZ25hbCBpcyBhIGNvbnN0YW50IHNpZ25hbF92YWx1ZSArIGkqc2lnbmFsX3ZhbHVlIChvciBqdXN0CisgICAgICAgKiBzaWduYWxfdmFsdWUgaWYgcmVhbF9vbmx5IGlzIHRydWUuKQorICAgICAgICovCisgICAgICBmb3IgKGsgPSAwOyBrIDwgc2l6ZTsgKytrKSB7CisgICAgICAgIHhba10uUmUgPSBzaWduYWxfdmFsdWU7CisgICAgICAgIHhba10uSW0gPSByZWFsX29ubHkgPyAwIDogc2lnbmFsX3ZhbHVlOworICAgICAgfQorCisgICAgICBmZnRbMF0uUmUgPSBzaWduYWxfdmFsdWUgKiBzaXplOworICAgICAgZmZ0WzBdLkltID0gcmVhbF9vbmx5ID8gMCA6IHNpZ25hbF92YWx1ZSAqIHNpemU7CisKKyAgICAgIGZvciAoayA9IDE7IGsgPCBzaXplOyArK2spIHsKKyAgICAgICAgZmZ0W2tdLlJlID0gZmZ0W2tdLkltID0gMDsKKyAgICAgIH0KKyAgICAgIGJyZWFrOworICAgIGNhc2UgMToKKyAgICAgIC8qCisgICAgICAgKiBBIHJlYWwtdmFsdWVkIHJhbXAKKyAgICAgICAqLworICAgICAgeworICAgICAgICBkb3VibGUgZmFjdG9yID0gc2lnbmFsX3ZhbHVlIC8gKGZsb2F0KSBzaXplOworICAgICAgICBkb3VibGUgb21lZ2EgPSAyICogTV9QSSAvIHNpemU7CisKKyAgICAgICAgZm9yIChrID0gMDsgayA8IHNpemU7ICsraykgeworICAgICAgICAgIHhba10uUmUgPSAoKGsgKyAxKSpmYWN0b3IpOworICAgICAgICAgIHhba10uSW0gPSAwOworICAgICAgICB9CisKKyAgICAgICAgZmZ0WzBdLlJlID0gZmFjdG9yICogc2l6ZSAqIChzaXplICsgMSkgLyAyOworICAgICAgICBmZnRbMF0uSW0gPSAwOworICAgICAgICBmb3IgKGsgPSAxOyBrIDwgc2l6ZTsgKytrKSB7CisgICAgICAgICAgZG91YmxlIHBoYXNlOworICAgICAgICAgIHBoYXNlID0gb21lZ2EgKiBrOworICAgICAgICAgIGZmdFtrXS5SZSA9IGZhY3RvciAqIC1zaXplIC8gMjsKKyAgICAgICAgICBmZnRba10uSW0gPSBmYWN0b3IgKiBzaXplIC8gMiAqIChzaW4ocGhhc2UpIC8gKDEgLSBjb3MocGhhc2UpKSk7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIGJyZWFrOworICAgIGNhc2UgMjoKKyAgICAgIC8qCisgICAgICAgKiBQdXJlIHJlYWwtdmFsdWVkIHNpbmUgd2F2ZSwgb25lIGN5Y2xlLgorICAgICAgICovCisgICAgICB7CisgICAgICAgIGRvdWJsZSBvbWVnYSA9IDIgKiBNX1BJIC8gc2l6ZTsKKworICAgICAgICBmb3IgKGsgPSAwOyBrIDwgc2l6ZTsgKytrKSB7CisgICAgICAgICAgeFtrXS5SZSA9IHNpZ25hbF92YWx1ZSAqIHNpbihvbWVnYSAqIGspOworICAgICAgICAgIHhba10uSW0gPSAwOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChrID0gMDsgayA8IHNpemU7ICsraykgeworICAgICAgICAgIGZmdFtrXS5SZSA9IDA7CisgICAgICAgICAgZmZ0W2tdLkltID0gMDsKKyAgICAgICAgfQorICAgICAgICBmZnRbMV0uSW0gPSAtc2lnbmFsX3ZhbHVlICogKHNpemUgLyAyKTsKKyAgICAgICAgZmZ0W3NpemUgLSAxXS5JbSA9IHNpZ25hbF92YWx1ZSAqIChzaXplIC8gMik7CisgICAgICB9CisgICAgICBicmVhazsKKyAgICBjYXNlIDM6CisgICAgICAvKgorICAgICAgICogVGhlIHNvdXJjZSBzaWduYWwgaXMgeFtrXSA9IDAgZXhjZXB0IHhbMV0gPSB4W3NpemUtMV0gPQorICAgICAgICogLWkqc2lnbmFsX3ZhbHVlLiAgVGhlIHRyYW5zZm9ybSBpcyBvbmUgcGVyaW9kIG9mIGEgcHVyZSByZWFsCisgICAgICAgKiAobmVnYXRpdmUpIHNpbmUgd2F2ZS4gIE9ubHkgZGVmaW5lZCB3aGVuIHJlYWxfb25seSBpcyBmYWxzZS4KKyAgICAgICAqLworICAgICAgaWYgKCFyZWFsX29ubHkpIHsKKyAgICAgICAgZG91YmxlIG9tZWdhID0gMiAqIE1fUEkgLyBzaXplOworICAgICAgICBmb3IgKGsgPSAwOyBrIDwgc2l6ZTsgKytrKSB7CisgICAgICAgICAgeFtrXS5SZSA9IDA7CisgICAgICAgICAgeFtrXS5JbSA9IDA7CisgICAgICAgIH0KKyAgICAgICAgeFsxXS5JbSA9IC1zaWduYWxfdmFsdWU7CisgICAgICAgIHhbc2l6ZS0xXS5JbSA9IHNpZ25hbF92YWx1ZTsKKworICAgICAgICBmb3IgKGsgPSAwOyBrIDwgc2l6ZTsgKytrKSB7CisgICAgICAgICAgZmZ0W2tdLlJlID0gLTIgKiBzaWduYWxfdmFsdWUgKiBzaW4ob21lZ2EgKiBrKTsKKyAgICAgICAgICBmZnRba10uSW0gPSAwOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgICAgfQorICAgICAgLyogRmFsbCB0aHJvdWdoIGlmIHJlYWxfb25seSAqLworICAgIGNhc2UgTUFYX1NJR05BTF9UWVBFOgorICAgIGRlZmF1bHQ6CisgICAgICBmcHJpbnRmKHN0ZGVyciwgImludmFsaWQgc2lnbmFsIHR5cGU6ICVkXG4iLCBzaWduYWxfdHlwZSk7CisgICAgICBleGl0KDEpOworICB9Cit9CmRpZmYgLS1naXQgYS9kbC90ZXN0L2dlbnNpZy5oIGIvZGwvdGVzdC9nZW5zaWcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNjUwZjQxCi0tLSAvZGV2L251bGwKKysrIGIvZGwvdGVzdC9nZW5zaWcuaApAQCAtMCwwICsxLDM1IEBACisvKgorICogIENvcHlyaWdodCAoYykgMjAxMyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKworI2lmbmRlZiBXRUJSVENfQVJNX0ZGVF9URVNUX0dFTlNJR19IXworI2RlZmluZSBXRUJSVENfQVJNX0ZGVF9URVNUX0dFTlNJR19IXworCitzdHJ1Y3QgQ29tcGxleEZsb2F0IHsKKyAgICBmbG9hdCBSZTsKKyAgICBmbG9hdCBJbTsKK307CisKKy8qCisgKiBSZXR1cm5zIHRoZSBtYXggYWxsb3dlZCBzaWduYWwgdHlwZSwgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIHRlc3QKKyAqIHNpZ25hbCBpcyByZWFsIG9yIG5vdAorICovCitpbnQgTWF4U2lnbmFsVHlwZShpbnQgcmVhbF9vbmx5KTsKKworLyoKKyAqIEdlbmVyYXRlIGEgdGVzdCBzaWduYWwgYW5kIGNvcnJlc3BvbmRpbmcgRkZULgorICovCit2b2lkIEdlbmVyYXRlVGVzdFNpZ25hbEFuZEZGVChzdHJ1Y3QgQ29tcGxleEZsb2F0KiB4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IENvbXBsZXhGbG9hdCogZmZ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2lnbmFsX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBzaWduYWxfdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVhbF9vbmx5KTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kbC90ZXN0L3Rlc3RfZmZ0Lmd5cCBiL2RsL3Rlc3QvdGVzdF9mZnQuZ3lwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiN2NkNDcKLS0tIC9kZXYvbnVsbAorKysgYi9kbC90ZXN0L3Rlc3RfZmZ0Lmd5cApAQCAtMCwwICsxLDE1MiBAQAorIyAgQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorIworIyAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorIyAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisjICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisjICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisjICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKworeworICAndmFyaWFibGVzJyA6IHsKKyAgICAjIE92ZXJyaWRlIHRoaXMgdmFsdWUgdG8gYnVpbGQgd2l0aCBzbWFsbCBmbG9hdCBGRlQgdGFibGVzCisgICAgJ2JpZ19mbG9hdF9mZnQlJyA6IDEsCisgIH0sCisgICd0YXJnZXRzJzogWworICAgIHsKKyAgICAgICMgVGVzdCB1dGlsaXRpZXMKKyAgICAgICd0YXJnZXRfbmFtZSc6ICd0ZXN0X3V0aWxpdGllcycsCisgICAgICAndHlwZScgOiAnPChjb21wb25lbnQpJywKKyAgICAgICdpbmNsdWRlX2RpcnMnOiBbCisgICAgICAgICcuLicsCisgICAgICBdLAorICAgICAgJ2RlcGVuZGVuY2llcycgOiBbCisgICAgICAgICcuLi9hcm1fZmZ0Lmd5cDphcm1fZmZ0JywKKyAgICAgIF0sCisgICAgICAnc291cmNlcycgOiBbCisgICAgICAgICdhbGlnbmVkX3B0ci5jJywKKyAgICAgICAgJ2NvbXBhcmUuYycsCisgICAgICAgICdnZW5zaWcuYycsCisgICAgICAgICd0ZXN0X3V0aWwuYycsCisgICAgICBdLAorICAgIH0sCisgICAgeworICAgICAgIyBUZXN0IGNvbXBsZXggZml4ZWQtcG9pbnQgMzItYml0IEZGVAorICAgICAgJ3RhcmdldF9uYW1lJzogJ3Rlc3RfZmZ0MzInLAorICAgICAgJ3R5cGUnOiAnZXhlY3V0YWJsZScsCisgICAgICAnaW5jbHVkZV9kaXJzJzogWworICAgICAgICAnLi4nLAorICAgICAgXSwKKyAgICAgICdkZXBlbmRlbmNpZXMnIDogWworICAgICAgICAnLi4vYXJtX2ZmdC5neXA6YXJtX2ZmdCcsCisgICAgICAgICd0ZXN0X3V0aWxpdGllcycKKyAgICAgIF0sCisgICAgICAnc291cmNlcyc6IFsKKyAgICAgICAgJ3Rlc3RfZmZ0MzIuYycsCisgICAgICBdLAorICAgIH0sCisgICAgeworICAgICAgIyBUZXN0IHJlYWwgMzItYml0IGZpeGVkLXBvaW50IEZGVAorICAgICAgJ3RhcmdldF9uYW1lJzogJ3Rlc3RfcmZmdDMyJywKKyAgICAgICd0eXBlJzogJ2V4ZWN1dGFibGUnLAorICAgICAgJ2luY2x1ZGVfZGlycyc6IFsKKyAgICAgICAgJy4uJywKKyAgICAgIF0sCisgICAgICAnZGVwZW5kZW5jaWVzJyA6IFsKKyAgICAgICAgJ3Rlc3RfdXRpbGl0aWVzJworICAgICAgXSwKKyAgICAgICdzb3VyY2VzJzogWworICAgICAgICAndGVzdF9yZmZ0MzIuYycsCisgICAgICBdLAorICAgIH0sCisgICAgeworICAgICAgIyBUZXN0IHJlYWwgMTYtYml0IGZpeGVkLXBvaW50IEZGVAorICAgICAgJ3RhcmdldF9uYW1lJzogJ3Rlc3RfcmZmdDE2JywKKyAgICAgICd0eXBlJzogJ2V4ZWN1dGFibGUnLAorICAgICAgJ2luY2x1ZGVfZGlycyc6IFsKKyAgICAgICAgJy4uJywKKyAgICAgIF0sCisgICAgICAnZGVwZW5kZW5jaWVzJyA6IFsKKyAgICAgICAgJ3Rlc3RfdXRpbGl0aWVzJworICAgICAgXSwKKyAgICAgICdzb3VyY2VzJzogWworICAgICAgICAndGVzdF9yZmZ0MTYuYycsCisgICAgICBdLAorICAgIH0sCisgICAgeworICAgICAgIyBUZXN0IGNvbXBsZXggZmxvYXRpbmctcG9pbnQgRkZUCisgICAgICAndGFyZ2V0X25hbWUnOiAndGVzdF9mbG9hdF9mZnQnLAorICAgICAgJ3R5cGUnOiAnZXhlY3V0YWJsZScsCisgICAgICAnaW5jbHVkZV9kaXJzJzogWworICAgICAgICAnLi4nLAorICAgICAgXSwKKyAgICAgICdkZXBlbmRlbmNpZXMnIDogWworICAgICAgICAndGVzdF91dGlsaXRpZXMnCisgICAgICBdLAorICAgICAgJ3NvdXJjZXMnOiBbCisgICAgICAgICd0ZXN0X2Zsb2F0X2ZmdC5jJywKKyAgICAgIF0sCisgICAgICAnY29uZGl0aW9ucyc6IFsKKyAgICAgICAgWydiaWdfZmxvYXRfZmZ0ID09IDEnLCB7CisgICAgICAgICAgJ2RlZmluZXMnOiBbCisgICAgICAgICAgICAnQklHX0ZGVF9UQUJMRScsCisgICAgICAgICAgXSwKKyAgICAgICAgfV0sCisgICAgICBdLAorICAgIH0sCisgICAgeworICAgICAgIyBUZXN0IHJlYWwgZmxvYXRpbmctcG9pbnQgRkZUCisgICAgICAndGFyZ2V0X25hbWUnOiAndGVzdF9mbG9hdF9yZmZ0JywKKyAgICAgICd0eXBlJzogJ2V4ZWN1dGFibGUnLAorICAgICAgJ2luY2x1ZGVfZGlycyc6IFsKKyAgICAgICAgJy4uJywKKyAgICAgIF0sCisgICAgICAnZGVwZW5kZW5jaWVzJyA6IFsKKyAgICAgICAgJ3Rlc3RfdXRpbGl0aWVzJworICAgICAgXSwKKyAgICAgICdzb3VyY2VzJzogWworICAgICAgICAndGVzdF9mbG9hdF9yZmZ0LmMnLAorICAgICAgXSwKKyAgICAgICdjb25kaXRpb25zJzogWworICAgICAgICBbJ2JpZ19mbG9hdF9mZnQgPT0gMScsIHsKKyAgICAgICAgICAnZGVmaW5lcyc6IFsKKyAgICAgICAgICAgICdCSUdfRkZUX1RBQkxFJywKKyAgICAgICAgICBdLAorICAgICAgICB9XSwKKyAgICAgIF0sCisgICAgfSwKKyAgICB7CisgICAgICAjIFNpbXBsZSB0aW1pbmcgdGVzdCBvZiBGRlRzCisgICAgICAndGFyZ2V0X25hbWUnOiAndGVzdF9mZnRfdGltZScsCisgICAgICAndHlwZSc6ICdleGVjdXRhYmxlJywKKyAgICAgICdpbmNsdWRlX2RpcnMnOiBbCisgICAgICAgICcuLicsCisgICAgICBdLAorICAgICAgJ2RlcGVuZGVuY2llcycgOiBbCisgICAgICAgICd0ZXN0X3V0aWxpdGllcycKKyAgICAgIF0sCisgICAgICAnc291cmNlcyc6IFsKKyAgICAgICAgJ3Rlc3RfZmZ0X3RpbWUuYycsCisgICAgICBdLAorICAgICAgJ2NvbmRpdGlvbnMnOiBbCisgICAgICAgIFsnYmlnX2Zsb2F0X2ZmdCA9PSAxJywgeworICAgICAgICAgICdkZWZpbmVzJzogWworICAgICAgICAgICAgJ0JJR19GRlRfVEFCTEUnLAorICAgICAgICAgIF0sCisgICAgICAgIH1dLAorICAgICAgXSwKKyAgICB9LAorICAgIHsKKyAgICAgICMgQnVpbGQgYWxsIHRlc3QgcHJvZ3JhbXMuCisgICAgICAndGFyZ2V0X25hbWUnOiAnQWxsJywKKyAgICAgICd0eXBlJzogJ25vbmUnLAorICAgICAgJ2RlcGVuZGVuY2llcyc6IFsKKyAgICAgICAgJ3Rlc3RfZmZ0MzInLAorICAgICAgICAndGVzdF9mbG9hdF9mZnQnLAorICAgICAgICAndGVzdF9mbG9hdF9yZmZ0JywKKyAgICAgICAgJ3Rlc3RfcmZmdDE2JywKKyAgICAgICAgJ3Rlc3RfcmZmdDMyJywKKyAgICAgICAgJ3Rlc3RfZmZ0X3RpbWUnLAorICAgICAgXSwKKyAgICB9LAorICBdLAorfQpkaWZmIC0tZ2l0IGEvZGwvdGVzdC90ZXN0X2ZmdDMyLmMgYi9kbC90ZXN0L3Rlc3RfZmZ0MzIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOTYzZGViCi0tLSAvZGV2L251bGwKKysrIGIvZGwvdGVzdC90ZXN0X2ZmdDMyLmMKQEAgLTAsMCArMSwyNjYgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDx0aW1lLmg+CisjaW5jbHVkZSA8bWF0aC5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCisjaW5jbHVkZSAiYWxpZ25lZF9wdHIuaCIKKyNpbmNsdWRlICJhcm1TUC5oIgorI2luY2x1ZGUgImNvbXBhcmUuaCIKKyNpbmNsdWRlICJnZW5zaWcuaCIKKyNpbmNsdWRlICJvbXhTUC5oIgorI2luY2x1ZGUgInRlc3RfdXRpbC5oIgorCisjZGVmaW5lIE1BWF9GRlRfT1JERVIgICAxMgorCitpbnQgdmVyYm9zZTsKK2ludCBzaWduYWxfdmFsdWU7CisKK3ZvaWQgVGVzdEZGVChpbnQgZmZ0X2xvZ19zaXplLCBpbnQgc2lndHlwZSwgaW50IHNjYWxlX2ZhY3Rvcik7CisKK3ZvaWQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKSB7CisgIHN0cnVjdCBPcHRpb25zIG9wdGlvbnM7CisKKyAgU2V0RGVmYXVsdE9wdGlvbnMoJm9wdGlvbnMsIDAsIE1BWF9GRlRfT1JERVIpOworCisgIFByb2Nlc3NDb21tYW5kTGluZSgmb3B0aW9ucywgYXJnYywgYXJndiwKKyAgICAgICAgICAgICAgICAgICAgICJUZXN0IGZvcndhcmQgYW5kIGludmVyc2UgMzItYml0IGZpeGVkLXBvaW50IEZGVFxuIik7CisKKyAgdmVyYm9zZSA9IG9wdGlvbnMudmVyYm9zZV87CisgIHNpZ25hbF92YWx1ZSA9IG9wdGlvbnMuc2lnbmFsX3ZhbHVlXzsKKworICBpZiAodmVyYm9zZSA+IDI1NSkKKyAgICBEdW1wT3B0aW9ucyhzdGRlcnIsICZvcHRpb25zKTsKKworICBpZiAob3B0aW9ucy50ZXN0X21vZGVfKSB7CisgICAgc3RydWN0IFRlc3RJbmZvIGluZm87CisKKyAgICBpbmZvLnJlYWxfb25seV8gPSBvcHRpb25zLnJlYWxfb25seV87CisgICAgaW5mby5tYXhfZmZ0X29yZGVyXyA9IG9wdGlvbnMubWF4X2ZmdF9vcmRlcl87CisgICAgaW5mby5taW5fZmZ0X29yZGVyXyA9IG9wdGlvbnMubWluX2ZmdF9vcmRlcl87CisgICAgaW5mby5kb19mb3J3YXJkX3Rlc3RzXyA9IG9wdGlvbnMuZG9fZm9yd2FyZF90ZXN0c187CisgICAgaW5mby5kb19pbnZlcnNlX3Rlc3RzXyA9IG9wdGlvbnMuZG9faW52ZXJzZV90ZXN0c187CisgICAgaW5mby5rbm93bl9mYWlsdXJlc18gPSAwOworICAgIC8qCisgICAgICogVGhlc2UgdGhyZXNob2xkIHZhbHVlcyBhc3N1bWUgdGhhdCB3ZSdyZSB1c2luZyB0aGUgZGVmYXVsdAorICAgICAqIHNpZ25hbF92YWx1ZSBzZXQgYmVsb3cuCisgICAgICovCisgICAgaW5mby5mb3J3YXJkX3RocmVzaG9sZF8gPSAxMDcuMzM7CisgICAgaW5mby5pbnZlcnNlX3RocmVzaG9sZF8gPSA3OS4wMjsKKworICAgIGlmICghb3B0aW9ucy5zaWduYWxfdmFsdWVfZ2l2ZW5fKSB7CisgICAgICBzaWduYWxfdmFsdWUgPSAyNjIxNDQ7ICAgICAgICAgLyogMTggYml0cyAqLworICAgIH0KKyAgICBSdW5BbGxUZXN0cygmaW5mbyk7CisgIH0gZWxzZSB7CisgICAgVGVzdEZGVChvcHRpb25zLmZmdF9sb2dfc2l6ZV8sCisgICAgICAgICAgICBvcHRpb25zLnNpZ25hbF90eXBlXywKKyAgICAgICAgICAgIG9wdGlvbnMuc2NhbGVfZmFjdG9yXyk7CisgIH0KK30KKwordm9pZCBHZW5lcmF0ZVNpZ25hbChPTVhfU0MzMiogeCwgT01YX1NDMzIqIGZmdCwgaW50IHNpemUsIGludCBzaWduYWxfdHlwZSkgeworICBpbnQgazsKKyAgc3RydWN0IENvbXBsZXhGbG9hdCAqdGVzdF9zaWduYWw7CisgIHN0cnVjdCBDb21wbGV4RmxvYXQgKnRydWVfZmZ0OworCisgIHRlc3Rfc2lnbmFsID0gKHN0cnVjdCBDb21wbGV4RmxvYXQqKSBtYWxsb2Moc2l6ZW9mKCp0ZXN0X3NpZ25hbCkgKiBzaXplKTsKKyAgdHJ1ZV9mZnQgPSAoc3RydWN0IENvbXBsZXhGbG9hdCopIG1hbGxvYyhzaXplb2YoKnRydWVfZmZ0KSAqIHNpemUpOworICBHZW5lcmF0ZVRlc3RTaWduYWxBbmRGRlQodGVzdF9zaWduYWwsIHRydWVfZmZ0LCBzaXplLCBzaWduYWxfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hbF92YWx1ZSwgMCk7CisKKyAgLyoKKyAgICogQ29udmVydCB0aGUgY29tcGxleCBmbG9hdCByZXN1bHQgdG8gU0MzMiBmb3JtYXQuICBKdXN0IHJvdW5kLgorICAgKiBObyBlcnJvci1jaGVja2luZyBoZXJlIQorICAgKi8KKworICBmb3IgKGsgPSAwOyBrIDwgc2l6ZTsgKytrKSB7CisgICAgeFtrXS5SZSA9IDAuNSArIHRlc3Rfc2lnbmFsW2tdLlJlOworICAgIHhba10uSW0gPSAwLjUgKyB0ZXN0X3NpZ25hbFtrXS5JbTsKKyAgICBmZnRba10uUmUgPSAwLjUgKyB0cnVlX2ZmdFtrXS5SZTsKKyAgICBmZnRba10uSW0gPSAwLjUgKyB0cnVlX2ZmdFtrXS5JbTsKKyAgfQorCisgIGZyZWUodGVzdF9zaWduYWwpOworICBmcmVlKHRydWVfZmZ0KTsKK30KKwordm9pZCBEdW1wRkZUU3BlYyhPTVhGRlRTcGVjX0NfU0MzMiogcFNwZWMpIHsKKyAgQVJNc0ZGVFNwZWNfU0MzMiogcCA9IChBUk1zRkZUU3BlY19TQzMyKikgcFNwZWM7CisgIHByaW50ZigiIE4gPSAlZFxuIiwgcC0+Tik7CisgIHByaW50ZigiIHBCaXRSZXYgID0gJXBcbiIsIHAtPnBCaXRSZXYpOworICBwcmludGYoIiBwVHdpZGRsZSA9ICVwXG4iLCBwLT5wVHdpZGRsZSk7CisgIHByaW50ZigiIHBCdWYgICAgID0gJXBcbiIsIHAtPnBCdWYpOworfQorCisvKgorICogQ29tcHV0ZSBmb3J3YXJkIGFuZCBpbnZlcnNlIEZGVCBmb3Igb25lIHRlc3QgY2FzZSBhbmQgY29tcGFyZSB0aGUKKyAqIHJlc3VsdCB3aXRoIHRoZSBleHBlY3RlZCByZXN1bHQuCisgKi8KK3ZvaWQgVGVzdEZGVChpbnQgZmZ0X2xvZ19zaXplLCBpbnQgc2lnbmFsX3R5cGUsIGludCBzY2FsZV9mYWN0b3IpIHsKKyAgc3RydWN0IFNuclJlc3VsdCBzbnI7CisKKyAgUnVuT25lRm9yd2FyZFRlc3QoZmZ0X2xvZ19zaXplLCBzaWduYWxfdHlwZSwgc2lnbmFsX3ZhbHVlLCAmc25yKTsKKyAgcHJpbnRmKCJGb3J3YXJkIGZsb2F0IEZGVFxuIik7CisgIHByaW50ZigiU05SOiAgcmVhbCBwYXJ0ICAgICVmIGRCXG4iLCBzbnIucmVhbF9zbnJfKTsKKyAgcHJpbnRmKCIgICAgICBpbWFnIHBhcnQgICAgJWYgZEJcbiIsIHNuci5pbWFnX3Nucl8pOworICBwcmludGYoIiAgICAgIGNvbXBsZXggcGFydCAlZiBkQlxuIiwgc25yLmNvbXBsZXhfc25yXyk7CisKKyAgUnVuT25lSW52ZXJzZVRlc3QoZmZ0X2xvZ19zaXplLCBzaWduYWxfdHlwZSwgc2lnbmFsX3ZhbHVlLCAmc25yKTsKKyAgcHJpbnRmKCJJbnZlcnNlIGZsb2F0IEZGVFxuIik7CisgIHByaW50ZigiU05SOiAgcmVhbCBwYXJ0ICAgICVmIGRCXG4iLCBzbnIucmVhbF9zbnJfKTsKKyAgcHJpbnRmKCIgICAgICBpbWFnIHBhcnQgICAgJWYgZEJcbiIsIHNuci5pbWFnX3Nucl8pOworICBwcmludGYoIiAgICAgIGNvbXBsZXggcGFydCAlZiBkQlxuIiwgc25yLmNvbXBsZXhfc25yXyk7Cit9CisKKy8qCisgKiBMaWtlIFRlc3RGRlQsIGJ1dCBkbyBqdXN0IHRoZSBmb3J3YXJkIEZGVC4KKyAqLworZmxvYXQgUnVuT25lRm9yd2FyZFRlc3QoaW50IGZmdF9sb2dfc2l6ZSwgaW50IHNpZ25hbF90eXBlLCBmbG9hdCBzaWduYWxfdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgU25yUmVzdWx0KiBzbnIpIHsKKyAgT01YX1NDMzIqIHg7CisgIE9NWF9TQzMyKiB5OworCisgIHN0cnVjdCBBbGlnbmVkUHRyKiB4X2FsaWduZWQ7CisgIHN0cnVjdCBBbGlnbmVkUHRyKiB5X2FsaWduZWQ7CisKKyAgT01YX1NDMzIqIHlfdHJ1ZTsKKworICBPTVhfSU5UIG4sIGZmdF9zcGVjX2J1ZmZlcl9zaXplOworICBPTVhSZXN1bHQgc3RhdHVzOworICBPTVhGRlRTcGVjX0NfU0MzMiAqIGZmdF9md2Rfc3BlYyA9IE5VTEw7CisgIGludCBmZnRfc2l6ZTsKKworICBmZnRfc2l6ZSA9IDEgPDwgZmZ0X2xvZ19zaXplOworCisgIHN0YXR1cyA9IG9teFNQX0ZGVEdldEJ1ZlNpemVfQ19TQzMyKGZmdF9sb2dfc2l6ZSwgJmZmdF9zcGVjX2J1ZmZlcl9zaXplKTsKKyAgaWYgKHZlcmJvc2UgPiA2MykgeworICAgIHByaW50ZigiZmZ0X3NwZWNfYnVmZmVyX3NpemUgPSAlZFxuIiwgZmZ0X3NwZWNfYnVmZmVyX3NpemUpOworICB9CisKKyAgZmZ0X2Z3ZF9zcGVjID0gKE9NWEZGVFNwZWNfQ19TQzMyKikgbWFsbG9jKGZmdF9zcGVjX2J1ZmZlcl9zaXplKTsKKyAgc3RhdHVzID0gb214U1BfRkZUSW5pdF9DX1NDMzIoZmZ0X2Z3ZF9zcGVjLCBmZnRfbG9nX3NpemUpOworICBpZiAoc3RhdHVzKSB7CisgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gaW5pdCBmb3J3YXJkIEZGVDogIHN0YXR1cyA9ICVkXG4iLCBzdGF0dXMpOworICAgIGV4aXQoMSk7CisgIH0KKworICB4X2FsaWduZWQgPSBBbGxvY0FsaWduZWRQb2ludGVyKDMyLCBzaXplb2YoKngpICogZmZ0X3NpemUpOworICB5X2FsaWduZWQgPSBBbGxvY0FsaWduZWRQb2ludGVyKDMyLCBzaXplb2YoKnkpICogKGZmdF9zaXplICsgMikpOworICB5X3RydWUgPSAoT01YX1NDMzIqKSBtYWxsb2Moc2l6ZW9mKCp5X3RydWUpICogZmZ0X3NpemUpOworCisgIHggPSB4X2FsaWduZWQtPmFsaWduZWRfcG9pbnRlcl87CisgIHkgPSB5X2FsaWduZWQtPmFsaWduZWRfcG9pbnRlcl87CisKKyAgR2VuZXJhdGVTaWduYWwoeCwgeV90cnVlLCBmZnRfc2l6ZSwgc2lnbmFsX3R5cGUpOworCisgIGlmICh2ZXJib3NlID4gNjMpIHsKKyAgICBwcmludGYoIlNpZ25hbFxuIik7CisgICAgRHVtcEFycmF5Q29tcGxleDMyKCJ4IiwgZmZ0X3NpemUsIHgpOworCisgICAgcHJpbnRmKCJFeHBlY3RlZCBGRlQgb3V0cHV0XG4iKTsKKyAgICBEdW1wQXJyYXlDb21wbGV4MzIoInkiLCBmZnRfc2l6ZSwgeV90cnVlKTsKKyAgfQorCisgIHN0YXR1cyA9IG9teFNQX0ZGVEZ3ZF9DVG9DX1NDMzJfU2ZzKHgsIHksIGZmdF9md2Rfc3BlYywgMCk7CisgIGlmIChzdGF0dXMpIHsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIkZvcndhcmQgRkZUIGZhaWxlZDogc3RhdHVzID0gJWRcbiIsIHN0YXR1cyk7CisgICAgZXhpdCgxKTsKKyAgfQorCisgIGlmICh2ZXJib3NlID4gNjMpIHsKKyAgICBwcmludGYoIkZGVCBPdXRwdXRcbiIpOworICAgIER1bXBBcnJheUNvbXBsZXgzMigieSIsIGZmdF9zaXplLCB5KTsKKyAgfQorCisgIENvbXBhcmVDb21wbGV4MzIoc25yLCB5LCB5X3RydWUsIGZmdF9zaXplKTsKKworICBGcmVlQWxpZ25lZFBvaW50ZXIoeF9hbGlnbmVkKTsKKyAgRnJlZUFsaWduZWRQb2ludGVyKHlfYWxpZ25lZCk7CisgIGZyZWUoZmZ0X2Z3ZF9zcGVjKTsKKworICByZXR1cm4gc25yLT5jb21wbGV4X3Nucl87Cit9CisKKy8qCisgKiBMaWtlIFRlc3RGRlQsIGJ1dCBkbyBqdXN0IHRoZSBpbnZlcnNlIEZGVAorICovCitmbG9hdCBSdW5PbmVJbnZlcnNlVGVzdChpbnQgZmZ0X2xvZ19zaXplLCBpbnQgc2lnbmFsX3R5cGUsIGZsb2F0IHNpZ25hbF92YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBTbnJSZXN1bHQqIHNucikgeworICBPTVhfU0MzMiogeDsKKyAgT01YX1NDMzIqIHk7CisgIE9NWF9TQzMyKiB6OworCisgIHN0cnVjdCBBbGlnbmVkUHRyKiB4X2FsaWduZWQ7CisgIHN0cnVjdCBBbGlnbmVkUHRyKiB5X2FsaWduZWQ7CisgIHN0cnVjdCBBbGlnbmVkUHRyKiB6X2FsaWduZWQ7CisKKyAgT01YX0lOVCBuLCBmZnRfc3BlY19idWZmZXJfc2l6ZTsKKyAgT01YUmVzdWx0IHN0YXR1czsKKyAgT01YRkZUU3BlY19DX1NDMzIgKiBmZnRfZndkX3NwZWMgPSBOVUxMOworICBPTVhGRlRTcGVjX0NfU0MzMiAqIGZmdF9pbnZfc3BlYyA9IE5VTEw7CisgIGludCBmZnRfc2l6ZTsKKworICBmZnRfc2l6ZSA9IDEgPDwgZmZ0X2xvZ19zaXplOworCisgIHN0YXR1cyA9IG9teFNQX0ZGVEdldEJ1ZlNpemVfQ19TQzMyKGZmdF9sb2dfc2l6ZSwgJmZmdF9zcGVjX2J1ZmZlcl9zaXplKTsKKyAgaWYgKHZlcmJvc2UgPiAzKSB7CisgICAgcHJpbnRmKCJmZnRfc3BlY19idWZmZXJfc2l6ZSA9ICVkXG4iLCBmZnRfc3BlY19idWZmZXJfc2l6ZSk7CisgIH0KKworICBmZnRfaW52X3NwZWMgPSAoT01YRkZUU3BlY19DX1NDMzIqKW1hbGxvYyhmZnRfc3BlY19idWZmZXJfc2l6ZSk7CisgIHN0YXR1cyA9IG9teFNQX0ZGVEluaXRfQ19TQzMyKGZmdF9pbnZfc3BlYywgZmZ0X2xvZ19zaXplKTsKKyAgaWYgKHN0YXR1cykgeworICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIGluaXQgYmFja3dhcmQgRkZUOiAgc3RhdHVzID0gJWRcbiIsIHN0YXR1cyk7CisgICAgZXhpdCgxKTsKKyAgfQorCisgIHhfYWxpZ25lZCA9IEFsbG9jQWxpZ25lZFBvaW50ZXIoMzIsIHNpemVvZigqeCkgKiBmZnRfc2l6ZSk7CisgIHlfYWxpZ25lZCA9IEFsbG9jQWxpZ25lZFBvaW50ZXIoMzIsIHNpemVvZigqeSkgKiAoZmZ0X3NpemUgKyAyKSk7CisgIHpfYWxpZ25lZCA9IEFsbG9jQWxpZ25lZFBvaW50ZXIoMzIsIHNpemVvZigqeikgKiBmZnRfc2l6ZSk7CisKKyAgeCA9IHhfYWxpZ25lZC0+YWxpZ25lZF9wb2ludGVyXzsKKyAgeSA9IHlfYWxpZ25lZC0+YWxpZ25lZF9wb2ludGVyXzsKKyAgeiA9IHpfYWxpZ25lZC0+YWxpZ25lZF9wb2ludGVyXzsKKworICBHZW5lcmF0ZVNpZ25hbCh4LCB5LCBmZnRfc2l6ZSwgc2lnbmFsX3R5cGUpOworCisgIGlmICh2ZXJib3NlID4gNjMpIHsKKyAgICBwcmludGYoIkludmVyc2UgRkZUIElucHV0IFNpZ25hbFxuIik7CisgICAgcHJpbnRmKCJuXHR4W25dXG4iKTsKKyAgICBEdW1wQXJyYXlDb21wbGV4MzIoIngiLCBmZnRfc2l6ZSwgeSk7CisKKyAgICBwcmludGYoIkV4cGVjdGVkIEludmVyc2UgRkZUIG91dHB1dFxuIik7CisgICAgRHVtcEFycmF5Q29tcGxleDMyKCJ5IiwgZmZ0X3NpemUsIHgpOworICB9CisKKyAgc3RhdHVzID0gb214U1BfRkZUSW52X0NUb0NfU0MzMl9TZnMoeSwgeiwgZmZ0X2ludl9zcGVjLCAwKTsKKyAgaWYgKHN0YXR1cykgeworICAgIGZwcmludGYoc3RkZXJyLCAiSW52ZXJzZSBGRlQgZmFpbGVkOiBzdGF0dXMgPSAlZFxuIiwgc3RhdHVzKTsKKyAgICBleGl0KDEpOworICB9CisKKyAgaWYgKHZlcmJvc2UgPiA2MykgeworICAgIHByaW50ZigiQWN0dWFsIEludmVyc2UgRkZUIE91dHB1dFxuIik7CisgICAgRHVtcEFycmF5Q29tcGxleDMyKCJ5IiwgZmZ0X3NpemUsIHopOworICB9CisKKyAgQ29tcGFyZUNvbXBsZXgzMihzbnIsIHosIHgsIGZmdF9zaXplKTsKKworICBGcmVlQWxpZ25lZFBvaW50ZXIoeF9hbGlnbmVkKTsKKyAgRnJlZUFsaWduZWRQb2ludGVyKHlfYWxpZ25lZCk7CisgIEZyZWVBbGlnbmVkUG9pbnRlcih6X2FsaWduZWQpOworICBmcmVlKGZmdF9pbnZfc3BlYyk7CisKKyAgcmV0dXJuIHNuci0+Y29tcGxleF9zbnJfOworfQpkaWZmIC0tZ2l0IGEvZGwvdGVzdC90ZXN0X2ZmdF90aW1lLmMgYi9kbC90ZXN0L3Rlc3RfZmZ0X3RpbWUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zM2VkZTJhCi0tLSAvZGV2L251bGwKKysrIGIvZGwvdGVzdC90ZXN0X2ZmdF90aW1lLmMKQEAgLTAsMCArMSwxMDc2IEBACisvKgorICogIENvcHlyaWdodCAoYykgMjAxMyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKworI2luY2x1ZGUgPG1hdGguaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN5cy9yZXNvdXJjZS5oPgorI2luY2x1ZGUgPHN5cy90aW1lLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKyNpbmNsdWRlICJhbGlnbmVkX3B0ci5oIgorI2luY2x1ZGUgImFybUNPTU0uaCIKKyNpbmNsdWRlICJhcm1TUC5oIgorI2luY2x1ZGUgImdlbnNpZy5oIgorI2luY2x1ZGUgIm9teFNQLmgiCisKKyNkZWZpbmUgTUFYX0ZGVF9PUkRFUiAgIFRXSURETEVfVEFCTEVfT1JERVIKKyNkZWZpbmUgTUFYX0ZGVF9PUkRFUl9GSVhFRF9QT0lOVCAxMgorCit2b2lkIFRpbWVPbmVGbG9hdEZGVChpbnQgY291bnQsIGludCBmZnRfbG9nX3NpemUsIGZsb2F0IHNpZ25hbF92YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgIGludCBzaWduYWxfdHlwZSk7Cit2b2lkIFRpbWVGbG9hdEZGVChpbnQgY291bnQsIGZsb2F0IHNpZ25hbF92YWx1ZSwgaW50IHNpZ25hbF90eXBlKTsKK3ZvaWQgVGltZU9uZUZsb2F0UkZGVChpbnQgY291bnQsIGludCBmZnRfbG9nX3NpemUsIGZsb2F0IHNpZ25hbF92YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICBpbnQgc2lnbmFsX3R5cGUpOwordm9pZCBUaW1lRmxvYXRSRkZUKGludCBjb3VudCwgZmxvYXQgc2lnbmFsX3ZhbHVlLCBpbnQgc2lnbmFsX3R5cGUpOwordm9pZCBUaW1lT25lU0MzMkZGVChpbnQgY291bnQsIGludCBmZnRfbG9nX3NpemUsIGZsb2F0IHNpZ25hbF92YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgaW50IHNpZ25hbF90eXBlKTsKK3ZvaWQgVGltZVNDMzJGRlQoaW50IGNvdW50LCBmbG9hdCBzaWduYWxfdmFsdWUsIGludCBzaWduYWxfdHlwZSk7Cit2b2lkIFRpbWVPbmVSRkZUMTYoaW50IGNvdW50LCBpbnQgZmZ0X2xvZ19zaXplLCBmbG9hdCBzaWduYWxfdmFsdWUsCisgICAgICAgICAgICAgICAgICAgaW50IHNpZ25hbF90eXBlKTsKK3ZvaWQgVGltZVJGRlQxNihpbnQgY291bnQsIGZsb2F0IHNpZ25hbF92YWx1ZSwgaW50IHNpZ25hbF90eXBlKTsKK3ZvaWQgVGltZU9uZVJGRlQzMihpbnQgY291bnQsIGludCBmZnRfbG9nX3NpemUsIGZsb2F0IHNpZ25hbF92YWx1ZSwKKyAgICAgICAgICAgICAgICAgICBpbnQgc2lnbmFsX3R5cGUpOwordm9pZCBUaW1lUkZGVDMyKGludCBjb3VudCwgZmxvYXQgc2lnbmFsX3ZhbHVlLCBpbnQgc2lnbmFsX3R5cGUpOworCitzdGF0aWMgaW50IHZlcmJvc2UgPSAxOworc3RhdGljIGludCBpbmNsdWRlX2NvbnZlcnNpb24gPSAwOworc3RhdGljIGludCBhZGFwdF9jb3VudCA9IDE7CitzdGF0aWMgaW50IGRvX2ZvcndhcmRfdGVzdCA9IDE7CitzdGF0aWMgaW50IGRvX2ludmVyc2VfdGVzdCA9IDE7CitzdGF0aWMgaW50IG1pbl9mZnRfb3JkZXIgPSAyOworc3RhdGljIGludCBtYXhfZmZ0X29yZGVyID0gTUFYX0ZGVF9PUkRFUjsKKwordm9pZCBUaW1lRkZUVXNhZ2UoY29uc3QgY2hhciogcHJvZykgeworICBmcHJpbnRmKHN0ZGVyciwgCisJICAiJXM6IFstaFRGSUNBXSBbLWYgZmZ0XSBbLWMgY291bnRdIFstbiBsb2dzaXplXSBbLXMgc2NhbGVdXG4iCisJICAiICAgIFstZyBzaWduYWwtdHlwZV0gWy1TIHNpZ25hbCB2YWx1ZV1cbiIKKwkgICIgICAgWy1tIG1pbkZGVHNpemVdIFstTSBtYXhGRlRzaXplXVxuIiwKKyAgICAgICAgICBQcm9ncmFtTmFtZShwcm9nKSk7CisgIGZwcmludGYoc3RkZXJyLCAKKwkgICJTaW1wbGUgRkZUIHRpbWluZyB0ZXN0c1xuIgorCSAgIiAgLWggICAgICAgICAgVGhpcyBoZWxwXG4iCisJICAiICAtdiBsZXZlbCAgICBWZXJib3NlIG91dHB1dCBsZXZlbCAoZGVmYXVsdCA9IDEpXG4iCisJICAiICAtRiAgICAgICAgICBTa2lwIGZvcndhcmQgRkZUIHRlc3RzXG4iCisJICAiICAtSSAgICAgICAgICBTa2lwIGludmVyc2UgRkZUIHRlc3RzXG4iCisJICAiICAtQyAgICAgICAgICBJbmNsdWRlIGZsb2F0LXRvLWZpeGVkIGFuZCBmaXhlZC10by1mbG9hdCBjb3N0IGZvciIKKwkgICIgcmVhbFxuIgorCSAgIiAgICAgICAgICAgICAgICAxNi1iaXQgRkZUIChmb3J3YXJkIGFuZCBpbnZlcnNlKVxuIgorCSAgIiAgLWMgY291bnQgICAgTnVtYmVyIG9mIEZGVHMgdG8gY29tcHV0ZSBmb3IgdGltaW5nLiAgVGhpcyBpcyBhIgorCSAgIiBsb3dlclxuIgorCSAgIiAgICAgICAgICAgICAgICBsb3dlciBsaW1pdDsgc2hvcnRlciBGRlRzIHdpbGwgZG8gbW9yZSBGRlRzIHN1Y2giCisJICAiIHRoYXQgdGhlXG4iCisJICAiICAgICAgICAgICAgICAgIGVsYXBzZWQgdGltZSBpcyB2ZXJ5IHJvdWdobHkgY29uc3RhbnQsIGlmIC1BIGlzIgorCSAgIiBub3QgZ2l2ZW4uXG4iCisJICAiICAtQSAgICAgICAgICBEb24ndCBhZGFwdCB0aGUgY291bnQgZ2l2ZW4gYnkgLWM7IHVzZSBzcGVjaWZpZWQiCisJICAiIHZhbHVlXG4iCisJICAiICAtbSBtaW4gICAgICBNaW5pbnVtIEZGVCBvcmRlciB0byB0ZXN0XG4iCisJICAiICAtTSBtYXggICAgICBNYXhpbXVtIEZGVCBvcmRlciB0byB0ZXN0XG4iCisJICAiICAtVCAgICAgICAgICBSdW4ganVzdCBvbmUgRkZUIHRpbWluZyB0ZXN0XG4iCisJICAiICAtZiAgICAgICAgICBGRlQgdHlwZTpcbiIKKwkgICIJICAgICAgICAgMCAtIENvbXBsZXggRmxvYXRcbiIKKwkgICIJICAgICAgICAgMSAtIFJlYWwgRmxvYXRcbiIKKwkgICIJICAgICAgICAgMiAtIENvbXBsZXggMzItYml0XG4iCisJICAiCSAgICAgICAgIDMgLSBSZWFsIDE2LWJpdFxuIgorCSAgIgkgICAgICAgICA0IC0gUmVhbCAzMi1iaXRcbiIKKwkgICIgIC1uIGxvZ3NpemUgIExvZzIgb2YgRkZUIHNpemVcbiIKKwkgICIgIC1zIHNjYWxlICAgIFNjYWxlIGZhY3RvciBmb3IgZm9yd2FyZCBGRlQgKGRlZmF1bHQgPSAwKVxuIgorCSAgIiAgLVMgc2lnbmFsICAgQmFzZSB2YWx1ZSBmb3IgdGhlIHRlc3Qgc2lnbmFsIChkZWZhdWx0ID0gMTAyNClcbiIKKwkgICIgIC1nIHR5cGUgICAgIElucHV0IHNpZ25hbCB0eXBlOlxuIgorCSAgIgkgICAgICAgICAwIC0gQ29uc3RhbnQgc2lnbmFsIFMgKyBpKlMuIChEZWZhdWx0IHZhbHVlLilcbiIKKwkgICIJICAgICAgICAgMSAtIFJlYWwgcmFtcCBzdGFydGluZyBhdCBTL04sIE4gPSBGRlQgc2l6ZVxuIgorCSAgIgkgICAgICAgICAyIC0gU2luZSB3YXZlIG9mIGFtcGxpdHVkZSBTXG4iCisJICAiCSAgICAgICAgIDMgLSBDb21wbGV4IHNpZ25hbCB3aG9zZSB0cmFuc2Zvcm0gaXMgYSBzaW5lIHdhdmUuXG4iCisJICAiXG4iCisJICAiVXNlIC12IDAgaW4gY29tYmluYXRpb24gd2l0aCAtRiBvciAtSSB0byBnZXQgb3V0cHV0IHRoYXQgY2FuXG4iCisJICAiYmUgcGFzdGVkIGludG8gYSBzcHJlYWRzaGVldC5cbiIKKwkgICJcbiIKKwkgICJNb3N0IG9mIHRoZSBvcHRpb25zIGxpc3RlZCBhZnRlciAtVCBhYm92ZSBhcmUgb25seSBhcHBsaWNhYmxlXG4iCisJICAid2hlbiAtVCBpcyBnaXZlbiB0byB0ZXN0IGp1c3Qgb25lIEZGVCBzaXplIGFuZCBGRlQgdHlwZS5cbiIKKwkgICJcbiIpOworICBleGl0KDApOworfQorCit2b2lkIG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkgeworICBpbnQgZmZ0X2xvZ19zaXplID0gNDsKKyAgZmxvYXQgc2lnbmFsX3ZhbHVlID0gMTAyNDsKKyAgaW50IHNpZ25hbF90eXBlID0gMDsKKyAgaW50IHRlc3RfbW9kZSA9IDE7CisgIGludCBjb3VudCA9IDEwMDsKKyAgaW50IGZmdF90eXBlID0gMDsKKyAgaW50IGZmdF90eXBlX2dpdmVuID0gMDsKKworICBpbnQgb3B0OworCisgIHdoaWxlICgob3B0ID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJoVEZJQ0FjOm46czpTOmc6djpmOm06TToiKSkgIT0gLTEpIHsKKyAgICBzd2l0Y2ggKG9wdCkgeworICAgICAgY2FzZSAnaCc6CisgICAgICAgIFRpbWVGRlRVc2FnZShhcmd2WzBdKTsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdUJzoKKyAgICAgICAgdGVzdF9tb2RlID0gMDsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdDJzoKKyAgICAgICAgaW5jbHVkZV9jb252ZXJzaW9uID0gMTsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdGJzoKKyAgICAgICAgZG9fZm9yd2FyZF90ZXN0ID0gMDsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdJJzoKKyAgICAgICAgZG9faW52ZXJzZV90ZXN0ID0gMDsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdBJzoKKyAgICAgICAgYWRhcHRfY291bnQgPSAwOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ2MnOgorICAgICAgICBjb3VudCA9IGF0b2kob3B0YXJnKTsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICduJzoKKyAgICAgICAgZmZ0X2xvZ19zaXplID0gYXRvaShvcHRhcmcpOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ1MnOgorICAgICAgICBzaWduYWxfdmFsdWUgPSBhdG9mKG9wdGFyZyk7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAnZyc6CisgICAgICAgIHNpZ25hbF90eXBlID0gYXRvaShvcHRhcmcpOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ3YnOgorICAgICAgICB2ZXJib3NlID0gYXRvaShvcHRhcmcpOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ2YnOgorICAgICAgICBmZnRfdHlwZSA9IGF0b2kob3B0YXJnKTsKKyAgICAgICAgZmZ0X3R5cGVfZ2l2ZW4gPSAxOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ20nOgorICAgICAgICBtaW5fZmZ0X29yZGVyID0gYXRvaShvcHRhcmcpOworICAgICAgICBpZiAobWluX2ZmdF9vcmRlciA8PSAyKSB7CisgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJTZXR0aW5nIG1pbiBGRlQgb3JkZXIgdG8gMiAoZnJvbSAlZClcbiIsCisgICAgICAgICAgICAgICAgICBtaW5fZmZ0X29yZGVyKTsKKyAgICAgICAgICBtaW5fZmZ0X29yZGVyID0gMjsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ00nOgorICAgICAgICBtYXhfZmZ0X29yZGVyID0gYXRvaShvcHRhcmcpOworICAgICAgICBpZiAobWF4X2ZmdF9vcmRlciA+IE1BWF9GRlRfT1JERVIpIHsKKyAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlNldHRpbmcgbWF4IEZGVCBvcmRlciB0byAlZCAoZnJvbSAlZClcbiIsCisgICAgICAgICAgICAgICAgICBNQVhfRkZUX09SREVSLCBtYXhfZmZ0X29yZGVyKTsKKyAgICAgICAgICBtYXhfZmZ0X29yZGVyID0gTUFYX0ZGVF9PUkRFUjsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICAgIGRlZmF1bHQ6CisgICAgICAgIFRpbWVGRlRVc2FnZShhcmd2WzBdKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICB9CisKKyAgaWYgKHRlc3RfbW9kZSAmJiBmZnRfdHlwZV9naXZlbikKKyAgICBwcmludGYoIldhcm5pbmc6ICAtZiBpZ25vcmVkIHdoZW4gLVQgbm90IHNwZWNpZmllZFxuIik7CisKKyAgaWYgKHRlc3RfbW9kZSkgeworICAgIFRpbWVGbG9hdEZGVChjb3VudCwgc2lnbmFsX3ZhbHVlLCBzaWduYWxfdHlwZSk7CisgICAgVGltZUZsb2F0UkZGVChjb3VudCwgc2lnbmFsX3ZhbHVlLCBzaWduYWxfdHlwZSk7CisgICAgVGltZVNDMzJGRlQoY291bnQsIHNpZ25hbF92YWx1ZSwgc2lnbmFsX3R5cGUpOworICAgIFRpbWVSRkZUMTYoY291bnQsIHNpZ25hbF92YWx1ZSwgc2lnbmFsX3R5cGUpOworICAgIFRpbWVSRkZUMzIoY291bnQsIHNpZ25hbF92YWx1ZSwgc2lnbmFsX3R5cGUpOworICB9IGVsc2UgeworICAgIHN3aXRjaCAoZmZ0X3R5cGUpIHsKKyAgICAgIGNhc2UgMDoKKyAgICAgICAgVGltZU9uZUZsb2F0RkZUKGNvdW50LCBmZnRfbG9nX3NpemUsIHNpZ25hbF92YWx1ZSwgc2lnbmFsX3R5cGUpOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgMToKKyAgICAgICAgVGltZU9uZUZsb2F0UkZGVChjb3VudCwgZmZ0X2xvZ19zaXplLCBzaWduYWxfdmFsdWUsIHNpZ25hbF90eXBlKTsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIDI6CisgICAgICAgIFRpbWVPbmVTQzMyRkZUKGNvdW50LCBmZnRfbG9nX3NpemUsIHNpZ25hbF92YWx1ZSwgc2lnbmFsX3R5cGUpOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgMzoKKyAgICAgICAgVGltZU9uZVJGRlQxNihjb3VudCwgZmZ0X2xvZ19zaXplLCBzaWduYWxfdmFsdWUsIHNpZ25hbF90eXBlKTsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIDQ6CisgICAgICAgIFRpbWVPbmVSRkZUMzIoY291bnQsIGZmdF9sb2dfc2l6ZSwgc2lnbmFsX3ZhbHVlLCBzaWduYWxfdHlwZSk7CisgICAgICAgIGJyZWFrOworICAgICAgZGVmYXVsdDoKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJVbmtub3duIEZGVCB0eXBlOiAlZFxuIiwgZmZ0X3R5cGUpOworICAgICAgICBicmVhazsKKyAgICB9CisgIH0KK30KKwordm9pZCBHZXRVc2VyVGltZShzdHJ1Y3QgdGltZXZhbCogdGltZSkgeworICBzdHJ1Y3QgcnVzYWdlIHVzYWdlOworICBnZXRydXNhZ2UoUlVTQUdFX1NFTEYsICZ1c2FnZSk7CisgIG1lbWNweSh0aW1lLCAmdXNhZ2UucnVfdXRpbWUsIHNpemVvZigqdGltZSkpOworfQorCitkb3VibGUgVGltZURpZmZlcmVuY2UoY29uc3Qgc3RydWN0IHRpbWV2YWwgKiBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdGltZXZhbCAqIGVuZCkgeworICBkb3VibGUgc3RhcnRfdGltZTsKKyAgZG91YmxlIGVuZF90aW1lOworICBzdGFydF90aW1lID0gc3RhcnQtPnR2X3NlYyArIHN0YXJ0LT50dl91c2VjICogMWUtNjsKKyAgZW5kX3RpbWUgPSBlbmQtPnR2X3NlYyArIGVuZC0+dHZfdXNlYyAqIDFlLTY7CisKKyAgcmV0dXJuIGVuZF90aW1lIC0gc3RhcnRfdGltZTsKK30KKwordm9pZCBQcmludFJlc3VsdChjb25zdCBjaGFyKiBwcmVmaXgsIGludCBmZnRfbG9nX3NpemUsIGRvdWJsZSBlbGFwc2VkX3RpbWUsCisgICAgICAgICAgICAgICAgIGludCBjb3VudCkgeworICBpZiAodmVyYm9zZSA9PSAwKSB7CisgICAgcHJpbnRmKCIlMmRcdCU4LjRmXHQlOGRcdCUuNGVcbiIsCisgICAgICAgICAgIGZmdF9sb2dfc2l6ZSwgZWxhcHNlZF90aW1lLCBjb3VudCwgMTAwMCAqIGVsYXBzZWRfdGltZSAvIGNvdW50KTsKKyAgfSBlbHNlIHsKKyAgICBwcmludGYoIiUtMThzOiAgb3JkZXIgJTJkOiAgJTguNGYgc2VjIGZvciAlOGQgRkZUczogICUuNGUgbXNlYy9GRlRcbiIsCisgICAgICAgICAgIHByZWZpeCwgZmZ0X2xvZ19zaXplLCBlbGFwc2VkX3RpbWUsIGNvdW50LAorICAgICAgICAgICAxMDAwICogZWxhcHNlZF90aW1lIC8gY291bnQpOworICB9Cit9CisKK2ludCBDb21wdXRlQ291bnQoaW50IG5vbWluYWxfY291bnQsIGludCBmZnRfbG9nX3NpemUpIHsKKyAgLyoKKyAgICogVHJ5IHRvIGZpZ3VyZSBvdXQgaG93IG1hbnkgcmVwZXRpdGlvbnMgdG8gZG8gZm9yIGEgZ2l2ZW4gRkZUCisgICAqIG9yZGVyIChmZnRfbG9nX3NpemUpIGdpdmVuIHRoYXQgd2Ugd2FudCBhIHJlcGV0aXRpb24gb2YKKyAgICogbm9taW5hbF9jb3VudCBmb3Igb3JkZXIgMTUgRkZUcyB0byBiZSB0aGUgYXBwcm9zaW1hdGUgYW1vdW50IG9mCisgICAqIHRpbWUgd2Ugd2FudCB0byBmb3IgYWxsIHRlc3RzLgorICAgKi8KKworICBpbnQgY291bnQ7CisgIGlmIChhZGFwdF9jb3VudCkgeworICAgIGRvdWJsZSBtYXhUaW1lID0gKChkb3VibGUpIG5vbWluYWxfY291bnQpICogKDEgPDwgTUFYX0ZGVF9PUkRFUikKKyAgICAgICAgKiBNQVhfRkZUX09SREVSOworICAgIGRvdWJsZSBjID0gbWF4VGltZSAvICgoMSA8PCBmZnRfbG9nX3NpemUpICogZmZ0X2xvZ19zaXplKTsKKyAgICBjb25zdCBpbnQgbWF4X2NvdW50ID0gMTAwMDAwMDA7CisKKyAgICBjb3VudCA9IChjID4gbWF4X2NvdW50KSA/IG1heF9jb3VudCA6IGM7CisgIH0gZWxzZSB7CisgICAgY291bnQgPSBub21pbmFsX2NvdW50OworICB9CisKKyAgcmV0dXJuIGNvdW50OworfQorDAordm9pZCBUaW1lT25lRmxvYXRGRlQoaW50IGNvdW50LCBpbnQgZmZ0X2xvZ19zaXplLCBmbG9hdCBzaWduYWxfdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICBpbnQgc2lnbmFsX3R5cGUpIHsKKyAgc3RydWN0IEFsaWduZWRQdHIqIHhfYWxpZ25lZDsKKyAgc3RydWN0IEFsaWduZWRQdHIqIHlfYWxpZ25lZDsKKyAgc3RydWN0IEFsaWduZWRQdHIqIHpfYWxpZ25lZDsKKworICBzdHJ1Y3QgQ29tcGxleEZsb2F0KiB4OworICBzdHJ1Y3QgQ29tcGxleEZsb2F0KiB5OworICBPTVhfRkMzMiogejsKKworICBzdHJ1Y3QgQ29tcGxleEZsb2F0KiB5X3RydWU7CisKKyAgT01YX0lOVCBuLCBmZnRfc3BlY19idWZmZXJfc2l6ZTsKKyAgT01YRkZUU3BlY19DX0ZDMzIgKiBmZnRfZndkX3NwZWMgPSBOVUxMOworICBPTVhGRlRTcGVjX0NfRkMzMiAqIGZmdF9pbnZfc3BlYyA9IE5VTEw7CisgIGludCBmZnRfc2l6ZTsKKyAgc3RydWN0IHRpbWV2YWwgc3RhcnRfdGltZTsKKyAgc3RydWN0IHRpbWV2YWwgZW5kX3RpbWU7CisgIGRvdWJsZSBlbGFwc2VkX3RpbWU7CisKKyAgZmZ0X3NpemUgPSAxIDw8IGZmdF9sb2dfc2l6ZTsKKworICB4X2FsaWduZWQgPSBBbGxvY0FsaWduZWRQb2ludGVyKDMyLCBzaXplb2YoKngpICogZmZ0X3NpemUpOworICB5X2FsaWduZWQgPSBBbGxvY0FsaWduZWRQb2ludGVyKDMyLCBzaXplb2YoKnkpICogKGZmdF9zaXplICsgMikpOworICB6X2FsaWduZWQgPSBBbGxvY0FsaWduZWRQb2ludGVyKDMyLCBzaXplb2YoKnopICogZmZ0X3NpemUpOworCisgIHlfdHJ1ZSA9IChzdHJ1Y3QgQ29tcGxleEZsb2F0KikgbWFsbG9jKHNpemVvZigqeV90cnVlKSAqIGZmdF9zaXplKTsKKworICB4ID0geF9hbGlnbmVkLT5hbGlnbmVkX3BvaW50ZXJfOworICB5ID0geV9hbGlnbmVkLT5hbGlnbmVkX3BvaW50ZXJfOworICB6ID0gel9hbGlnbmVkLT5hbGlnbmVkX3BvaW50ZXJfOworCisgIEdlbmVyYXRlVGVzdFNpZ25hbEFuZEZGVCh4LCB5X3RydWUsIGZmdF9zaXplLCBzaWduYWxfdHlwZSwgc2lnbmFsX3ZhbHVlLCAwKTsKKworICBvbXhTUF9GRlRHZXRCdWZTaXplX0NfRkMzMihmZnRfbG9nX3NpemUsICZmZnRfc3BlY19idWZmZXJfc2l6ZSk7CisKKyAgZmZ0X2Z3ZF9zcGVjID0gKE9NWEZGVFNwZWNfQ19GQzMyKikgbWFsbG9jKGZmdF9zcGVjX2J1ZmZlcl9zaXplKTsKKyAgZmZ0X2ludl9zcGVjID0gKE9NWEZGVFNwZWNfQ19GQzMyKikgbWFsbG9jKGZmdF9zcGVjX2J1ZmZlcl9zaXplKTsKKyAgb214U1BfRkZUSW5pdF9DX0ZDMzIoZmZ0X2Z3ZF9zcGVjLCBmZnRfbG9nX3NpemUpOworICBvbXhTUF9GRlRJbml0X0NfRkMzMihmZnRfaW52X3NwZWMsIGZmdF9sb2dfc2l6ZSk7CisKKyAgaWYgKGRvX2ZvcndhcmRfdGVzdCkgeworICAgIEdldFVzZXJUaW1lKCZzdGFydF90aW1lKTsKKyAgICBmb3IgKG4gPSAwOyBuIDwgY291bnQ7ICsrbikgeworICAgICAgb214U1BfRkZURndkX0NUb0NfRkMzMl9TZnMoeCwgeSwgZmZ0X2Z3ZF9zcGVjKTsKKyAgICB9CisgICAgR2V0VXNlclRpbWUoJmVuZF90aW1lKTsKKworICAgIGVsYXBzZWRfdGltZSA9IFRpbWVEaWZmZXJlbmNlKCZzdGFydF90aW1lLCAmZW5kX3RpbWUpOworCisgICAgUHJpbnRSZXN1bHQoIkZvcndhcmQgRmxvYXQgRkZUIiwgZmZ0X2xvZ19zaXplLCBlbGFwc2VkX3RpbWUsIGNvdW50KTsKKyAgfQorCisgIGlmIChkb19pbnZlcnNlX3Rlc3QpIHsKKyAgICBHZXRVc2VyVGltZSgmc3RhcnRfdGltZSk7CisgICAgZm9yIChuID0gMDsgbiA8IGNvdW50OyArK24pIHsKKyAgICAgIG9teFNQX0ZGVEludl9DVG9DX0ZDMzJfU2ZzKHksIHosIGZmdF9pbnZfc3BlYyk7CisgICAgfQorICAgIEdldFVzZXJUaW1lKCZlbmRfdGltZSk7CisKKyAgICBlbGFwc2VkX3RpbWUgPSBUaW1lRGlmZmVyZW5jZSgmc3RhcnRfdGltZSwgJmVuZF90aW1lKTsKKworICAgIFByaW50UmVzdWx0KCJJbnZlcnNlIEZsb2F0IEZGVCIsIGZmdF9sb2dfc2l6ZSwgZWxhcHNlZF90aW1lLCBjb3VudCk7CisgIH0KKworICBGcmVlQWxpZ25lZFBvaW50ZXIoeF9hbGlnbmVkKTsKKyAgRnJlZUFsaWduZWRQb2ludGVyKHlfYWxpZ25lZCk7CisgIEZyZWVBbGlnbmVkUG9pbnRlcih6X2FsaWduZWQpOworICBmcmVlKHlfdHJ1ZSk7CisgIGZyZWUoZmZ0X2Z3ZF9zcGVjKTsKKyAgZnJlZShmZnRfaW52X3NwZWMpOworfQorCit2b2lkIFRpbWVGbG9hdEZGVChpbnQgY291bnQsIGZsb2F0IHNpZ25hbF92YWx1ZSwgaW50IHNpZ25hbF90eXBlKSB7CisgIGludCBrOworCisgIGlmICh2ZXJib3NlID09IDApCisgICAgcHJpbnRmKCJGbG9hdCBGRlRcbiIpOworCisgIGZvciAoayA9IG1pbl9mZnRfb3JkZXI7IGsgPD0gbWF4X2ZmdF9vcmRlcjsgKytrKSB7CisgICAgaW50IHRlc3RDb3VudCA9IENvbXB1dGVDb3VudChjb3VudCwgayk7CisgICAgVGltZU9uZUZsb2F0RkZUKHRlc3RDb3VudCwgaywgc2lnbmFsX3ZhbHVlLCBzaWduYWxfdHlwZSk7CisgIH0KK30KKwordm9pZCBHZW5lcmF0ZVJlYWxGbG9hdFNpZ25hbChPTVhfRjMyKiB4LCBPTVhfRkMzMiogZmZ0LCBpbnQgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNpZ25hbF90eXBlLCBmbG9hdCBzaWduYWxfdmFsdWUpCit7CisgIGludCBrOworICBzdHJ1Y3QgQ29tcGxleEZsb2F0ICp0ZXN0X3NpZ25hbDsKKyAgc3RydWN0IENvbXBsZXhGbG9hdCAqdHJ1ZV9mZnQ7CisKKyAgdGVzdF9zaWduYWwgPSAoc3RydWN0IENvbXBsZXhGbG9hdCopIG1hbGxvYyhzaXplb2YoKnRlc3Rfc2lnbmFsKSAqIHNpemUpOworICB0cnVlX2ZmdCA9IChzdHJ1Y3QgQ29tcGxleEZsb2F0KikgbWFsbG9jKHNpemVvZigqdHJ1ZV9mZnQpICogc2l6ZSk7CisgIEdlbmVyYXRlVGVzdFNpZ25hbEFuZEZGVCh0ZXN0X3NpZ25hbCwgdHJ1ZV9mZnQsIHNpemUsIHNpZ25hbF90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmFsX3ZhbHVlLCAxKTsKKworICAvKgorICAgKiBDb252ZXJ0IHRoZSBjb21wbGV4IHJlc3VsdCB0byB3aGF0IHdlIHdhbnQKKyAgICovCisKKyAgZm9yIChrID0gMDsgayA8IHNpemU7ICsraykgeworICAgIHhba10gPSB0ZXN0X3NpZ25hbFtrXS5SZTsKKyAgfQorCisgIGZvciAoayA9IDA7IGsgPCBzaXplIC8gMiArIDE7ICsraykgeworICAgIGZmdFtrXS5SZSA9IHRydWVfZmZ0W2tdLlJlOworICAgIGZmdFtrXS5JbSA9IHRydWVfZmZ0W2tdLkltOworICB9CisKKyAgZnJlZSh0ZXN0X3NpZ25hbCk7CisgIGZyZWUodHJ1ZV9mZnQpOworfQorCit2b2lkIFRpbWVPbmVGbG9hdFJGRlQoaW50IGNvdW50LCBpbnQgZmZ0X2xvZ19zaXplLCBmbG9hdCBzaWduYWxfdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgaW50IHNpZ25hbF90eXBlKSB7CisgIE9NWF9GMzIqIHg7ICAgICAgICAgICAgICAgICAgIC8qIFNvdXJjZSAqLworICBPTVhfRjMyKiB5OyAgICAgICAgICAgICAgICAgICAvKiBUcmFuc2Zvcm0gKi8KKyAgT01YX0YzMiogejsgICAgICAgICAgICAgICAgICAgLyogSW52ZXJzZSB0cmFuc2Zvcm0gKi8KKworICBPTVhfRjMyKiB5X3RydWU7ICAgICAgICAgICAgICAvKiBUcnVlIEZGVCAqLworCisgIHN0cnVjdCBBbGlnbmVkUHRyKiB4X2FsaWduZWQ7CisgIHN0cnVjdCBBbGlnbmVkUHRyKiB5X2FsaWduZWQ7CisgIHN0cnVjdCBBbGlnbmVkUHRyKiB6X2FsaWduZWQ7CisKKworICBPTVhfSU5UIG4sIGZmdF9zcGVjX2J1ZmZlcl9zaXplOworICBPTVhSZXN1bHQgc3RhdHVzOworICBPTVhGRlRTcGVjX1JfRjMyICogZmZ0X2Z3ZF9zcGVjID0gTlVMTDsKKyAgT01YRkZUU3BlY19SX0YzMiAqIGZmdF9pbnZfc3BlYyA9IE5VTEw7CisgIGludCBmZnRfc2l6ZTsKKyAgc3RydWN0IHRpbWV2YWwgc3RhcnRfdGltZTsKKyAgc3RydWN0IHRpbWV2YWwgZW5kX3RpbWU7CisgIGRvdWJsZSBlbGFwc2VkX3RpbWU7CisKKyAgZmZ0X3NpemUgPSAxIDw8IGZmdF9sb2dfc2l6ZTsKKworICB4X2FsaWduZWQgPSBBbGxvY0FsaWduZWRQb2ludGVyKDMyLCBzaXplb2YoKngpICogZmZ0X3NpemUpOworICAvKiBUaGUgdHJhbnNmb3JtZWQgdmFsdWUgaXMgaW4gQ0NTIGZvcm1hdCBhbmQgaXMgaGFzIGZmdF9zaXplICsgMiB2YWx1ZXMgKi8KKyAgeV9hbGlnbmVkID0gQWxsb2NBbGlnbmVkUG9pbnRlcigzMiwgc2l6ZW9mKCp5KSAqIChmZnRfc2l6ZSArIDIpKTsKKyAgel9hbGlnbmVkID0gQWxsb2NBbGlnbmVkUG9pbnRlcigzMiwgc2l6ZW9mKCp6KSAqIGZmdF9zaXplKTsKKworICB4ID0geF9hbGlnbmVkLT5hbGlnbmVkX3BvaW50ZXJfOworICB5ID0geV9hbGlnbmVkLT5hbGlnbmVkX3BvaW50ZXJfOworICB6ID0gel9hbGlnbmVkLT5hbGlnbmVkX3BvaW50ZXJfOworCisgIHlfdHJ1ZSA9IChPTVhfRjMyKikgbWFsbG9jKHNpemVvZigqeV90cnVlKSAqIChmZnRfc2l6ZSArIDIpKTsKKworICBHZW5lcmF0ZVJlYWxGbG9hdFNpZ25hbCh4LCAoT01YX0ZDMzIqKSB5X3RydWUsIGZmdF9zaXplLCBzaWduYWxfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmFsX3ZhbHVlKTsKKworICBzdGF0dXMgPSBvbXhTUF9GRlRHZXRCdWZTaXplX1JfRjMyKGZmdF9sb2dfc2l6ZSwgJmZmdF9zcGVjX2J1ZmZlcl9zaXplKTsKKworICBmZnRfZndkX3NwZWMgPSAoT01YRkZUU3BlY19SX0YzMiopIG1hbGxvYyhmZnRfc3BlY19idWZmZXJfc2l6ZSk7CisgIGZmdF9pbnZfc3BlYyA9IChPTVhGRlRTcGVjX1JfRjMyKikgbWFsbG9jKGZmdF9zcGVjX2J1ZmZlcl9zaXplKTsKKyAgc3RhdHVzID0gb214U1BfRkZUSW5pdF9SX0YzMihmZnRfZndkX3NwZWMsIGZmdF9sb2dfc2l6ZSk7CisKKyAgc3RhdHVzID0gb214U1BfRkZUSW5pdF9SX0YzMihmZnRfaW52X3NwZWMsIGZmdF9sb2dfc2l6ZSk7CisKKyAgaWYgKGRvX2ZvcndhcmRfdGVzdCkgeworICAgIEdldFVzZXJUaW1lKCZzdGFydF90aW1lKTsKKyAgICBmb3IgKG4gPSAwOyBuIDwgY291bnQ7ICsrbikgeworICAgICAgb214U1BfRkZURndkX1JUb0NDU19GMzJfU2ZzKHgsIHksIGZmdF9md2Rfc3BlYyk7CisgICAgfQorICAgIEdldFVzZXJUaW1lKCZlbmRfdGltZSk7CisKKyAgICBlbGFwc2VkX3RpbWUgPSBUaW1lRGlmZmVyZW5jZSgmc3RhcnRfdGltZSwgJmVuZF90aW1lKTsKKworICAgIFByaW50UmVzdWx0KCJGb3J3YXJkIEZsb2F0IFJGRlQiLCBmZnRfbG9nX3NpemUsIGVsYXBzZWRfdGltZSwgY291bnQpOworICB9CisKKyAgaWYgKGRvX2ludmVyc2VfdGVzdCkgeworICAgIEdldFVzZXJUaW1lKCZzdGFydF90aW1lKTsKKyAgICBmb3IgKG4gPSAwOyBuIDwgY291bnQ7ICsrbikgeworICAgICAgb214U1BfRkZUSW52X0NDU1RvUl9GMzJfU2ZzKHksIHosIGZmdF9pbnZfc3BlYyk7CisgICAgfQorICAgIEdldFVzZXJUaW1lKCZlbmRfdGltZSk7CisKKyAgICBlbGFwc2VkX3RpbWUgPSBUaW1lRGlmZmVyZW5jZSgmc3RhcnRfdGltZSwgJmVuZF90aW1lKTsKKworICAgIFByaW50UmVzdWx0KCJJbnZlcnNlIEZsb2F0IFJGRlQiLCBmZnRfbG9nX3NpemUsIGVsYXBzZWRfdGltZSwgY291bnQpOworICB9CisKKyAgRnJlZUFsaWduZWRQb2ludGVyKHhfYWxpZ25lZCk7CisgIEZyZWVBbGlnbmVkUG9pbnRlcih5X2FsaWduZWQpOworICBGcmVlQWxpZ25lZFBvaW50ZXIoel9hbGlnbmVkKTsKKyAgZnJlZShmZnRfZndkX3NwZWMpOworICBmcmVlKGZmdF9pbnZfc3BlYyk7Cit9CisKK3ZvaWQgVGltZUZsb2F0UkZGVChpbnQgY291bnQsIGZsb2F0IHNpZ25hbF92YWx1ZSwgaW50IHNpZ25hbF90eXBlKSB7CisgIGludCBrOworCisgIGlmICh2ZXJib3NlID09IDApCisgICAgcHJpbnRmKCJGbG9hdCBSRkZUXG4iKTsKKworICBmb3IgKGsgPSBtaW5fZmZ0X29yZGVyOyBrIDw9IG1heF9mZnRfb3JkZXI7ICsraykgeworICAgIGludCB0ZXN0Q291bnQgPSBDb21wdXRlQ291bnQoY291bnQsIGspOworICAgIFRpbWVPbmVGbG9hdFJGRlQodGVzdENvdW50LCBrLCBzaWduYWxfdmFsdWUsIHNpZ25hbF90eXBlKTsKKyAgfQorfQorCit2b2lkIGdlbmVyYXRlU0MzMlNpZ25hbChPTVhfU0MzMiogeCwgT01YX1NDMzIqIGZmdCwgaW50IHNpemUsIGludCBzaWduYWxfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHNpZ25hbF92YWx1ZSkgeworICBpbnQgazsKKyAgc3RydWN0IENvbXBsZXhGbG9hdCAqdGVzdF9zaWduYWw7CisgIHN0cnVjdCBDb21wbGV4RmxvYXQgKnRydWVfZmZ0OworCisgIHRlc3Rfc2lnbmFsID0gKHN0cnVjdCBDb21wbGV4RmxvYXQqKSBtYWxsb2Moc2l6ZW9mKCp0ZXN0X3NpZ25hbCkgKiBzaXplKTsKKyAgdHJ1ZV9mZnQgPSAoc3RydWN0IENvbXBsZXhGbG9hdCopIG1hbGxvYyhzaXplb2YoKnRydWVfZmZ0KSAqIHNpemUpOworICBHZW5lcmF0ZVRlc3RTaWduYWxBbmRGRlQodGVzdF9zaWduYWwsIHRydWVfZmZ0LCBzaXplLCBzaWduYWxfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hbF92YWx1ZSwgMCk7CisKKyAgLyoKKyAgICogQ29udmVydCB0aGUgY29tcGxleCByZXN1bHQgdG8gd2hhdCB3ZSB3YW50CisgICAqLworCisgIGZvciAoayA9IDA7IGsgPCBzaXplOyArK2spIHsKKyAgICB4W2tdLlJlID0gMC41ICsgdGVzdF9zaWduYWxba10uUmU7CisgICAgeFtrXS5JbSA9IDAuNSArIHRlc3Rfc2lnbmFsW2tdLkltOworICAgIGZmdFtrXS5SZSA9IDAuNSArIHRydWVfZmZ0W2tdLlJlOworICAgIGZmdFtrXS5JbSA9IDAuNSArIHRydWVfZmZ0W2tdLkltOworICB9CisKKyAgZnJlZSh0ZXN0X3NpZ25hbCk7CisgIGZyZWUodHJ1ZV9mZnQpOworfQorCit2b2lkIFRpbWVPbmVTQzMyRkZUKGludCBjb3VudCwgaW50IGZmdF9sb2dfc2l6ZSwgZmxvYXQgc2lnbmFsX3ZhbHVlLAorICAgICAgICAgICAgICAgICAgICBpbnQgc2lnbmFsX3R5cGUpIHsKKyAgT01YX1NDMzIqIHg7CisgIE9NWF9TQzMyKiB5OworICBPTVhfU0MzMiogejsKKworICBzdHJ1Y3QgQWxpZ25lZFB0ciogeF9hbGlnbmVkOworICBzdHJ1Y3QgQWxpZ25lZFB0ciogeV9hbGlnbmVkOworICBzdHJ1Y3QgQWxpZ25lZFB0ciogel9hbGlnbmVkOworCisgIE9NWF9TQzMyKiB5X3RydWU7CisgIE9NWF9TQzMyKiB0ZW1wMzJhOworICBPTVhfU0MzMiogdGVtcDMyYjsKKworICBPTVhfSU5UIG4sIGZmdF9zcGVjX2J1ZmZlcl9zaXplOworICBPTVhSZXN1bHQgc3RhdHVzOworICBPTVhGRlRTcGVjX0NfU0MzMiAqIGZmdF9md2Rfc3BlYyA9IE5VTEw7CisgIE9NWEZGVFNwZWNfQ19TQzMyICogZmZ0X2ludl9zcGVjID0gTlVMTDsKKyAgaW50IGZmdF9zaXplOworICBzdHJ1Y3QgdGltZXZhbCBzdGFydF90aW1lOworICBzdHJ1Y3QgdGltZXZhbCBlbmRfdGltZTsKKyAgZG91YmxlIGVsYXBzZWRfdGltZTsKKworICBmZnRfc2l6ZSA9IDEgPDwgZmZ0X2xvZ19zaXplOworCisgIHhfYWxpZ25lZCA9IEFsbG9jQWxpZ25lZFBvaW50ZXIoMzIsIHNpemVvZigqeCkgKiBmZnRfc2l6ZSk7CisgIHlfYWxpZ25lZCA9IEFsbG9jQWxpZ25lZFBvaW50ZXIoMzIsIHNpemVvZigqeSkgKiBmZnRfc2l6ZSk7CisgIHpfYWxpZ25lZCA9IEFsbG9jQWxpZ25lZFBvaW50ZXIoMzIsIHNpemVvZigqeikgKiBmZnRfc2l6ZSk7CisgIHlfdHJ1ZSA9IChPTVhfU0MzMiopIG1hbGxvYyhzaXplb2YoKnlfdHJ1ZSkgKiBmZnRfc2l6ZSk7CisgIHRlbXAzMmEgPSAoT01YX1NDMzIqKSBtYWxsb2Moc2l6ZW9mKCp0ZW1wMzJhKSAqIGZmdF9zaXplKTsKKyAgdGVtcDMyYiA9IChPTVhfU0MzMiopIG1hbGxvYyhzaXplb2YoKnRlbXAzMmIpICogZmZ0X3NpemUpOworCisgIHggPSB4X2FsaWduZWQtPmFsaWduZWRfcG9pbnRlcl87CisgIHkgPSB5X2FsaWduZWQtPmFsaWduZWRfcG9pbnRlcl87CisgIHogPSB6X2FsaWduZWQtPmFsaWduZWRfcG9pbnRlcl87CisKKyAgZ2VuZXJhdGVTQzMyU2lnbmFsKHgsIHlfdHJ1ZSwgZmZ0X3NpemUsIHNpZ25hbF90eXBlLCBzaWduYWxfdmFsdWUpOworCisgIHN0YXR1cyA9IG9teFNQX0ZGVEdldEJ1ZlNpemVfQ19TQzMyKGZmdF9sb2dfc2l6ZSwgJmZmdF9zcGVjX2J1ZmZlcl9zaXplKTsKKworICBmZnRfZndkX3NwZWMgPSAoT01YRkZUU3BlY19DX1NDMzIqKSBtYWxsb2MoZmZ0X3NwZWNfYnVmZmVyX3NpemUpOworICBmZnRfaW52X3NwZWMgPSAoT01YRkZUU3BlY19DX1NDMzIqKSBtYWxsb2MoZmZ0X3NwZWNfYnVmZmVyX3NpemUpOworICBzdGF0dXMgPSBvbXhTUF9GRlRJbml0X0NfU0MzMihmZnRfZndkX3NwZWMsIGZmdF9sb2dfc2l6ZSk7CisKKyAgc3RhdHVzID0gb214U1BfRkZUSW5pdF9DX1NDMzIoZmZ0X2ludl9zcGVjLCBmZnRfbG9nX3NpemUpOworCisgIGlmIChkb19mb3J3YXJkX3Rlc3QpIHsKKyAgICBpZiAoaW5jbHVkZV9jb252ZXJzaW9uKSB7CisgICAgICBpbnQgazsKKyAgICAgIGZsb2F0IGZhY3RvciA9IC0xOworCisgICAgICBHZXRVc2VyVGltZSgmc3RhcnRfdGltZSk7CisgICAgICBmb3IgKGsgPSAwOyBrIDwgY291bnQ7ICsraykgeworICAgICAgICBmb3IgKG4gPSAwOyBuIDwgZmZ0X3NpemU7ICsrbikgeworICAgICAgICAgIGlmIChmYWJzKHhbbl0uUmUpID4gZmFjdG9yKSB7CisgICAgICAgICAgICBmYWN0b3IgPSBmYWJzKHhbbl0uUmUpOworICAgICAgICAgIH0KKyAgICAgICAgICBpZiAoZmFicyh4W25dLkltKSA+IGZhY3RvcikgeworICAgICAgICAgICAgZmFjdG9yID0gZmFicyh4W25dLkltKTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmYWN0b3IgPSAoKDEgPDwgMTgpIC0gMSkgLyBmYWN0b3I7CisgICAgICAgIGZvciAobiA9IDA7IG4gPCBmZnRfc2l6ZTsgKytuKSB7CisgICAgICAgICAgdGVtcDMyYVtuXS5SZSA9IGZhY3RvciAqIHhbbl0uUmU7CisgICAgICAgICAgdGVtcDMyYVtuXS5JbSA9IGZhY3RvciAqIHhbbl0uSW07CisgICAgICAgIH0KKworICAgICAgICBvbXhTUF9GRlRGd2RfQ1RvQ19TQzMyX1Nmcyh4LCB5LCBmZnRfZndkX3NwZWMsIDApOworCisgICAgICAgIGZhY3RvciA9IDEgLyBmYWN0b3I7CisgICAgICAgIGZvciAobiA9IDA7IG4gPCBmZnRfc2l6ZTsgKytuKSB7CisgICAgICAgICAgdGVtcDMyYltuXS5SZSA9IHlbbl0uUmUgKiBmYWN0b3I7CisgICAgICAgICAgdGVtcDMyYltuXS5JbSA9IHlbbl0uSW0gKiBmYWN0b3I7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIEdldFVzZXJUaW1lKCZlbmRfdGltZSk7CisgICAgfSBlbHNlIHsKKyAgICAgIEdldFVzZXJUaW1lKCZzdGFydF90aW1lKTsKKyAgICAgIGZvciAobiA9IDA7IG4gPCBjb3VudDsgKytuKSB7CisgICAgICAgIG9teFNQX0ZGVEZ3ZF9DVG9DX1NDMzJfU2ZzKHgsIHksIGZmdF9md2Rfc3BlYywgMCk7CisgICAgICB9CisgICAgICBHZXRVc2VyVGltZSgmZW5kX3RpbWUpOworICAgIH0KKworICAgIGVsYXBzZWRfdGltZSA9IFRpbWVEaWZmZXJlbmNlKCZzdGFydF90aW1lLCAmZW5kX3RpbWUpOworCisgICAgUHJpbnRSZXN1bHQoIkZvcndhcmQgU0MzMiBGRlQiLCBmZnRfbG9nX3NpemUsIGVsYXBzZWRfdGltZSwgY291bnQpOworICB9CisKKyAgaWYgKGRvX2ludmVyc2VfdGVzdCkgeworICAgIGlmIChpbmNsdWRlX2NvbnZlcnNpb24pIHsKKyAgICAgIGludCBrOworICAgICAgZmxvYXQgZmFjdG9yID0gLTE7CisKKyAgICAgIEdldFVzZXJUaW1lKCZzdGFydF90aW1lKTsKKyAgICAgIGZvciAoayA9IDA7IGsgPCBjb3VudDsgKytrKSB7CisgICAgICAgIGZvciAobiA9IDA7IG4gPCBmZnRfc2l6ZTsgKytuKSB7CisgICAgICAgICAgaWYgKGZhYnMoeFtuXS5SZSkgPiBmYWN0b3IpIHsKKyAgICAgICAgICAgIGZhY3RvciA9IGZhYnMoeFtuXS5SZSk7CisgICAgICAgICAgfQorICAgICAgICAgIGlmIChmYWJzKHhbbl0uSW0pID4gZmFjdG9yKSB7CisgICAgICAgICAgICBmYWN0b3IgPSBmYWJzKHhbbl0uSW0pOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmYWN0b3IgPSAoKDEgPDwgMTgpIC0gMSkgLyBmYWN0b3I7CisgICAgICAgIGZvciAobiA9IDA7IG4gPCBmZnRfc2l6ZTsgKytuKSB7CisgICAgICAgICAgdGVtcDMyYVtuXS5SZSA9IGZhY3RvciAqIHhbbl0uUmU7CisgICAgICAgICAgdGVtcDMyYVtuXS5JbSA9IGZhY3RvciAqIHhbbl0uSW07CisgICAgICAgIH0KKworICAgICAgICBzdGF0dXMgPSBvbXhTUF9GRlRJbnZfQ1RvQ19TQzMyX1Nmcyh5LCB6LCBmZnRfaW52X3NwZWMsIDApOworCisgICAgICAgIGZhY3RvciA9IDEgLyBmYWN0b3I7CisgICAgICAgIGZvciAobiA9IDA7IG4gPCBmZnRfc2l6ZTsgKytuKSB7CisgICAgICAgICAgdGVtcDMyYltuXS5SZSA9IHlbbl0uUmUgKiBmYWN0b3I7CisgICAgICAgICAgdGVtcDMyYltuXS5JbSA9IHlbbl0uSW0gKiBmYWN0b3I7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIEdldFVzZXJUaW1lKCZlbmRfdGltZSk7CisgICAgfSBlbHNlIHsKKyAgICAgIEdldFVzZXJUaW1lKCZzdGFydF90aW1lKTsKKyAgICAgIGZvciAobiA9IDA7IG4gPCBjb3VudDsgKytuKSB7CisgICAgICAgIHN0YXR1cyA9IG9teFNQX0ZGVEludl9DVG9DX1NDMzJfU2ZzKHksIHosIGZmdF9pbnZfc3BlYywgMCk7CisgICAgICB9CisgICAgICBHZXRVc2VyVGltZSgmZW5kX3RpbWUpOworICAgIH0KKworICAgIGVsYXBzZWRfdGltZSA9IFRpbWVEaWZmZXJlbmNlKCZzdGFydF90aW1lLCAmZW5kX3RpbWUpOworCisgICAgUHJpbnRSZXN1bHQoIkludmVyc2UgU0MzMiBGRlQiLCBmZnRfbG9nX3NpemUsIGVsYXBzZWRfdGltZSwgY291bnQpOworICB9CisKKyAgRnJlZUFsaWduZWRQb2ludGVyKHhfYWxpZ25lZCk7CisgIEZyZWVBbGlnbmVkUG9pbnRlcih5X2FsaWduZWQpOworICBGcmVlQWxpZ25lZFBvaW50ZXIoel9hbGlnbmVkKTsKKyAgZnJlZSh0ZW1wMzJhKTsKKyAgZnJlZSh0ZW1wMzJiKTsKKyAgZnJlZShmZnRfZndkX3NwZWMpOworICBmcmVlKGZmdF9pbnZfc3BlYyk7Cit9CisKK3ZvaWQgVGltZVNDMzJGRlQoaW50IGNvdW50LCBmbG9hdCBzaWduYWxfdmFsdWUsIGludCBzaWduYWxfdHlwZSkgeworICBpbnQgazsKKyAgaW50IG1heF9vcmRlciA9IChtYXhfZmZ0X29yZGVyID4gTUFYX0ZGVF9PUkRFUl9GSVhFRF9QT0lOVCkKKyAgICAgID8gTUFYX0ZGVF9PUkRFUl9GSVhFRF9QT0lOVCA6IG1heF9mZnRfb3JkZXI7CisKKyAgaWYgKHZlcmJvc2UgPT0gMCkKKyAgICBwcmludGYoIlNDMzIgRkZUXG4iKTsKKworICBmb3IgKGsgPSBtaW5fZmZ0X29yZGVyOyBrIDw9IG1heF9vcmRlcjsgKytrKSB7CisgICAgaW50IHRlc3RDb3VudCA9IENvbXB1dGVDb3VudChjb3VudCwgayk7CisgICAgVGltZU9uZVNDMzJGRlQodGVzdENvdW50LCBrLCBzaWduYWxfdmFsdWUsIHNpZ25hbF90eXBlKTsKKyAgfQorfQorCit2b2lkIEdlbmVyYXRlUkZGVDE2U2lnbmFsKE9NWF9TMTYqIHgsIE9NWF9TQzMyKiBmZnQsIGludCBzaXplLCBpbnQgc2lnbmFsX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHNpZ25hbF92YWx1ZSkgeworICBpbnQgazsKKyAgc3RydWN0IENvbXBsZXhGbG9hdCAqdGVzdF9zaWduYWw7CisgIHN0cnVjdCBDb21wbGV4RmxvYXQgKnRydWVfZmZ0OworCisgIHRlc3Rfc2lnbmFsID0gKHN0cnVjdCBDb21wbGV4RmxvYXQqKSBtYWxsb2Moc2l6ZW9mKCp0ZXN0X3NpZ25hbCkgKiBzaXplKTsKKyAgdHJ1ZV9mZnQgPSAoc3RydWN0IENvbXBsZXhGbG9hdCopIG1hbGxvYyhzaXplb2YoKnRydWVfZmZ0KSAqIHNpemUpOworICBHZW5lcmF0ZVRlc3RTaWduYWxBbmRGRlQodGVzdF9zaWduYWwsIHRydWVfZmZ0LCBzaXplLCBzaWduYWxfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hbF92YWx1ZSwgMSk7CisKKyAgLyoKKyAgICogQ29udmVydCB0aGUgY29tcGxleCByZXN1bHQgdG8gd2hhdCB3ZSB3YW50CisgICAqLworCisgIGZvciAoayA9IDA7IGsgPCBzaXplOyArK2spIHsKKyAgICB4W2tdID0gdGVzdF9zaWduYWxba10uUmU7CisgIH0KKworICBmb3IgKGsgPSAwOyBrIDwgc2l6ZSAvIDIgKyAxOyArK2spIHsKKyAgICBmZnRba10uUmUgPSB0cnVlX2ZmdFtrXS5SZTsKKyAgICBmZnRba10uSW0gPSB0cnVlX2ZmdFtrXS5JbTsKKyAgfQorCisgIGZyZWUodGVzdF9zaWduYWwpOworICBmcmVlKHRydWVfZmZ0KTsKK30KKwordm9pZCBUaW1lT25lUkZGVDE2KGludCBjb3VudCwgaW50IGZmdF9sb2dfc2l6ZSwgZmxvYXQgc2lnbmFsX3ZhbHVlLAorICAgICAgICAgICAgICAgICAgIGludCBzaWduYWxfdHlwZSkgeworICBPTVhfUzE2KiB4OworICBPTVhfUzMyKiB5OworICBPTVhfUzE2KiB6OworICBPTVhfUzMyKiB5X3RydWU7CisgIE9NWF9GMzIqIHhyOworICBPTVhfRjMyKiB5clRydWU7CisKKyAgc3RydWN0IEFsaWduZWRQdHIqIHhfYWxpZ25lZDsKKyAgc3RydWN0IEFsaWduZWRQdHIqIHlfYWxpZ25lZDsKKyAgc3RydWN0IEFsaWduZWRQdHIqIHpfYWxpZ25lZDsKKyAgc3RydWN0IEFsaWduZWRQdHIqIHlfdHJ1ZUFsaWduZWQ7CisgIHN0cnVjdCBBbGlnbmVkUHRyKiB4cl9hbGlnbmVkOworICBzdHJ1Y3QgQWxpZ25lZFB0ciogeXJfdHJ1ZV9hbGlnbmVkOworCisKKyAgT01YX1MxNiogdGVtcDE2OworICBPTVhfUzMyKiB0ZW1wMzI7CisKKworICBPTVhfSU5UIG4sIGZmdF9zcGVjX2J1ZmZlcl9zaXplOworICBPTVhSZXN1bHQgc3RhdHVzOworICBPTVhGRlRTcGVjX1JfUzE2UzMyICogZmZ0X2Z3ZF9zcGVjID0gTlVMTDsKKyAgT01YRkZUU3BlY19SX1MxNlMzMiAqIGZmdF9pbnZfc3BlYyA9IE5VTEw7CisgIGludCBmZnRfc2l6ZTsKKyAgc3RydWN0IHRpbWV2YWwgc3RhcnRfdGltZTsKKyAgc3RydWN0IHRpbWV2YWwgZW5kX3RpbWU7CisgIGRvdWJsZSBlbGFwc2VkX3RpbWU7CisgIGludCBzY2FsZUZhY3RvcjsKKworICBmZnRfc2l6ZSA9IDEgPDwgZmZ0X2xvZ19zaXplOworICBzY2FsZUZhY3RvciA9IGZmdF9sb2dfc2l6ZTsKKworICB4X2FsaWduZWQgPSBBbGxvY0FsaWduZWRQb2ludGVyKDMyLCBzaXplb2YoKngpICogZmZ0X3NpemUpOworICB5X2FsaWduZWQgPSBBbGxvY0FsaWduZWRQb2ludGVyKDMyLCBzaXplb2YoKnkpICogKGZmdF9zaXplICsgMikpOworICB6X2FsaWduZWQgPSBBbGxvY0FsaWduZWRQb2ludGVyKDMyLCBzaXplb2YoKnopICogZmZ0X3NpemUpOworCisgIHlfdHJ1ZUFsaWduZWQgPSBBbGxvY0FsaWduZWRQb2ludGVyKDMyLCBzaXplb2YoKnlfdHJ1ZSkgKiAoZmZ0X3NpemUgKyAyKSk7CisKKyAgeHJfYWxpZ25lZCA9IEFsbG9jQWxpZ25lZFBvaW50ZXIoMzIsIHNpemVvZigqeHIpICogZmZ0X3NpemUpOworICB5cl90cnVlX2FsaWduZWQgPSBBbGxvY0FsaWduZWRQb2ludGVyKDMyLCBzaXplb2YoKnlyVHJ1ZSkgKiAoZmZ0X3NpemUgKyAyKSk7CisKKyAgeCA9IHhfYWxpZ25lZC0+YWxpZ25lZF9wb2ludGVyXzsKKyAgeSA9IHlfYWxpZ25lZC0+YWxpZ25lZF9wb2ludGVyXzsKKyAgeiA9IHpfYWxpZ25lZC0+YWxpZ25lZF9wb2ludGVyXzsKKyAgeV90cnVlID0geV90cnVlQWxpZ25lZC0+YWxpZ25lZF9wb2ludGVyXzsKKyAgeHIgPSB4cl9hbGlnbmVkLT5hbGlnbmVkX3BvaW50ZXJfOworICB5clRydWUgPSB5cl90cnVlX2FsaWduZWQtPmFsaWduZWRfcG9pbnRlcl87CisKKyAgdGVtcDE2ID0gKE9NWF9TMTYqKSBtYWxsb2Moc2l6ZW9mKCp0ZW1wMTYpICogZmZ0X3NpemUpOworICB0ZW1wMzIgPSAoT01YX1MzMiopIG1hbGxvYyhzaXplb2YoKnRlbXAzMikgKiBmZnRfc2l6ZSk7CisKKworICBHZW5lcmF0ZVJGRlQxNlNpZ25hbCh4LCAoT01YX1NDMzIqKSB5X3RydWUsIGZmdF9zaXplLCBzaWduYWxfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgc2lnbmFsX3ZhbHVlKTsKKyAgLyoKKyAgICogR2VuZXJhdGUgYSByZWFsIHZlcnNpb24gc28gd2UgY2FuIG1lYXN1cmUgc2NhbGluZyBjb3N0cworICAgKi8KKyAgR2VuZXJhdGVSZWFsRmxvYXRTaWduYWwoeHIsIChPTVhfRkMzMiopIHlyVHJ1ZSwgZmZ0X3NpemUsIHNpZ25hbF90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduYWxfdmFsdWUpOworCisgIHN0YXR1cyA9IG9teFNQX0ZGVEdldEJ1ZlNpemVfUl9TMTZTMzIoZmZ0X2xvZ19zaXplLCAmZmZ0X3NwZWNfYnVmZmVyX3NpemUpOworCisgIGZmdF9md2Rfc3BlYyA9IChPTVhGRlRTcGVjX1JfUzE2UzMyKikgbWFsbG9jKGZmdF9zcGVjX2J1ZmZlcl9zaXplKTsKKyAgZmZ0X2ludl9zcGVjID0gKE9NWEZGVFNwZWNfUl9TMTZTMzIqKSBtYWxsb2MoZmZ0X3NwZWNfYnVmZmVyX3NpemUpOworICBzdGF0dXMgPSBvbXhTUF9GRlRJbml0X1JfUzE2UzMyKGZmdF9md2Rfc3BlYywgZmZ0X2xvZ19zaXplKTsKKworICBzdGF0dXMgPSBvbXhTUF9GRlRJbml0X1JfUzE2UzMyKGZmdF9pbnZfc3BlYywgZmZ0X2xvZ19zaXplKTsKKworICBpZiAoZG9fZm9yd2FyZF90ZXN0KSB7CisgICAgaWYgKGluY2x1ZGVfY29udmVyc2lvbikgeworICAgICAgaW50IGs7CisgICAgICBmbG9hdCBmYWN0b3IgPSAtMTsKKworICAgICAgR2V0VXNlclRpbWUoJnN0YXJ0X3RpbWUpOworICAgICAgZm9yIChrID0gMDsgayA8IGNvdW50OyArK2spIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogU3BlbmQgc29tZSB0aW1lIGNvbXB1dGluZyB0aGUgbWF4IG9mIHRoZSBzaWduYWwsIGFuZCB0aGVuIHNjYWxpbmcgaXQuCisgICAgICAgICAqLworICAgICAgICBmb3IgKG4gPSAwOyBuIDwgZmZ0X3NpemU7ICsrbikgeworICAgICAgICAgIGlmIChmYWJzKHhyW25dKSA+IGZhY3RvcikgeworICAgICAgICAgICAgZmFjdG9yID0gZmFicyh4cltuXSk7CisgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZmFjdG9yID0gMzI3NjcgLyBmYWN0b3I7CisgICAgICAgIGZvciAobiA9IDA7IG4gPCBmZnRfc2l6ZTsgKytuKSB7CisgICAgICAgICAgdGVtcDE2W25dID0gZmFjdG9yICogeHJbbl07CisgICAgICAgIH0KKworICAgICAgICBzdGF0dXMgPSBvbXhTUF9GRlRGd2RfUlRvQ0NTX1MxNlMzMl9TZnMoeCwgeSwgZmZ0X2Z3ZF9zcGVjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKE9NWF9JTlQpIHNjYWxlRmFjdG9yKTsKKworICAgICAgICAvKgorICAgICAgICAgKiBOb3cgc3BlbmQgc29tZSB0aW1lIGNvbnZlcnRpbmcgdGhlIGZpeGVkLXBvaW50IEZGVCBiYWNrIHRvIGZsb2F0LgorICAgICAgICAgKi8KKyAgICAgICAgZmFjdG9yID0gMSAvIGZhY3RvcjsKKyAgICAgICAgZm9yIChuID0gMDsgbiA8IGZmdF9zaXplICsgMjsgKytuKSB7CisgICAgICAgICAgeHJbbl0gPSB5W25dICogZmFjdG9yOworICAgICAgICB9CisgICAgICB9CisgICAgICBHZXRVc2VyVGltZSgmZW5kX3RpbWUpOworICAgIH0gZWxzZSB7CisgICAgICBmbG9hdCBmYWN0b3IgPSAtMTsKKworICAgICAgR2V0VXNlclRpbWUoJnN0YXJ0X3RpbWUpOworICAgICAgZm9yIChuID0gMDsgbiA8IGNvdW50OyArK24pIHsKKyAgICAgICAgc3RhdHVzID0gb214U1BfRkZURndkX1JUb0NDU19TMTZTMzJfU2ZzKHgsIHksIGZmdF9md2Rfc3BlYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChPTVhfSU5UKSBzY2FsZUZhY3Rvcik7CisgICAgICB9CisgICAgICBHZXRVc2VyVGltZSgmZW5kX3RpbWUpOworICAgIH0KKworICAgIGVsYXBzZWRfdGltZSA9IFRpbWVEaWZmZXJlbmNlKCZzdGFydF90aW1lLCAmZW5kX3RpbWUpOworCisgICAgUHJpbnRSZXN1bHQoIkZvcndhcmQgUkZGVDE2IiwgZmZ0X2xvZ19zaXplLCBlbGFwc2VkX3RpbWUsIGNvdW50KTsKKyAgfQorCisgIGlmIChkb19pbnZlcnNlX3Rlc3QpIHsKKyAgICBpZiAoaW5jbHVkZV9jb252ZXJzaW9uKSB7CisgICAgICBpbnQgazsKKyAgICAgIGZsb2F0IGZhY3RvciA9IC0xOworCisgICAgICBHZXRVc2VyVGltZSgmc3RhcnRfdGltZSk7CisgICAgICBmb3IgKGsgPSAwOyBrIDwgY291bnQ7ICsraykgeworICAgICAgICAvKgorICAgICAgICAgKiBTcGVuZCBzb21lIHRpbWUgc2NhbGluZyB0aGUgRkZUIHNpZ25hbCB0byBmaXhlZCBwb2ludC4KKyAgICAgICAgICovCisgICAgICAgIGZvciAobiA9IDA7IG4gPCBmZnRfc2l6ZTsgKytuKSB7CisgICAgICAgICAgaWYgKGZhYnMoeXJUcnVlW25dKSA+IGZhY3RvcikgeworICAgICAgICAgICAgZmFjdG9yID0gZmFicyh5clRydWVbbl0pOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmb3IgKG4gPSAwOyBuIDwgZmZ0X3NpemU7ICsrbikgeworICAgICAgICAgIHRlbXAzMltuXSA9IGZhY3RvciAqIHlyVHJ1ZVtuXTsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXR1cyA9IG9teFNQX0ZGVEZ3ZF9SVG9DQ1NfUzE2UzMyX1Nmcyh4LCB5LCBmZnRfZndkX3NwZWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoT01YX0lOVCkgc2NhbGVGYWN0b3IpOworCisgICAgICAgIC8qCisgICAgICAgICAqIFNwZW5kIHNvbWUgdGltZSBjb252ZXJ0aW5nIHRoZSByZXN1bHQgYmFjayB0byBmbG9hdAorICAgICAgICAgKi8KKyAgICAgICAgZmFjdG9yID0gMSAvIGZhY3RvcjsKKyAgICAgICAgZm9yIChuID0gMDsgbiA8IGZmdF9zaXplOyArK24pIHsKKyAgICAgICAgICB4cltuXSA9IGZhY3RvciAqIHpbbl07CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIEdldFVzZXJUaW1lKCZlbmRfdGltZSk7CisgICAgfSBlbHNlIHsKKyAgICAgIEdldFVzZXJUaW1lKCZzdGFydF90aW1lKTsKKyAgICAgIGZvciAobiA9IDA7IG4gPCBjb3VudDsgKytuKSB7CisgICAgICAgIHN0YXR1cyA9IG9teFNQX0ZGVEludl9DQ1NUb1JfUzMyUzE2X1Nmcyh5LCB6LCBmZnRfaW52X3NwZWMsIDApOworICAgICAgfQorICAgICAgR2V0VXNlclRpbWUoJmVuZF90aW1lKTsKKyAgICB9CisKKyAgICBlbGFwc2VkX3RpbWUgPSBUaW1lRGlmZmVyZW5jZSgmc3RhcnRfdGltZSwgJmVuZF90aW1lKTsKKworICAgIFByaW50UmVzdWx0KCJJbnZlcnNlIFJGRlQxNiIsIGZmdF9sb2dfc2l6ZSwgZWxhcHNlZF90aW1lLCBjb3VudCk7CisgIH0KKworICBGcmVlQWxpZ25lZFBvaW50ZXIoeF9hbGlnbmVkKTsKKyAgRnJlZUFsaWduZWRQb2ludGVyKHlfYWxpZ25lZCk7CisgIEZyZWVBbGlnbmVkUG9pbnRlcih6X2FsaWduZWQpOworICBGcmVlQWxpZ25lZFBvaW50ZXIoeV90cnVlQWxpZ25lZCk7CisgIEZyZWVBbGlnbmVkUG9pbnRlcih4cl9hbGlnbmVkKTsKKyAgRnJlZUFsaWduZWRQb2ludGVyKHlyX3RydWVfYWxpZ25lZCk7CisgIGZyZWUoZmZ0X2Z3ZF9zcGVjKTsKKyAgZnJlZShmZnRfaW52X3NwZWMpOworfQorCit2b2lkIFRpbWVSRkZUMTYoaW50IGNvdW50LCBmbG9hdCBzaWduYWxfdmFsdWUsIGludCBzaWduYWxfdHlwZSkgeworICBpbnQgazsKKyAgaW50IG1heF9vcmRlciA9IChtYXhfZmZ0X29yZGVyID4gTUFYX0ZGVF9PUkRFUl9GSVhFRF9QT0lOVCkKKyAgICAgID8gTUFYX0ZGVF9PUkRFUl9GSVhFRF9QT0lOVCA6IG1heF9mZnRfb3JkZXI7CisKKyAgaWYgKHZlcmJvc2UgPT0gMCkKKyAgICBwcmludGYoIlJGRlQxNlxuIik7CisKKyAgZm9yIChrID0gbWluX2ZmdF9vcmRlcjsgayA8PSBtYXhfb3JkZXI7ICsraykgeworICAgIGludCB0ZXN0Q291bnQgPSBDb21wdXRlQ291bnQoY291bnQsIGspOworICAgIFRpbWVPbmVSRkZUMTYodGVzdENvdW50LCBrLCBzaWduYWxfdmFsdWUsIHNpZ25hbF90eXBlKTsKKyAgfQorfQorCit2b2lkIEdlbmVyYXRlUkZGVDMyU2lnbmFsKE9NWF9TMzIqIHgsIE9NWF9TQzMyKiBmZnQsIGludCBzaXplLCBpbnQgc2lnbmFsX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHNpZ25hbF92YWx1ZSkgeworICBpbnQgazsKKyAgc3RydWN0IENvbXBsZXhGbG9hdCAqdGVzdF9zaWduYWw7CisgIHN0cnVjdCBDb21wbGV4RmxvYXQgKnRydWVfZmZ0OworCisgIHRlc3Rfc2lnbmFsID0gKHN0cnVjdCBDb21wbGV4RmxvYXQqKSBtYWxsb2Moc2l6ZW9mKCp0ZXN0X3NpZ25hbCkgKiBzaXplKTsKKyAgdHJ1ZV9mZnQgPSAoc3RydWN0IENvbXBsZXhGbG9hdCopIG1hbGxvYyhzaXplb2YoKnRydWVfZmZ0KSAqIHNpemUpOworICBHZW5lcmF0ZVRlc3RTaWduYWxBbmRGRlQodGVzdF9zaWduYWwsIHRydWVfZmZ0LCBzaXplLCBzaWduYWxfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hbF92YWx1ZSwgMSk7CisKKyAgLyoKKyAgICogQ29udmVydCB0aGUgY29tcGxleCByZXN1bHQgdG8gd2hhdCB3ZSB3YW50CisgICAqLworCisgIGZvciAoayA9IDA7IGsgPCBzaXplOyArK2spIHsKKyAgICB4W2tdID0gdGVzdF9zaWduYWxba10uUmU7CisgIH0KKworICBmb3IgKGsgPSAwOyBrIDwgc2l6ZSAvIDIgKyAxOyArK2spIHsKKyAgICBmZnRba10uUmUgPSB0cnVlX2ZmdFtrXS5SZTsKKyAgICBmZnRba10uSW0gPSB0cnVlX2ZmdFtrXS5JbTsKKyAgfQorCisgIGZyZWUodGVzdF9zaWduYWwpOworICBmcmVlKHRydWVfZmZ0KTsKK30KKwordm9pZCBUaW1lT25lUkZGVDMyKGludCBjb3VudCwgaW50IGZmdF9sb2dfc2l6ZSwgZmxvYXQgc2lnbmFsX3ZhbHVlLAorICAgICAgICAgICAgICAgICAgIGludCBzaWduYWxfdHlwZSkgeworICBPTVhfUzMyKiB4OworICBPTVhfUzMyKiB5OworICBPTVhfUzMyKiB6OworICBPTVhfUzMyKiB5X3RydWU7CisgIE9NWF9GMzIqIHhyOworICBPTVhfRjMyKiB5clRydWU7CisKKyAgc3RydWN0IEFsaWduZWRQdHIqIHhfYWxpZ25lZDsKKyAgc3RydWN0IEFsaWduZWRQdHIqIHlfYWxpZ25lZDsKKyAgc3RydWN0IEFsaWduZWRQdHIqIHpfYWxpZ25lZDsKKyAgc3RydWN0IEFsaWduZWRQdHIqIHlfdHJ1ZV9hbGlnbmVkOworCisgIE9NWF9TMzIqIHRlbXAxOworICBPTVhfUzMyKiB0ZW1wMjsKKworICBPTVhfSU5UIG4sIGZmdF9zcGVjX2J1ZmZlcl9zaXplOworICBPTVhSZXN1bHQgc3RhdHVzOworICBPTVhGRlRTcGVjX1JfUzE2UzMyICogZmZ0X2Z3ZF9zcGVjID0gTlVMTDsKKyAgT01YRkZUU3BlY19SX1MxNlMzMiAqIGZmdF9pbnZfc3BlYyA9IE5VTEw7CisgIGludCBmZnRfc2l6ZTsKKyAgc3RydWN0IHRpbWV2YWwgc3RhcnRfdGltZTsKKyAgc3RydWN0IHRpbWV2YWwgZW5kX3RpbWU7CisgIGRvdWJsZSBlbGFwc2VkX3RpbWU7CisgIGludCBzY2FsZUZhY3RvcjsKKworICBmZnRfc2l6ZSA9IDEgPDwgZmZ0X2xvZ19zaXplOworCisgIHhfYWxpZ25lZCA9IEFsbG9jQWxpZ25lZFBvaW50ZXIoMzIsIHNpemVvZigqeCkgKiBmZnRfc2l6ZSk7CisgIHlfYWxpZ25lZCA9IEFsbG9jQWxpZ25lZFBvaW50ZXIoMzIsIHNpemVvZigqeSkgKiAoZmZ0X3NpemUgKyAyKSk7CisgIHpfYWxpZ25lZCA9IEFsbG9jQWxpZ25lZFBvaW50ZXIoMzIsIHNpemVvZigqeikgKiBmZnRfc2l6ZSk7CisKKyAgeV90cnVlX2FsaWduZWQgPSBBbGxvY0FsaWduZWRQb2ludGVyKDMyLCBzaXplb2YoKnlfdHJ1ZSkgKiAoZmZ0X3NpemUgKyAyKSk7CisKKyAgeCA9IHhfYWxpZ25lZC0+YWxpZ25lZF9wb2ludGVyXzsKKyAgeSA9IHlfYWxpZ25lZC0+YWxpZ25lZF9wb2ludGVyXzsKKyAgeiA9IHpfYWxpZ25lZC0+YWxpZ25lZF9wb2ludGVyXzsKKyAgeV90cnVlID0geV90cnVlX2FsaWduZWQtPmFsaWduZWRfcG9pbnRlcl87CisKKyAgaWYgKHZlcmJvc2UgPiAzKSB7CisgICAgcHJpbnRmKCJ4ID0gJXBcbiIsICh2b2lkKil4KTsKKyAgICBwcmludGYoInkgPSAlcFxuIiwgKHZvaWQqKXkpOworICAgIHByaW50ZigieiA9ICVwXG4iLCAodm9pZCopeik7CisgIH0KKworICB4ciA9IChPTVhfRjMyKikgbWFsbG9jKHNpemVvZigqeCkgKiBmZnRfc2l6ZSk7CisgIHlyVHJ1ZSA9IChPTVhfRjMyKikgbWFsbG9jKHNpemVvZigqeSkgKiAoZmZ0X3NpemUgKyAyKSk7CisgIHRlbXAxID0gKE9NWF9TMzIqKSBtYWxsb2Moc2l6ZW9mKCp0ZW1wMSkgKiBmZnRfc2l6ZSk7CisgIHRlbXAyID0gKE9NWF9TMzIqKSBtYWxsb2Moc2l6ZW9mKCp0ZW1wMikgKiAoZmZ0X3NpemUgKyAyKSk7CisKKyAgR2VuZXJhdGVSRkZUMzJTaWduYWwoeCwgKE9NWF9TQzMyKikgeV90cnVlLCBmZnRfc2l6ZSwgc2lnbmFsX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hbF92YWx1ZSk7CisKKyAgaWYgKHZlcmJvc2UgPiA2MykgeworICAgIHByaW50ZigiU2lnbmFsXG4iKTsKKyAgICBwcmludGYoIm5cdHhbbl1cbiIpOworICAgIGZvciAobiA9IDA7IG4gPCBmZnRfc2l6ZTsgKytuKSB7CisgICAgICBwcmludGYoIiU0ZFx0JWRcbiIsIG4sIHhbbl0pOworICAgIH0KKyAgfQorCisgIHN0YXR1cyA9IG9teFNQX0ZGVEdldEJ1ZlNpemVfUl9TMzIoZmZ0X2xvZ19zaXplLCAmZmZ0X3NwZWNfYnVmZmVyX3NpemUpOworICBpZiAodmVyYm9zZSA+IDMpIHsKKyAgICBwcmludGYoImZmdF9zcGVjX2J1ZmZlcl9zaXplID0gJWRcbiIsIGZmdF9zcGVjX2J1ZmZlcl9zaXplKTsKKyAgfQorCisgIGZmdF9md2Rfc3BlYyA9IChPTVhGRlRTcGVjX1JfUzMyKikgbWFsbG9jKGZmdF9zcGVjX2J1ZmZlcl9zaXplKTsKKyAgZmZ0X2ludl9zcGVjID0gKE9NWEZGVFNwZWNfUl9TMzIqKSBtYWxsb2MoZmZ0X3NwZWNfYnVmZmVyX3NpemUpOworICBzdGF0dXMgPSBvbXhTUF9GRlRJbml0X1JfUzMyKGZmdF9md2Rfc3BlYywgZmZ0X2xvZ19zaXplKTsKKyAgaWYgKHN0YXR1cykgeworICAgIHByaW50ZigiRmFpbGVkIHRvIGluaXQgZm9yd2FyZCBGRlQ6ICBzdGF0dXMgPSAlZFxuIiwgc3RhdHVzKTsKKyAgfQorCisgIHN0YXR1cyA9IG9teFNQX0ZGVEluaXRfUl9TMzIoZmZ0X2ludl9zcGVjLCBmZnRfbG9nX3NpemUpOworICBpZiAoc3RhdHVzKSB7CisgICAgcHJpbnRmKCJGYWlsZWQgdG8gaW5pdCBiYWNrd2FyZCBGRlQ6ICBzdGF0dXMgPSAlZFxuIiwgc3RhdHVzKTsKKyAgfQorCisgIGlmIChkb19mb3J3YXJkX3Rlc3QpIHsKKyAgICBpZiAoaW5jbHVkZV9jb252ZXJzaW9uKSB7CisgICAgICBpbnQgazsKKyAgICAgIGZsb2F0IGZhY3RvciA9IC0xOworCisgICAgICBHZXRVc2VyVGltZSgmc3RhcnRfdGltZSk7CisgICAgICBmb3IgKGsgPSAwOyBrIDwgY291bnQ7ICsraykgeworICAgICAgICAvKgorICAgICAgICAgKiBTcGVuZCBzb21lIHRpbWUgY29tcHV0aW5nIHRoZSBtYXggb2YgdGhlIHNpZ25hbCwgYW5kIHRoZW4gc2NhbGluZyBpdC4KKyAgICAgICAgICovCisgICAgICAgIGZvciAobiA9IDA7IG4gPCBmZnRfc2l6ZTsgKytuKSB7CisgICAgICAgICAgaWYgKGZhYnMoeHJbbl0pID4gZmFjdG9yKSB7CisgICAgICAgICAgICBmYWN0b3IgPSBmYWJzKHhyW25dKTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmYWN0b3IgPSAoMSA8PCAyMCkgLyBmYWN0b3I7CisgICAgICAgIGZvciAobiA9IDA7IG4gPCBmZnRfc2l6ZTsgKytuKSB7CisgICAgICAgICAgdGVtcDFbbl0gPSBmYWN0b3IgKiB4cltuXTsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXR1cyA9IG9teFNQX0ZGVEZ3ZF9SVG9DQ1NfUzMyX1Nmcyh4LCB5LCBmZnRfZndkX3NwZWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoT01YX0lOVCkgc2NhbGVGYWN0b3IpOworCisgICAgICAgIC8qCisgICAgICAgICAqIE5vdyBzcGVuZCBzb21lIHRpbWUgY29udmVydGluZyB0aGUgZml4ZWQtcG9pbnQgRkZUIGJhY2sgdG8gZmxvYXQuCisgICAgICAgICAqLworICAgICAgICBmYWN0b3IgPSAxIC8gZmFjdG9yOworICAgICAgICBmb3IgKG4gPSAwOyBuIDwgZmZ0X3NpemUgKyAyOyArK24pIHsKKyAgICAgICAgICB4cltuXSA9IHlbbl0gKiBmYWN0b3I7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIEdldFVzZXJUaW1lKCZlbmRfdGltZSk7CisgICAgfSBlbHNlIHsKKyAgICAgIGZsb2F0IGZhY3RvciA9IC0xOworCisgICAgICBHZXRVc2VyVGltZSgmc3RhcnRfdGltZSk7CisgICAgICBmb3IgKG4gPSAwOyBuIDwgY291bnQ7ICsrbikgeworICAgICAgICBzdGF0dXMgPSBvbXhTUF9GRlRGd2RfUlRvQ0NTX1MzMl9TZnMoeCwgeSwgZmZ0X2Z3ZF9zcGVjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKE9NWF9JTlQpIHNjYWxlRmFjdG9yKTsKKyAgICAgIH0KKyAgICAgIEdldFVzZXJUaW1lKCZlbmRfdGltZSk7CisgICAgfQorCisgICAgZWxhcHNlZF90aW1lID0gVGltZURpZmZlcmVuY2UoJnN0YXJ0X3RpbWUsICZlbmRfdGltZSk7CisKKyAgICBQcmludFJlc3VsdCgiRm9yd2FyZCBSRkZUMzIiLCBmZnRfbG9nX3NpemUsIGVsYXBzZWRfdGltZSwgY291bnQpOworICB9CisKKyAgaWYgKGRvX2ludmVyc2VfdGVzdCkgeworICAgIGlmIChpbmNsdWRlX2NvbnZlcnNpb24pIHsKKyAgICAgIGludCBrOworICAgICAgZmxvYXQgZmFjdG9yID0gLTE7CisKKyAgICAgIEdldFVzZXJUaW1lKCZzdGFydF90aW1lKTsKKyAgICAgIGZvciAoayA9IDA7IGsgPCBjb3VudDsgKytrKSB7CisgICAgICAgIC8qCisgICAgICAgICAqIFNwZW5kIHNvbWUgdGltZSBzY2FsaW5nIHRoZSBGRlQgc2lnbmFsIHRvIGZpeGVkIHBvaW50LgorICAgICAgICAgKi8KKyAgICAgICAgZm9yIChuID0gMDsgbiA8IGZmdF9zaXplICsgMjsgKytuKSB7CisgICAgICAgICAgaWYgKGZhYnMoeXJUcnVlW25dKSA+IGZhY3RvcikgeworICAgICAgICAgICAgZmFjdG9yID0gZmFicyh5clRydWVbbl0pOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmb3IgKG4gPSAwOyBuIDwgZmZ0X3NpemUgKyAyOyArK24pIHsKKyAgICAgICAgICB0ZW1wMltuXSA9IGZhY3RvciAqIHlyVHJ1ZVtuXTsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXR1cyA9IG9teFNQX0ZGVEludl9DQ1NUb1JfUzMyX1Nmcyh5LCB6LCBmZnRfaW52X3NwZWMsIDApOworCisgICAgICAgIC8qCisgICAgICAgICAqIFNwZW5kIHNvbWUgdGltZSBjb252ZXJ0aW5nIHRoZSByZXN1bHQgYmFjayB0byBmbG9hdAorICAgICAgICAgKi8KKyAgICAgICAgZmFjdG9yID0gMSAvIGZhY3RvcjsKKyAgICAgICAgZm9yIChuID0gMDsgbiA8IGZmdF9zaXplOyArK24pIHsKKyAgICAgICAgICB4cltuXSA9IGZhY3RvciAqIHpbbl07CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIEdldFVzZXJUaW1lKCZlbmRfdGltZSk7CisgICAgfSBlbHNlIHsKKyAgICAgIEdldFVzZXJUaW1lKCZzdGFydF90aW1lKTsKKyAgICAgIGZvciAobiA9IDA7IG4gPCBjb3VudDsgKytuKSB7CisgICAgICAgIHN0YXR1cyA9IG9teFNQX0ZGVEludl9DQ1NUb1JfUzMyX1Nmcyh5LCB6LCBmZnRfaW52X3NwZWMsIDApOworICAgICAgfQorICAgICAgR2V0VXNlclRpbWUoJmVuZF90aW1lKTsKKyAgICB9CisKKyAgICBlbGFwc2VkX3RpbWUgPSBUaW1lRGlmZmVyZW5jZSgmc3RhcnRfdGltZSwgJmVuZF90aW1lKTsKKworICAgIFByaW50UmVzdWx0KCJJbnZlcnNlIFJGRlQzMiIsIGZmdF9sb2dfc2l6ZSwgZWxhcHNlZF90aW1lLCBjb3VudCk7CisgIH0KKworICBGcmVlQWxpZ25lZFBvaW50ZXIoeF9hbGlnbmVkKTsKKyAgRnJlZUFsaWduZWRQb2ludGVyKHlfYWxpZ25lZCk7CisgIEZyZWVBbGlnbmVkUG9pbnRlcih6X2FsaWduZWQpOworICBGcmVlQWxpZ25lZFBvaW50ZXIoeV90cnVlX2FsaWduZWQpOworICBmcmVlKGZmdF9md2Rfc3BlYyk7CisgIGZyZWUoZmZ0X2ludl9zcGVjKTsKK30KKwordm9pZCBUaW1lUkZGVDMyKGludCBjb3VudCwgZmxvYXQgc2lnbmFsX3ZhbHVlLCBpbnQgc2lnbmFsX3R5cGUpIHsKKyAgaW50IGs7CisgIGludCBtYXhfb3JkZXIgPSAobWF4X2ZmdF9vcmRlciA+IE1BWF9GRlRfT1JERVJfRklYRURfUE9JTlQpCisgICAgICA/IE1BWF9GRlRfT1JERVJfRklYRURfUE9JTlQgOiBtYXhfZmZ0X29yZGVyOworCisgIGlmICh2ZXJib3NlID09IDApCisgICAgcHJpbnRmKCJSRkZUMzJcbiIpOworCisgIGZvciAoayA9IG1pbl9mZnRfb3JkZXI7IGsgPD0gbWF4X29yZGVyOyArK2spIHsKKyAgICBpbnQgdGVzdENvdW50ID0gQ29tcHV0ZUNvdW50KGNvdW50LCBrKTsKKyAgICBUaW1lT25lUkZGVDMyKHRlc3RDb3VudCwgaywgc2lnbmFsX3ZhbHVlLCBzaWduYWxfdHlwZSk7CisgIH0KK30KZGlmZiAtLWdpdCBhL2RsL3Rlc3QvdGVzdF9mbG9hdF9mZnQuYyBiL2RsL3Rlc3QvdGVzdF9mbG9hdF9mZnQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZWU1NWQ2Ci0tLSAvZGV2L251bGwKKysrIGIvZGwvdGVzdC90ZXN0X2Zsb2F0X2ZmdC5jCkBAIC0wLDAgKzEsMjMzIEBACisvKgorICogIENvcHlyaWdodCAoYykgMjAxMyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKworI2luY2x1ZGUgPG1hdGguaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHRpbWUuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKworI2luY2x1ZGUgImFsaWduZWRfcHRyLmgiCisjaW5jbHVkZSAiYXJtQ09NTS5oIgorI2luY2x1ZGUgImFybVNQLmgiCisjaW5jbHVkZSAiY29tcGFyZS5oIgorI2luY2x1ZGUgImdlbnNpZy5oIgorI2luY2x1ZGUgIm9teFNQLmgiCisjaW5jbHVkZSAidGVzdF91dGlsLmgiCisKKyNkZWZpbmUgTUFYX0ZGVF9PUkRFUiAgIFRXSURETEVfVEFCTEVfT1JERVIKKworaW50IHZlcmJvc2U7CisKK3ZvaWQgVGVzdEZsb2F0RkZUKGludCBmZnRfbG9nX3NpemUsIGludCBzaWd0eXBlLCBmbG9hdCBzaWduYWxfdmFsdWUpOworCit2b2lkIG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkgeworICBzdHJ1Y3QgT3B0aW9ucyBvcHRpb25zOworCisgIFNldERlZmF1bHRPcHRpb25zKCZvcHRpb25zLCAwLCBNQVhfRkZUX09SREVSKTsKKworICBQcm9jZXNzQ29tbWFuZExpbmUoJm9wdGlvbnMsIGFyZ2MsIGFyZ3YsCisgICAgICAgICAgICAgICAgICAgICAiVGVzdCBmb3J3YXJkIGFuZCBpbnZlcnNlIGZsb2F0aW5nLXBvaW50IEZGVFxuIik7CisKKyAgdmVyYm9zZSA9IG9wdGlvbnMudmVyYm9zZV87CisKKyAgaWYgKHZlcmJvc2UgPiAyNTUpCisgICAgRHVtcE9wdGlvbnMoc3RkZXJyLCAmb3B0aW9ucyk7CisKKyAgaWYgKG9wdGlvbnMudGVzdF9tb2RlXykgeworICAgIHN0cnVjdCBUZXN0SW5mbyBpbmZvOworCisgICAgaW5mby5yZWFsX29ubHlfID0gb3B0aW9ucy5yZWFsX29ubHlfOworICAgIGluZm8ubWF4X2ZmdF9vcmRlcl8gPSBvcHRpb25zLm1heF9mZnRfb3JkZXJfOworICAgIGluZm8ubWluX2ZmdF9vcmRlcl8gPSBvcHRpb25zLm1pbl9mZnRfb3JkZXJfOworICAgIGluZm8uZG9fZm9yd2FyZF90ZXN0c18gPSBvcHRpb25zLmRvX2ZvcndhcmRfdGVzdHNfOworICAgIGluZm8uZG9faW52ZXJzZV90ZXN0c18gPSBvcHRpb25zLmRvX2ludmVyc2VfdGVzdHNfOworICAgIC8qIE5vIGtub3duIGZhaWx1cmVzICovCisgICAgaW5mby5rbm93bl9mYWlsdXJlc18gPSAwOworCisgICAgaW5mby5mb3J3YXJkX3RocmVzaG9sZF8gPSAxMzguODE7CisgICAgaW5mby5pbnZlcnNlX3RocmVzaG9sZF8gPSAxMzguODE7CisgICAgUnVuQWxsVGVzdHMoJmluZm8pOworICB9IGVsc2UgeworICAgIFRlc3RGbG9hdEZGVChvcHRpb25zLmZmdF9sb2dfc2l6ZV8sCisgICAgICAgICAgICAgICAgIG9wdGlvbnMuc2lnbmFsX3R5cGVfLAorICAgICAgICAgICAgICAgICBvcHRpb25zLnNpZ25hbF92YWx1ZV8pOworICB9Cit9CisKK3ZvaWQgRHVtcEZGVFNwZWMoT01YRkZUU3BlY19DX0ZDMzIqIHBTcGVjKSB7CisgIEFSTXNGRlRTcGVjX0ZDMzIqIHAgPSAoQVJNc0ZGVFNwZWNfRkMzMiopIHBTcGVjOworICBwcmludGYoIiBOID0gJWRcbiIsIHAtPk4pOworICBwcmludGYoIiBwQml0UmV2ICA9ICVwXG4iLCBwLT5wQml0UmV2KTsKKyAgcHJpbnRmKCIgcFR3aWRkbGUgPSAlcFxuIiwgcC0+cFR3aWRkbGUpOworICBwcmludGYoIiBwQnVmICAgICA9ICVwXG4iLCBwLT5wQnVmKTsKK30KKwordm9pZCBHZW5lcmF0ZVNpZ25hbChPTVhfRkMzMiogeCwgT01YX0ZDMzIqIGZmdCwgaW50IHNpemUsIGludCBzaWduYWxfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgZmxvYXQgc2lnbmFsX3ZhbHVlKSB7CisgIEdlbmVyYXRlVGVzdFNpZ25hbEFuZEZGVCgoc3RydWN0IENvbXBsZXhGbG9hdCAqKSB4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cnVjdCBDb21wbGV4RmxvYXQgKikgZmZ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hbF90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmFsX3ZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMCk7Cit9CisKK3ZvaWQgVGVzdEZsb2F0RkZUKGludCBmZnRfbG9nX3NpemUsIGludCBzaWduYWxfdHlwZSwgZmxvYXQgc2lnbmFsX3ZhbHVlKSB7CisgIHN0cnVjdCBTbnJSZXN1bHQgc25yOworCisgIFJ1bk9uZUZvcndhcmRUZXN0KGZmdF9sb2dfc2l6ZSwgc2lnbmFsX3R5cGUsIHNpZ25hbF92YWx1ZSwgJnNucik7CisgIHByaW50ZigiRm9yd2FyZCBmbG9hdCBGRlRcbiIpOworICBwcmludGYoIlNOUjogIHJlYWwgcGFydCAgICAlZiBkQlxuIiwgc25yLnJlYWxfc25yXyk7CisgIHByaW50ZigiICAgICAgaW1hZyBwYXJ0ICAgICVmIGRCXG4iLCBzbnIuaW1hZ19zbnJfKTsKKyAgcHJpbnRmKCIgICAgICBjb21wbGV4IHBhcnQgJWYgZEJcbiIsIHNuci5jb21wbGV4X3Nucl8pOworCisgIFJ1bk9uZUludmVyc2VUZXN0KGZmdF9sb2dfc2l6ZSwgc2lnbmFsX3R5cGUsIHNpZ25hbF92YWx1ZSwgJnNucik7CisgIHByaW50ZigiSW52ZXJzZSBmbG9hdCBGRlRcbiIpOworICBwcmludGYoIlNOUjogIHJlYWwgcGFydCAgICAlZiBkQlxuIiwgc25yLnJlYWxfc25yXyk7CisgIHByaW50ZigiICAgICAgaW1hZyBwYXJ0ICAgICVmIGRCXG4iLCBzbnIuaW1hZ19zbnJfKTsKKyAgcHJpbnRmKCIgICAgICBjb21wbGV4IHBhcnQgJWYgZEJcbiIsIHNuci5jb21wbGV4X3Nucl8pOworfQorCitmbG9hdCBSdW5PbmVGb3J3YXJkVGVzdChpbnQgZmZ0X2xvZ19zaXplLCBpbnQgc2lnbmFsX3R5cGUsIGZsb2F0IHNpZ25hbF92YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBTbnJSZXN1bHQqIHNucikgeworICBPTVhfRkMzMiogeDsKKyAgT01YX0ZDMzIqIHk7CisgIHN0cnVjdCBBbGlnbmVkUHRyKiB4X2FsaWduZWQ7CisgIHN0cnVjdCBBbGlnbmVkUHRyKiB5X2FsaWduZWQ7CisKKyAgT01YX0ZDMzIqIHlfdHJ1ZTsKKworICBPTVhfSU5UIG4sIGZmdF9zcGVjX2J1ZmZlcl9zaXplOworICBPTVhSZXN1bHQgc3RhdHVzOworICBPTVhGRlRTcGVjX0NfRkMzMiAqIGZmdF9md2Rfc3BlYyA9IE5VTEw7CisgIGludCBmZnRfc2l6ZTsKKworICBmZnRfc2l6ZSA9IDEgPDwgZmZ0X2xvZ19zaXplOworCisgIHN0YXR1cyA9IG9teFNQX0ZGVEdldEJ1ZlNpemVfQ19GQzMyKGZmdF9sb2dfc2l6ZSwgJmZmdF9zcGVjX2J1ZmZlcl9zaXplKTsKKyAgaWYgKHZlcmJvc2UgPiA2MykgeworICAgIHByaW50ZigiZmZ0X3NwZWNfYnVmZmVyX3NpemUgPSAlZFxuIiwgZmZ0X3NwZWNfYnVmZmVyX3NpemUpOworICB9CisKKyAgZmZ0X2Z3ZF9zcGVjID0gKE9NWEZGVFNwZWNfQ19GQzMyKikgbWFsbG9jKGZmdF9zcGVjX2J1ZmZlcl9zaXplKTsKKyAgc3RhdHVzID0gb214U1BfRkZUSW5pdF9DX0ZDMzIoZmZ0X2Z3ZF9zcGVjLCBmZnRfbG9nX3NpemUpOworICBpZiAoc3RhdHVzKSB7CisgICAgZnByaW50ZihzdGRlcnIsCisgICAgICAgICAgICAiRmFpbGVkIHRvIGluaXQgZm9yd2FyZCBGRlQ6ICBzdGF0dXMgPSAlZCwgb3JkZXIgJWQgXG4iLAorICAgICAgICAgICAgc3RhdHVzLCBmZnRfbG9nX3NpemUpOworICAgIGV4aXQoMSk7CisgIH0KKworICB4X2FsaWduZWQgPSBBbGxvY0FsaWduZWRQb2ludGVyKDMyLCBzaXplb2YoKngpICogZmZ0X3NpemUpOworICB5X2FsaWduZWQgPSBBbGxvY0FsaWduZWRQb2ludGVyKDMyLCBzaXplb2YoKnkpICogKGZmdF9zaXplICsgMikpOworICB5X3RydWUgPSAoT01YX0ZDMzIqKSBtYWxsb2Moc2l6ZW9mKCp5X3RydWUpICogZmZ0X3NpemUpOworCisgIHggPSB4X2FsaWduZWQtPmFsaWduZWRfcG9pbnRlcl87CisgIHkgPSB5X2FsaWduZWQtPmFsaWduZWRfcG9pbnRlcl87CisKKyAgR2VuZXJhdGVTaWduYWwoeCwgeV90cnVlLCBmZnRfc2l6ZSwgc2lnbmFsX3R5cGUsIHNpZ25hbF92YWx1ZSk7CisKKyAgaWYgKHZlcmJvc2UgPiA2MykgeworICAgIHByaW50ZigiU2lnbmFsXG4iKTsKKyAgICBEdW1wQXJyYXlDb21wbGV4RmxvYXQoIngiLCBmZnRfc2l6ZSwgeCk7CisKKyAgICBwcmludGYoIkV4cGVjdGVkIEZGVCBvdXRwdXRcbiIpOworICAgIER1bXBBcnJheUNvbXBsZXhGbG9hdCgieSIsIGZmdF9zaXplLCB5X3RydWUpOworICB9CisKKyAgc3RhdHVzID0gb214U1BfRkZURndkX0NUb0NfRkMzMl9TZnMoeCwgeSwgZmZ0X2Z3ZF9zcGVjKTsKKyAgaWYgKHN0YXR1cykgeworICAgIGZwcmludGYoc3RkZXJyLCAiRm9yd2FyZCBGRlQgZmFpbGVkOiBzdGF0dXMgPSAlZFxuIiwgc3RhdHVzKTsKKyAgICBleGl0KDEpOworICB9CisKKyAgaWYgKHZlcmJvc2UgPiA2MykgeworICAgIHByaW50ZigiRkZUIE91dHB1dFxuIik7CisgICAgRHVtcEFycmF5Q29tcGxleEZsb2F0KCJ5IiwgZmZ0X3NpemUsIHkpOworICB9CisKKyAgQ29tcGFyZUNvbXBsZXhGbG9hdChzbnIsIHksIHlfdHJ1ZSwgZmZ0X3NpemUpOworCisgIEZyZWVBbGlnbmVkUG9pbnRlcih4X2FsaWduZWQpOworICBGcmVlQWxpZ25lZFBvaW50ZXIoeV9hbGlnbmVkKTsKKyAgZnJlZShmZnRfZndkX3NwZWMpOworCisgIHJldHVybiBzbnItPmNvbXBsZXhfc25yXzsKK30KKworZmxvYXQgUnVuT25lSW52ZXJzZVRlc3QoaW50IGZmdF9sb2dfc2l6ZSwgaW50IHNpZ25hbF90eXBlLCBmbG9hdCBzaWduYWxfdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgU25yUmVzdWx0KiBzbnIpIHsKKyAgT01YX0ZDMzIqIHg7CisgIE9NWF9GQzMyKiB5OworICBPTVhfRkMzMiogejsKKworICBzdHJ1Y3QgQWxpZ25lZFB0ciogeF9hbGlnbmVkOworICBzdHJ1Y3QgQWxpZ25lZFB0ciogeV9hbGlnbmVkOworICBzdHJ1Y3QgQWxpZ25lZFB0ciogel9hbGlnbmVkOworCisgIE9NWF9JTlQgbiwgZmZ0X3NwZWNfYnVmZmVyX3NpemU7CisgIE9NWFJlc3VsdCBzdGF0dXM7CisgIE9NWEZGVFNwZWNfQ19GQzMyICogZmZ0X2Z3ZF9zcGVjID0gTlVMTDsKKyAgT01YRkZUU3BlY19DX0ZDMzIgKiBmZnRfaW52X3NwZWMgPSBOVUxMOworICBpbnQgZmZ0X3NpemU7CisKKyAgZmZ0X3NpemUgPSAxIDw8IGZmdF9sb2dfc2l6ZTsKKworICBzdGF0dXMgPSBvbXhTUF9GRlRHZXRCdWZTaXplX0NfRkMzMihmZnRfbG9nX3NpemUsICZmZnRfc3BlY19idWZmZXJfc2l6ZSk7CisgIGlmICh2ZXJib3NlID4gMykgeworICAgIHByaW50ZigiZmZ0X3NwZWNfYnVmZmVyX3NpemUgPSAlZFxuIiwgZmZ0X3NwZWNfYnVmZmVyX3NpemUpOworICB9CisKKyAgZmZ0X2ludl9zcGVjID0gKE9NWEZGVFNwZWNfQ19GQzMyKiltYWxsb2MoZmZ0X3NwZWNfYnVmZmVyX3NpemUpOworICBzdGF0dXMgPSBvbXhTUF9GRlRJbml0X0NfRkMzMihmZnRfaW52X3NwZWMsIGZmdF9sb2dfc2l6ZSk7CisgIGlmIChzdGF0dXMpIHsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0byBpbml0IGJhY2t3YXJkIEZGVDogIHN0YXR1cyA9ICVkLCBvcmRlciAlZFxuIiwKKyAgICAgICAgICAgIHN0YXR1cywgZmZ0X2xvZ19zaXplKTsKKyAgICBleGl0KDEpOworICB9CisKKyAgeF9hbGlnbmVkID0gQWxsb2NBbGlnbmVkUG9pbnRlcigzMiwgc2l6ZW9mKCp4KSAqIGZmdF9zaXplKTsKKyAgeV9hbGlnbmVkID0gQWxsb2NBbGlnbmVkUG9pbnRlcigzMiwgc2l6ZW9mKCp5KSAqIChmZnRfc2l6ZSArIDIpKTsKKyAgel9hbGlnbmVkID0gQWxsb2NBbGlnbmVkUG9pbnRlcigzMiwgc2l6ZW9mKCp6KSAqIGZmdF9zaXplKTsKKyAgeCA9IHhfYWxpZ25lZC0+YWxpZ25lZF9wb2ludGVyXzsKKyAgeSA9IHlfYWxpZ25lZC0+YWxpZ25lZF9wb2ludGVyXzsKKyAgeiA9IHpfYWxpZ25lZC0+YWxpZ25lZF9wb2ludGVyXzsKKworICBHZW5lcmF0ZVNpZ25hbCh4LCB5LCBmZnRfc2l6ZSwgc2lnbmFsX3R5cGUsIHNpZ25hbF92YWx1ZSk7CisKKyAgaWYgKHZlcmJvc2UgPiA2MykgeworICAgIHByaW50ZigiSW52ZXJzZSBGRlQgSW5wdXQgU2lnbmFsXG4iKTsKKyAgICBEdW1wQXJyYXlDb21wbGV4RmxvYXQoIngiLCBmZnRfc2l6ZSwgeSk7CisKKyAgICBwcmludGYoIkV4cGVjdGVkIEludmVyc2UgRkZUIG91dHB1dFxuIik7CisgICAgRHVtcEFycmF5Q29tcGxleEZsb2F0KCJ4IiwgZmZ0X3NpemUsIHgpOworICB9CisKKyAgc3RhdHVzID0gb214U1BfRkZUSW52X0NUb0NfRkMzMl9TZnMoeSwgeiwgZmZ0X2ludl9zcGVjKTsKKyAgaWYgKHN0YXR1cykgeworICAgIGZwcmludGYoc3RkZXJyLCAiSW52ZXJzZSBGRlQgZmFpbGVkOiBzdGF0dXMgPSAlZFxuIiwgc3RhdHVzKTsKKyAgICBleGl0KDEpOworICB9CisKKyAgaWYgKHZlcmJvc2UgPiA2MykgeworICAgIHByaW50ZigiQWN0dWFsIEludmVyc2UgRkZUIE91dHB1dFxuIik7CisgICAgRHVtcEFycmF5Q29tcGxleEZsb2F0KCJ6IiwgZmZ0X3NpemUsIHopOworICB9CisKKyAgQ29tcGFyZUNvbXBsZXhGbG9hdChzbnIsIHosIHgsIGZmdF9zaXplKTsKKworICBGcmVlQWxpZ25lZFBvaW50ZXIoeF9hbGlnbmVkKTsKKyAgRnJlZUFsaWduZWRQb2ludGVyKHlfYWxpZ25lZCk7CisgIEZyZWVBbGlnbmVkUG9pbnRlcih6X2FsaWduZWQpOworICBmcmVlKGZmdF9pbnZfc3BlYyk7CisKKyAgcmV0dXJuIHNuci0+Y29tcGxleF9zbnJfOworfQpkaWZmIC0tZ2l0IGEvZGwvdGVzdC90ZXN0X2Zsb2F0X3JmZnQuYyBiL2RsL3Rlc3QvdGVzdF9mbG9hdF9yZmZ0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODg1MGVmNAotLS0gL2Rldi9udWxsCisrKyBiL2RsL3Rlc3QvdGVzdF9mbG9hdF9yZmZ0LmMKQEAgLTAsMCArMSwyNzMgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworCisjaW5jbHVkZSA8bWF0aC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dGltZS5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCisjaW5jbHVkZSAiYWxpZ25lZF9wdHIuaCIKKyNpbmNsdWRlICJhcm1DT01NLmgiCisjaW5jbHVkZSAiYXJtU1AuaCIKKyNpbmNsdWRlICJjb21wYXJlLmgiCisjaW5jbHVkZSAiZ2Vuc2lnLmgiCisjaW5jbHVkZSAib214U1AuaCIKKyNpbmNsdWRlICJ0ZXN0X3V0aWwuaCIKKworI2RlZmluZSBNQVhfRkZUX09SREVSICAgVFdJRERMRV9UQUJMRV9PUkRFUgorCisvKgorICogVmVyYm9zaXR5IG9mIG91dHB1dC4gIEhpZ2hlciB2YWx1ZXMgbWVhbnMgbW9yZSB2ZXJib3NlIG91dHB1dCBmb3IKKyAqIGRlYnVnZ2luZy4KKyAqLworaW50IHZlcmJvc2U7CisKK3ZvaWQgVGVzdEZsb2F0RkZUKGludCBmZnRfbG9nX3NpemUsIGludCBzaWd0eXBlLCBmbG9hdCBzaWduYWxfdmFsdWUpOworCit2b2lkIG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkgeworICBzdHJ1Y3QgT3B0aW9ucyBvcHRpb25zOworCisgIFNldERlZmF1bHRPcHRpb25zKCZvcHRpb25zLCAxLCBNQVhfRkZUX09SREVSKTsKKworICBvcHRpb25zLnNpZ25hbF92YWx1ZV8gPSAxMDI0OworCisgIFByb2Nlc3NDb21tYW5kTGluZSgmb3B0aW9ucywgYXJnYywgYXJndiwKKyAgICAgICAgICAgICAgICAgICAgICJUZXN0IGZvcndhcmQgYW5kIGludmVyc2UgcmVhbCBmbG9hdGluZy1wb2ludCBGRlRcbiIpOworCisgIHZlcmJvc2UgPSBvcHRpb25zLnZlcmJvc2VfOworCisgIGlmICh2ZXJib3NlID4gMjU1KQorICAgIER1bXBPcHRpb25zKHN0ZGVyciwgJm9wdGlvbnMpOworCisgIGlmIChvcHRpb25zLnRlc3RfbW9kZV8pIHsKKyAgICBzdHJ1Y3QgVGVzdEluZm8gaW5mbzsKKworICAgIGluZm8ucmVhbF9vbmx5XyA9IG9wdGlvbnMucmVhbF9vbmx5XzsKKyAgICBpbmZvLm1pbl9mZnRfb3JkZXJfID0gb3B0aW9ucy5taW5fZmZ0X29yZGVyXzsKKyAgICBpbmZvLm1heF9mZnRfb3JkZXJfID0gb3B0aW9ucy5tYXhfZmZ0X29yZGVyXzsKKyAgICBpbmZvLmRvX2ZvcndhcmRfdGVzdHNfID0gb3B0aW9ucy5kb19mb3J3YXJkX3Rlc3RzXzsKKyAgICBpbmZvLmRvX2ludmVyc2VfdGVzdHNfID0gb3B0aW9ucy5kb19pbnZlcnNlX3Rlc3RzXzsKKyAgICAvKiBObyBrbm93biBmYWlsdXJlcyAqLworICAgIGluZm8ua25vd25fZmFpbHVyZXNfID0gMDsKKyNpZmRlZiBCSUdfRkZUX1RBQkxFCisgICAgaW5mby5mb3J3YXJkX3RocmVzaG9sZF8gPSAxMzYuMDc7CisgICAgaW5mby5pbnZlcnNlX3RocmVzaG9sZF8gPSAxNDAuNzY7CisjZWxzZQorICAgIGluZm8uZm9yd2FyZF90aHJlc2hvbGRfID0gMTM2LjA3OworICAgIGluZm8uaW52ZXJzZV90aHJlc2hvbGRfID0gMTQyLjQxOworI2VuZGlmCisgICAgUnVuQWxsVGVzdHMoJmluZm8pOworICB9IGVsc2UgeworICAgIFRlc3RGbG9hdEZGVChvcHRpb25zLmZmdF9sb2dfc2l6ZV8sCisgICAgICAgICAgICAgICAgIG9wdGlvbnMuc2lnbmFsX3R5cGVfLAorICAgICAgICAgICAgICAgICBvcHRpb25zLnNpZ25hbF92YWx1ZV8pOworICB9Cit9CisKKy8qIEJyaWVmbHkgcHJpbnQgb3V0IHRoZSBjb250ZW50cyBvZiB0aGUgRkZUIHNwZWMgKi8KK3ZvaWQgRHVtcEZGVFNwZWMoT01YRkZUU3BlY19SX0YzMiogcFNwZWMpIHsKKyAgQVJNc0ZGVFNwZWNfUl9GQzMyKiBwID0gKEFSTXNGRlRTcGVjX1JfRkMzMiopIHBTcGVjOworICBwcmludGYoIiBOID0gJWRcbiIsIHAtPk4pOworICBwcmludGYoIiBwQml0UmV2ICA9ICVwXG4iLCBwLT5wQml0UmV2KTsKKyAgcHJpbnRmKCIgcFR3aWRkbGUgPSAlcFxuIiwgcC0+cFR3aWRkbGUpOworICBwcmludGYoIiBwQnVmICAgICA9ICVwXG4iLCBwLT5wQnVmKTsKK30KKworLyoKKyAqIEdlbmVyYXRlIGEgc2lnbmFsIGFuZCB0aGUgY29ycmVzcG9uZGluZyB0aGVvcmV0aWNhbCBGRlQKKyAqLwordm9pZCBHZW5lcmF0ZVNpZ25hbChPTVhfRjMyKiB4LCBPTVhfRkMzMiogZmZ0LCBpbnQgc2l6ZSwgaW50IHNpZ25hbF90eXBlLAorICAgICAgICAgICAgICAgICAgICBmbG9hdCBzaWduYWxfdmFsdWUpIHsKKyAgaW50IGs7CisgIHN0cnVjdCBDb21wbGV4RmxvYXQgKnRlc3Rfc2lnbmFsOworICBzdHJ1Y3QgQ29tcGxleEZsb2F0ICp0cnVlX2ZmdDsKKworICB0ZXN0X3NpZ25hbCA9IChzdHJ1Y3QgQ29tcGxleEZsb2F0KikgbWFsbG9jKHNpemVvZigqdGVzdF9zaWduYWwpICogc2l6ZSk7CisgIHRydWVfZmZ0ID0gKHN0cnVjdCBDb21wbGV4RmxvYXQqKSBtYWxsb2Moc2l6ZW9mKCp0cnVlX2ZmdCkgKiBzaXplKTsKKyAgR2VuZXJhdGVUZXN0U2lnbmFsQW5kRkZUKHRlc3Rfc2lnbmFsLCB0cnVlX2ZmdCwgc2l6ZSwgc2lnbmFsX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduYWxfdmFsdWUsIDEpOworCisgIC8qCisgICAqIENvbnZlcnQgdGhlIGNvbXBsZXggcmVzdWx0IHRvIHdoYXQgd2Ugd2FudAorICAgKi8KKworICBmb3IgKGsgPSAwOyBrIDwgc2l6ZTsgKytrKSB7CisgICAgeFtrXSA9IHRlc3Rfc2lnbmFsW2tdLlJlOworICB9CisKKyAgZm9yIChrID0gMDsgayA8IHNpemUgLyAyICsgMTsgKytrKSB7CisgICAgZmZ0W2tdLlJlID0gdHJ1ZV9mZnRba10uUmU7CisgICAgZmZ0W2tdLkltID0gdHJ1ZV9mZnRba10uSW07CisgIH0KKworICBmcmVlKHRlc3Rfc2lnbmFsKTsKKyAgZnJlZSh0cnVlX2ZmdCk7Cit9CisKKy8qCisgKiBSdW4gb25lIHRlc3Qgb2YgdGhlIGZvcndhcmQgYW5kIGludmVyc2UgRkZUIGZvciB0aGUgc3BlY2lmaWVkIEZGVAorICogc2l6ZSwgc2lnbmFsIHR5cGUgYW5kIGFtcGxpdHVkZQorICovCit2b2lkIFRlc3RGbG9hdEZGVChpbnQgZmZ0X2xvZ19zaXplLCBpbnQgc2lnbmFsX3R5cGUsIGZsb2F0IHNpZ25hbF92YWx1ZSkgeworICBzdHJ1Y3QgU25yUmVzdWx0IHNucjsKKworICBSdW5PbmVGb3J3YXJkVGVzdChmZnRfbG9nX3NpemUsIHNpZ25hbF90eXBlLCBzaWduYWxfdmFsdWUsICZzbnIpOworICBwcmludGYoIkZvcndhcmQgZmxvYXQgRkZUXG4iKTsKKyAgcHJpbnRmKCJTTlI6ICByZWFsIHBhcnQgICAgJWYgZEJcbiIsIHNuci5yZWFsX3Nucl8pOworICBwcmludGYoIiAgICAgIGltYWcgcGFydCAgICAlZiBkQlxuIiwgc25yLmltYWdfc25yXyk7CisgIHByaW50ZigiICAgICAgY29tcGxleCBwYXJ0ICVmIGRCXG4iLCBzbnIuY29tcGxleF9zbnJfKTsKKworICBSdW5PbmVJbnZlcnNlVGVzdChmZnRfbG9nX3NpemUsIHNpZ25hbF90eXBlLCBzaWduYWxfdmFsdWUsICZzbnIpOworICBwcmludGYoIkludmVyc2UgZmxvYXQgRkZUXG4iKTsKKyAgcHJpbnRmKCJTTlI6ICAlZiBkQlxuIiwgc25yLnJlYWxfc25yXyk7Cit9CisKKy8qIFJ1biBvbmUgZm9yd2FyZCBGRlQgdGVzdCBpbiB0ZXN0IG1vZGUgKi8KK2Zsb2F0IFJ1bk9uZUZvcndhcmRUZXN0KGludCBmZnRfbG9nX3NpemUsIGludCBzaWduYWxfdHlwZSwgZmxvYXQgc2lnbmFsX3ZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IFNuclJlc3VsdCogc25yKSB7CisgIE9NWF9GMzIqIHg7CisgIE9NWF9GQzMyKiB5OworICBzdHJ1Y3QgQWxpZ25lZFB0ciogeF9hbGlnbmVkOworICBzdHJ1Y3QgQWxpZ25lZFB0ciogeV9hbGlnbmVkOworCisgIE9NWF9GQzMyKiB5X3RydWU7CisKKyAgT01YX0lOVCBuOworICBPTVhfSU5UIGZmdF9zcGVjX2J1ZmZlcl9zaXplOworICBPTVhSZXN1bHQgc3RhdHVzOworICBPTVhGRlRTcGVjX1JfRjMyICogZmZ0X2Z3ZF9zcGVjID0gTlVMTDsKKyAgaW50IGZmdF9zaXplOworCisgIGZmdF9zaXplID0gMSA8PCBmZnRfbG9nX3NpemU7CisKKyAgc3RhdHVzID0gb214U1BfRkZUR2V0QnVmU2l6ZV9SX0YzMihmZnRfbG9nX3NpemUsICZmZnRfc3BlY19idWZmZXJfc2l6ZSk7CisgIGlmICh2ZXJib3NlID4gNjMpIHsKKyAgICBwcmludGYoImZmdF9zcGVjX2J1ZmZlcl9zaXplID0gJWRcbiIsIGZmdF9zcGVjX2J1ZmZlcl9zaXplKTsKKyAgfQorCisgIGZmdF9md2Rfc3BlYyA9IChPTVhGRlRTcGVjX1JfRjMyKikgbWFsbG9jKGZmdF9zcGVjX2J1ZmZlcl9zaXplKTsKKyAgc3RhdHVzID0gb214U1BfRkZUSW5pdF9SX0YzMihmZnRfZndkX3NwZWMsIGZmdF9sb2dfc2l6ZSk7CisgIGlmIChzdGF0dXMpIHsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0byBpbml0IGZvcndhcmQgRkZUOiAgc3RhdHVzID0gJWRcbiIsIHN0YXR1cyk7CisgICAgZXhpdCgxKTsKKyAgfQorCisgIHhfYWxpZ25lZCA9IEFsbG9jQWxpZ25lZFBvaW50ZXIoMzIsIHNpemVvZigqeCkgKiBmZnRfc2l6ZSk7CisgIHlfYWxpZ25lZCA9IEFsbG9jQWxpZ25lZFBvaW50ZXIoMzIsIHNpemVvZigqeSkgKiAoZmZ0X3NpemUgKyAyKSk7CisgIHggPSB4X2FsaWduZWQtPmFsaWduZWRfcG9pbnRlcl87CisgIHkgPSB5X2FsaWduZWQtPmFsaWduZWRfcG9pbnRlcl87CisgIHlfdHJ1ZSA9IChPTVhfRkMzMiopIG1hbGxvYyhzaXplb2YoKnlfdHJ1ZSkgKiAoZmZ0X3NpemUgLyAyICsgMSkpOworCisgIEdlbmVyYXRlU2lnbmFsKHgsIHlfdHJ1ZSwgZmZ0X3NpemUsIHNpZ25hbF90eXBlLCBzaWduYWxfdmFsdWUpOworCisgIGlmICh2ZXJib3NlID4gNjMpIHsKKyAgICBwcmludGYoIlNpZ25hbFxuIik7CisgICAgRHVtcEFycmF5RmxvYXQoIngiLCBmZnRfc2l6ZSwgeCk7CisKKyAgICBwcmludGYoIkV4cGVjdGVkIEZGVCBvdXRwdXRcbiIpOworICAgIER1bXBBcnJheUNvbXBsZXhGbG9hdCgieSIsIGZmdF9zaXplIC8gMiwgeV90cnVlKTsKKyAgfQorCisgIHN0YXR1cyA9IG9teFNQX0ZGVEZ3ZF9SVG9DQ1NfRjMyX1Nmcyh4LCAoT01YX0YzMiopIHksIGZmdF9md2Rfc3BlYyk7CisgIGlmIChzdGF0dXMpIHsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIkZvcndhcmQgRkZUIGZhaWxlZDogc3RhdHVzID0gJWRcbiIsIHN0YXR1cyk7CisgICAgZXhpdCgxKTsKKyAgfQorCisgIGlmICh2ZXJib3NlID4gNjMpIHsKKyAgICBwcmludGYoIkZGVCBPdXRwdXRcbiIpOworICAgIER1bXBBcnJheUNvbXBsZXhGbG9hdCgieSIsIGZmdF9zaXplIC8gMiwgeSk7CisgIH0KKworICBDb21wYXJlQ29tcGxleEZsb2F0KHNuciwgeSwgeV90cnVlLCBmZnRfc2l6ZSAvIDIgKyAxKTsKKworICBGcmVlQWxpZ25lZFBvaW50ZXIoeF9hbGlnbmVkKTsKKyAgRnJlZUFsaWduZWRQb2ludGVyKHlfYWxpZ25lZCk7CisgIGZyZWUoeV90cnVlKTsKKyAgZnJlZShmZnRfZndkX3NwZWMpOworCisgIHJldHVybiBzbnItPmNvbXBsZXhfc25yXzsKK30KKworLyogUnVuIG9uZSBpbnZlcnNlIEZGVCB0ZXN0IGluIHRlc3QgbW9kZSAqLworZmxvYXQgUnVuT25lSW52ZXJzZVRlc3QoaW50IGZmdF9sb2dfc2l6ZSwgaW50IHNpZ25hbF90eXBlLCBmbG9hdCBzaWduYWxfdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgU25yUmVzdWx0KiBzbnIpIHsKKyAgT01YX0YzMiogeDsKKyAgT01YX0ZDMzIqIHk7CisgIE9NWF9GMzIqIHo7CisgIHN0cnVjdCBBbGlnbmVkUHRyKiB4X2FsaWduZWQ7CisgIHN0cnVjdCBBbGlnbmVkUHRyKiB5X2FsaWduZWQ7CisgIHN0cnVjdCBBbGlnbmVkUHRyKiB6X2FsaWduZWQ7CisKKyAgT01YX0ZDMzIqIHlUcnVlOworICBzdHJ1Y3QgQWxpZ25lZFB0ciogeVRydWVBbGlnbmVkOworCisgIE9NWF9JTlQgbjsKKyAgT01YX0lOVCBmZnRfc3BlY19idWZmZXJfc2l6ZTsKKyAgT01YUmVzdWx0IHN0YXR1czsKKyAgT01YRkZUU3BlY19SX0YzMiAqIGZmdF9md2Rfc3BlYyA9IE5VTEw7CisgIE9NWEZGVFNwZWNfUl9GMzIgKiBmZnRfaW52X3NwZWMgPSBOVUxMOworICBpbnQgZmZ0X3NpemU7CisKKyAgZmZ0X3NpemUgPSAxIDw8IGZmdF9sb2dfc2l6ZTsKKworICBzdGF0dXMgPSBvbXhTUF9GRlRHZXRCdWZTaXplX1JfRjMyKGZmdF9sb2dfc2l6ZSwgJmZmdF9zcGVjX2J1ZmZlcl9zaXplKTsKKyAgaWYgKHZlcmJvc2UgPiAzKSB7CisgICAgcHJpbnRmKCJmZnRfc3BlY19idWZmZXJfc2l6ZSA9ICVkXG4iLCBmZnRfc3BlY19idWZmZXJfc2l6ZSk7CisgIH0KKworICBmZnRfaW52X3NwZWMgPSAoT01YRkZUU3BlY19SX0YzMiopbWFsbG9jKGZmdF9zcGVjX2J1ZmZlcl9zaXplKTsKKyAgc3RhdHVzID0gb214U1BfRkZUSW5pdF9SX0YzMihmZnRfaW52X3NwZWMsIGZmdF9sb2dfc2l6ZSk7CisgIGlmIChzdGF0dXMpIHsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0byBpbml0IGJhY2t3YXJkIEZGVDogIHN0YXR1cyA9ICVkXG4iLCBzdGF0dXMpOworICAgIGV4aXQoMSk7CisgIH0KKworICB4X2FsaWduZWQgPSBBbGxvY0FsaWduZWRQb2ludGVyKDMyLCBzaXplb2YoKngpICogZmZ0X3NpemUpOworICB5X2FsaWduZWQgPSBBbGxvY0FsaWduZWRQb2ludGVyKDMyLCBzaXplb2YoKnkpICogKGZmdF9zaXplIC8gMiArIDEpKTsKKyAgel9hbGlnbmVkID0gQWxsb2NBbGlnbmVkUG9pbnRlcigzMiwgc2l6ZW9mKCp6KSAqIGZmdF9zaXplKTsKKyAgeVRydWVBbGlnbmVkID0gQWxsb2NBbGlnbmVkUG9pbnRlcigzMiwgc2l6ZW9mKCp5KSAqIChmZnRfc2l6ZSAvIDIgKyAxKSk7CisgIHggPSB4X2FsaWduZWQtPmFsaWduZWRfcG9pbnRlcl87CisgIHkgPSB5X2FsaWduZWQtPmFsaWduZWRfcG9pbnRlcl87CisgIHogPSB6X2FsaWduZWQtPmFsaWduZWRfcG9pbnRlcl87CisgIHlUcnVlID0geVRydWVBbGlnbmVkLT5hbGlnbmVkX3BvaW50ZXJfOworCisgIEdlbmVyYXRlU2lnbmFsKHgsIHlUcnVlLCBmZnRfc2l6ZSwgc2lnbmFsX3R5cGUsIHNpZ25hbF92YWx1ZSk7CisKKyAgaWYgKHZlcmJvc2UgPiA2MykgeworICAgIHByaW50ZigiSW52ZXJzZSBGRlQgSW5wdXQgU2lnbmFsXG4iKTsKKyAgICBEdW1wQXJyYXlDb21wbGV4RmxvYXQoInkiLCBmZnRfc2l6ZSAvIDIsIHlUcnVlKTsKKworICAgIHByaW50ZigiRXhwZWN0ZWQgSW52ZXJzZSBGRlQgb3V0cHV0XG4iKTsKKyAgICBEdW1wQXJyYXlGbG9hdCgieCIsIGZmdF9zaXplLCB4KTsKKyAgfQorCisgIHN0YXR1cyA9IG9teFNQX0ZGVEludl9DQ1NUb1JfRjMyX1NmcygoT01YX0YzMiAqKSB5VHJ1ZSwgeiwgZmZ0X2ludl9zcGVjKTsKKyAgaWYgKHN0YXR1cykgeworICAgIGZwcmludGYoc3RkZXJyLCAiSW52ZXJzZSBGRlQgZmFpbGVkOiBzdGF0dXMgPSAlZFxuIiwgc3RhdHVzKTsKKyAgICBleGl0KDEpOworICB9CisKKyAgaWYgKHZlcmJvc2UgPiA2MykgeworICAgIHByaW50ZigiQWN0dWFsIEludmVyc2UgRkZUIE91dHB1dFxuIik7CisgICAgRHVtcEFycmF5RmxvYXQoInoiLCBmZnRfc2l6ZSwgeik7CisgIH0KKworICBDb21wYXJlRmxvYXQoc25yLCB6LCB4LCBmZnRfc2l6ZSk7CisKKyAgRnJlZUFsaWduZWRQb2ludGVyKHhfYWxpZ25lZCk7CisgIEZyZWVBbGlnbmVkUG9pbnRlcih5X2FsaWduZWQpOworICBGcmVlQWxpZ25lZFBvaW50ZXIoel9hbGlnbmVkKTsKKyAgRnJlZUFsaWduZWRQb2ludGVyKHlUcnVlQWxpZ25lZCk7CisgIGZyZWUoZmZ0X2ludl9zcGVjKTsKKworICByZXR1cm4gc25yLT5yZWFsX3Nucl87Cit9CmRpZmYgLS1naXQgYS9kbC90ZXN0L3Rlc3RfcmZmdDE2LmMgYi9kbC90ZXN0L3Rlc3RfcmZmdDE2LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGFjZjJlMgotLS0gL2Rldi9udWxsCisrKyBiL2RsL3Rlc3QvdGVzdF9yZmZ0MTYuYwpAQCAtMCwwICsxLDI0NiBAQAorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHRpbWUuaD4KKyNpbmNsdWRlIDxtYXRoLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKyNpbmNsdWRlICJhbGlnbmVkX3B0ci5oIgorI2luY2x1ZGUgImFybVNQLmgiCisjaW5jbHVkZSAiY29tcGFyZS5oIgorI2luY2x1ZGUgImdlbnNpZy5oIgorI2luY2x1ZGUgIm9teFNQLmgiCisjaW5jbHVkZSAidGVzdF91dGlsLmgiCisKK2ludCB2ZXJib3NlOworaW50IHNpZ25hbF92YWx1ZTsKKworI2RlZmluZSBNQVhfRkZUX09SREVSICAgMTIKKwordm9pZCBUZXN0RkZUKGludCBmZnRfbG9nX3NpemUsIGludCBzaWduYWxfdHlwZSwgaW50IHNjYWxlX2ZhY3Rvcik7CisKK3ZvaWQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKSB7CisgIHN0cnVjdCBPcHRpb25zIG9wdGlvbnM7CisKKyAgU2V0RGVmYXVsdE9wdGlvbnMoJm9wdGlvbnMsIDEsIE1BWF9GRlRfT1JERVIpOworCisgIFByb2Nlc3NDb21tYW5kTGluZSgmb3B0aW9ucywgYXJnYywgYXJndiwKKyAgICAgICAgICAgICAgICAgICAgICJUZXN0IGZvcndhcmQgYW5kIGludmVyc2UgcmVhbCAxNi1iaXQgZml4ZWQtcG9pbnQgRkZUXG4iKTsKKworICB2ZXJib3NlID0gb3B0aW9ucy52ZXJib3NlXzsKKyAgc2lnbmFsX3ZhbHVlID0gb3B0aW9ucy5zaWduYWxfdmFsdWVfOworCisgIGlmICh2ZXJib3NlID4gMjU1KQorICAgIER1bXBPcHRpb25zKHN0ZGVyciwgJm9wdGlvbnMpOworCisgIGlmIChvcHRpb25zLnRlc3RfbW9kZV8pIHsKKyAgICBzdHJ1Y3QgVGVzdEluZm8gaW5mbzsKKworICAgIGluZm8ucmVhbF9vbmx5XyA9IG9wdGlvbnMucmVhbF9vbmx5XzsKKyAgICBpbmZvLm1heF9mZnRfb3JkZXJfID0gb3B0aW9ucy5tYXhfZmZ0X29yZGVyXzsKKyAgICBpbmZvLm1pbl9mZnRfb3JkZXJfID0gb3B0aW9ucy5taW5fZmZ0X29yZGVyXzsKKyAgICBpbmZvLmRvX2ZvcndhcmRfdGVzdHNfID0gb3B0aW9ucy5kb19mb3J3YXJkX3Rlc3RzXzsKKyAgICBpbmZvLmRvX2ludmVyc2VfdGVzdHNfID0gb3B0aW9ucy5kb19pbnZlcnNlX3Rlc3RzXzsKKyAgICAvKiBObyBrbm93biBmYWlsdXJlcyAqLworICAgIGluZm8ua25vd25fZmFpbHVyZXNfID0gMDsKKyAgICBpbmZvLmZvcndhcmRfdGhyZXNob2xkXyA9IDkwLjEyOworICAgIGluZm8uaW52ZXJzZV90aHJlc2hvbGRfID0gODkuMjg7CisgICAgc2lnbmFsX3ZhbHVlID0gMzI3Njc7CisgICAgUnVuQWxsVGVzdHMoJmluZm8pOworICB9IGVsc2UgeworICAgIFRlc3RGRlQob3B0aW9ucy5mZnRfbG9nX3NpemVfLAorICAgICAgICAgICAgb3B0aW9ucy5zaWduYWxfdHlwZV8sCisgICAgICAgICAgICBvcHRpb25zLnNjYWxlX2ZhY3Rvcl8pOworICB9Cit9CisKK3ZvaWQgR2VuZXJhdGVTaWduYWwoT01YX1MxNiogeCwgT01YX1NDMzIqIGZmdCwgaW50IHNpemUsIGludCBzaWduYWxfdHlwZSkgeworICBpbnQgazsKKyAgc3RydWN0IENvbXBsZXhGbG9hdCAqdGVzdF9zaWduYWw7CisgIHN0cnVjdCBDb21wbGV4RmxvYXQgKnRydWVfZmZ0OworCisgIHRlc3Rfc2lnbmFsID0gKHN0cnVjdCBDb21wbGV4RmxvYXQqKSBtYWxsb2Moc2l6ZW9mKCp0ZXN0X3NpZ25hbCkgKiBzaXplKTsKKyAgdHJ1ZV9mZnQgPSAoc3RydWN0IENvbXBsZXhGbG9hdCopIG1hbGxvYyhzaXplb2YoKnRydWVfZmZ0KSAqIHNpemUpOworICBHZW5lcmF0ZVRlc3RTaWduYWxBbmRGRlQodGVzdF9zaWduYWwsIHRydWVfZmZ0LCBzaXplLCBzaWduYWxfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hbF92YWx1ZSwgMSk7CisKKyAgLyoKKyAgICogQ29udmVydCB0aGUgY29tcGxleCByZXN1bHQgdG8gd2hhdCB3ZSB3YW50CisgICAqLworCisgIGZvciAoayA9IDA7IGsgPCBzaXplOyArK2spIHsKKyAgICB4W2tdID0gdGVzdF9zaWduYWxba10uUmU7CisgIH0KKworICBmb3IgKGsgPSAwOyBrIDwgc2l6ZSAvIDIgKyAxOyArK2spIHsKKyAgICBmZnRba10uUmUgPSB0cnVlX2ZmdFtrXS5SZTsKKyAgICBmZnRba10uSW0gPSB0cnVlX2ZmdFtrXS5JbTsKKyAgfQorCisgIGZyZWUodGVzdF9zaWduYWwpOworICBmcmVlKHRydWVfZmZ0KTsKK30KKwordm9pZCBUZXN0RkZUKGludCBmZnRfbG9nX3NpemUsIGludCBzaWduYWxfdHlwZSwgaW50IHNjYWxlX2ZhY3RvcikgeworICBzdHJ1Y3QgU25yUmVzdWx0IHNucjsKKworICBSdW5PbmVGb3J3YXJkVGVzdChmZnRfbG9nX3NpemUsIHNpZ25hbF90eXBlLCBzaWduYWxfdmFsdWUsICZzbnIpOworICBwcmludGYoIkZvcndhcmQgZmxvYXQgRkZUXG4iKTsKKyAgcHJpbnRmKCJTTlI6ICByZWFsIHBhcnQgICAgJWYgZEJcbiIsIHNuci5yZWFsX3Nucl8pOworICBwcmludGYoIiAgICAgIGltYWcgcGFydCAgICAlZiBkQlxuIiwgc25yLmltYWdfc25yXyk7CisgIHByaW50ZigiICAgICAgY29tcGxleCBwYXJ0ICVmIGRCXG4iLCBzbnIuY29tcGxleF9zbnJfKTsKKworICBSdW5PbmVJbnZlcnNlVGVzdChmZnRfbG9nX3NpemUsIHNpZ25hbF90eXBlLCBzaWduYWxfdmFsdWUsICZzbnIpOworICBwcmludGYoIkludmVyc2UgZmxvYXQgRkZUXG4iKTsKKyAgcHJpbnRmKCJTTlI6ICAlZiBkQlxuIiwgc25yLnJlYWxfc25yXyk7Cit9CisKK2Zsb2F0IFJ1bk9uZUZvcndhcmRUZXN0KGludCBmZnRfbG9nX3NpemUsIGludCBzaWduYWxfdHlwZSwgZmxvYXQgc2lnbmFsX3ZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IFNuclJlc3VsdCogc25yKSB7CisgIE9NWF9TMTYqIHg7CisgIE9NWF9TQzMyKiB5OworCisgIHN0cnVjdCBBbGlnbmVkUHRyKiB4X2FsaWduZWQ7CisgIHN0cnVjdCBBbGlnbmVkUHRyKiB5X2FsaWduZWQ7CisKKyAgT01YX1NDMzIqIHlfdHJ1ZTsKKworICBPTVhfSU5UIG4sIGZmdF9zcGVjX2J1ZmZlcl9zaXplOworICBPTVhSZXN1bHQgc3RhdHVzOworICBPTVhGRlRTcGVjX1JfUzE2UzMyICogZmZ0X2Z3ZF9zcGVjID0gTlVMTDsKKyAgaW50IGZmdF9zaXplOworCisgIGZmdF9zaXplID0gMSA8PCBmZnRfbG9nX3NpemU7CisKKyAgc3RhdHVzID0gb214U1BfRkZUR2V0QnVmU2l6ZV9SX1MxNlMzMihmZnRfbG9nX3NpemUsICZmZnRfc3BlY19idWZmZXJfc2l6ZSk7CisgIGlmICh2ZXJib3NlID4gNjMpIHsKKyAgICBwcmludGYoImZmdF9zcGVjX2J1ZmZlcl9zaXplID0gJWRcbiIsIGZmdF9zcGVjX2J1ZmZlcl9zaXplKTsKKyAgfQorCisgIGZmdF9md2Rfc3BlYyA9IChPTVhGRlRTcGVjX1JfUzE2UzMyKikgbWFsbG9jKGZmdF9zcGVjX2J1ZmZlcl9zaXplKTsKKyAgc3RhdHVzID0gb214U1BfRkZUSW5pdF9SX1MxNlMzMihmZnRfZndkX3NwZWMsIGZmdF9sb2dfc2l6ZSk7CisgIGlmIChzdGF0dXMpIHsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0byBpbml0IGZvcndhcmQgRkZUOiAgc3RhdHVzID0gJWRcbiIsIHN0YXR1cyk7CisgICAgZXhpdCgxKTsKKyAgfQorCisgIHhfYWxpZ25lZCA9IEFsbG9jQWxpZ25lZFBvaW50ZXIoMzIsIHNpemVvZigqeCkgKiBmZnRfc2l6ZSk7CisgIHlfYWxpZ25lZCA9IEFsbG9jQWxpZ25lZFBvaW50ZXIoMzIsIHNpemVvZigqeSkgKiAoZmZ0X3NpemUgKyAyKSk7CisgIHlfdHJ1ZSA9IChPTVhfU0MzMiopIG1hbGxvYyhzaXplb2YoKnlfdHJ1ZSkgKiAoZmZ0X3NpemUgLyAyICsgMSkpOworCisgIHggPSB4X2FsaWduZWQtPmFsaWduZWRfcG9pbnRlcl87CisgIHkgPSB5X2FsaWduZWQtPmFsaWduZWRfcG9pbnRlcl87CisKKyAgR2VuZXJhdGVTaWduYWwoeCwgeV90cnVlLCBmZnRfc2l6ZSwgc2lnbmFsX3R5cGUpOworCisgIGlmICh2ZXJib3NlID4gNjMpIHsKKyAgICBwcmludGYoIlNpZ25hbFxuIik7CisgICAgRHVtcEFycmF5UmVhbDE2KCJ4IiwgZmZ0X3NpemUsIHgpOworCisgICAgcHJpbnRmKCJFeHBlY3RlZCBGRlQgb3V0cHV0XG4iKTsKKyAgICBEdW1wQXJyYXlDb21wbGV4MzIoInkiLCBmZnRfc2l6ZSAvIDIsIHlfdHJ1ZSk7CisgIH0KKworICBzdGF0dXMgPSBvbXhTUF9GRlRGd2RfUlRvQ0NTX1MxNlMzMl9TZnMoeCwgKE9NWF9TMzIqKSB5LCBmZnRfZndkX3NwZWMsIDApOworICBpZiAoc3RhdHVzKSB7CisgICAgZnByaW50ZihzdGRlcnIsICJGb3J3YXJkIEZGVCBmYWlsZWQ6IHN0YXR1cyA9ICVkXG4iLCBzdGF0dXMpOworICAgIGV4aXQoMSk7CisgIH0KKworICBpZiAodmVyYm9zZSA+IDYzKSB7CisgICAgcHJpbnRmKCJGRlQgT3V0cHV0XG4iKTsKKyAgICBEdW1wQXJyYXlDb21wbGV4MzIoInkiLCBmZnRfc2l6ZSAvIDIsIHkpOworICB9CisKKyAgQ29tcGFyZUNvbXBsZXgzMihzbnIsIHksIHlfdHJ1ZSwgZmZ0X3NpemUgLyAyICsgMSk7CisKKyAgRnJlZUFsaWduZWRQb2ludGVyKHhfYWxpZ25lZCk7CisgIEZyZWVBbGlnbmVkUG9pbnRlcih5X2FsaWduZWQpOworICBmcmVlKGZmdF9md2Rfc3BlYyk7CisKKyAgcmV0dXJuIHNuci0+Y29tcGxleF9zbnJfOworfQorCitmbG9hdCBSdW5PbmVJbnZlcnNlVGVzdChpbnQgZmZ0X2xvZ19zaXplLCBpbnQgc2lnbmFsX3R5cGUsIGZsb2F0IHNpZ25hbF92YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBTbnJSZXN1bHQqIHNucikgeworICBPTVhfUzE2KiB4OworICBPTVhfU0MzMiogeTsKKyAgT01YX1MxNiogejsKKyAgT01YX1NDMzIqIHlfdHJ1ZTsKKworICBzdHJ1Y3QgQWxpZ25lZFB0ciogeF9hbGlnbmVkOworICBzdHJ1Y3QgQWxpZ25lZFB0ciogeV9hbGlnbmVkOworICBzdHJ1Y3QgQWxpZ25lZFB0ciogel9hbGlnbmVkOworICBzdHJ1Y3QgQWxpZ25lZFB0ciogeV90cnVlX2FsaWduZWQ7CisKKyAgT01YX0lOVCBuOworICBPTVhfSU5UIGZmdF9zcGVjX2J1ZmZlcl9zaXplOworICBPTVhSZXN1bHQgc3RhdHVzOworICBPTVhGRlRTcGVjX1JfUzE2UzMyICogZmZ0X2ludl9zcGVjID0gTlVMTDsKKyAgaW50IGZmdF9zaXplOworCisgIGZmdF9zaXplID0gMSA8PCBmZnRfbG9nX3NpemU7CisKKyAgc3RhdHVzID0gb214U1BfRkZUR2V0QnVmU2l6ZV9SX1MxNlMzMihmZnRfbG9nX3NpemUsICZmZnRfc3BlY19idWZmZXJfc2l6ZSk7CisgIGlmICh2ZXJib3NlID4gMykgeworICAgIHByaW50ZigiZmZ0X3NwZWNfYnVmZmVyX3NpemUgPSAlZFxuIiwgZmZ0X3NwZWNfYnVmZmVyX3NpemUpOworICB9CisKKyAgZmZ0X2ludl9zcGVjID0gKE9NWEZGVFNwZWNfUl9TMTZTMzIqKW1hbGxvYyhmZnRfc3BlY19idWZmZXJfc2l6ZSk7CisgIHN0YXR1cyA9IG9teFNQX0ZGVEluaXRfUl9TMTZTMzIoZmZ0X2ludl9zcGVjLCBmZnRfbG9nX3NpemUpOworICBpZiAoc3RhdHVzKSB7CisgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gaW5pdCBiYWNrd2FyZCBGRlQ6ICBzdGF0dXMgPSAlZFxuIiwgc3RhdHVzKTsKKyAgICBleGl0KDEpOworICB9CisKKyAgeF9hbGlnbmVkID0gQWxsb2NBbGlnbmVkUG9pbnRlcigzMiwgc2l6ZW9mKCp4KSAqIGZmdF9zaXplKTsKKyAgeV9hbGlnbmVkID0gQWxsb2NBbGlnbmVkUG9pbnRlcigzMiwgc2l6ZW9mKCp5KSAqIChmZnRfc2l6ZSAvIDIgKyAxKSk7CisgIHpfYWxpZ25lZCA9IEFsbG9jQWxpZ25lZFBvaW50ZXIoMzIsIHNpemVvZigqeikgKiBmZnRfc2l6ZSk7CisgIHlfdHJ1ZV9hbGlnbmVkID0gQWxsb2NBbGlnbmVkUG9pbnRlcigzMiwgc2l6ZW9mKCp5KSAqIChmZnRfc2l6ZSAvIDIgKyAxKSk7CisKKyAgeCA9IHhfYWxpZ25lZC0+YWxpZ25lZF9wb2ludGVyXzsKKyAgeSA9IHlfYWxpZ25lZC0+YWxpZ25lZF9wb2ludGVyXzsKKyAgeiA9IHpfYWxpZ25lZC0+YWxpZ25lZF9wb2ludGVyXzsKKyAgeV90cnVlID0geV90cnVlX2FsaWduZWQtPmFsaWduZWRfcG9pbnRlcl87CisKKyAgR2VuZXJhdGVTaWduYWwoeCwgeV90cnVlLCBmZnRfc2l6ZSwgc2lnbmFsX3R5cGUpOworCisgIGlmICh2ZXJib3NlID4gNjMpIHsKKyAgICBwcmludGYoIkludmVyc2UgRkZUIElucHV0IFNpZ25hbFxuIik7CisgICAgRHVtcEFycmF5Q29tcGxleDMyKCJ5IiwgZmZ0X3NpemUgLyAyLCB5X3RydWUpOworCisgICAgcHJpbnRmKCJFeHBlY3RlZCBJbnZlcnNlIEZGVCBvdXRwdXRcbiIpOworICAgIER1bXBBcnJheVJlYWwxNigieCIsIGZmdF9zaXplLCB4KTsKKyAgfQorCisgIHN0YXR1cyA9IG9teFNQX0ZGVEludl9DQ1NUb1JfUzMyUzE2X1NmcygoT01YX1MzMiopIHlfdHJ1ZSwgeiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZmdF9pbnZfc3BlYywgMCk7CisgIGlmIChzdGF0dXMpIHsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIkludmVyc2UgRkZUIGZhaWxlZDogc3RhdHVzID0gJWRcbiIsIHN0YXR1cyk7CisgICAgZXhpdCgxKTsKKyAgfQorCisgIGlmICh2ZXJib3NlID4gNjMpIHsKKyAgICBwcmludGYoIkFjdHVhbCBJbnZlcnNlIEZGVCBPdXRwdXRcbiIpOworICAgIER1bXBBcnJheVJlYWwxNigieCIsIGZmdF9zaXplLCB6KTsKKyAgfQorCisgIENvbXBhcmVSZWFsMTYoc25yLCB6LCB4LCBmZnRfc2l6ZSk7CisKKyAgRnJlZUFsaWduZWRQb2ludGVyKHhfYWxpZ25lZCk7CisgIEZyZWVBbGlnbmVkUG9pbnRlcih5X2FsaWduZWQpOworICBGcmVlQWxpZ25lZFBvaW50ZXIoel9hbGlnbmVkKTsKKyAgRnJlZUFsaWduZWRQb2ludGVyKHlfdHJ1ZV9hbGlnbmVkKTsKKyAgZnJlZShmZnRfaW52X3NwZWMpOworCisgIHJldHVybiBzbnItPnJlYWxfc25yXzsKK30KZGlmZiAtLWdpdCBhL2RsL3Rlc3QvdGVzdF9yZmZ0MzIuYyBiL2RsL3Rlc3QvdGVzdF9yZmZ0MzIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZDliZWFiCi0tLSAvZGV2L251bGwKKysrIGIvZGwvdGVzdC90ZXN0X3JmZnQzMi5jCkBAIC0wLDAgKzEsMjUwIEBACisvKgorICogIENvcHlyaWdodCAoYykgMjAxMyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dGltZS5oPgorI2luY2x1ZGUgPG1hdGguaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKworI2luY2x1ZGUgImFsaWduZWRfcHRyLmgiCisjaW5jbHVkZSAiYXJtU1AuaCIKKyNpbmNsdWRlICJjb21wYXJlLmgiCisjaW5jbHVkZSAiZ2Vuc2lnLmgiCisjaW5jbHVkZSAib214U1AuaCIKKyNpbmNsdWRlICJ0ZXN0X3V0aWwuaCIKKworaW50IHZlcmJvc2U7CitpbnQgc2lnbmFsX3ZhbHVlOworCisjZGVmaW5lIE1BWF9GRlRfT1JERVIgICAxMgorCit2b2lkIFRlc3RGRlQoaW50IGZmdF9sb2dfc2l6ZSwgaW50IHNpZ25hbF90eXBlLCBpbnQgc2NhbGVfZmFjdG9yKTsKKwordm9pZCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pIHsKKyAgc3RydWN0IE9wdGlvbnMgb3B0aW9uczsKKworICBTZXREZWZhdWx0T3B0aW9ucygmb3B0aW9ucywgMSwgTUFYX0ZGVF9PUkRFUik7CisKKyAgUHJvY2Vzc0NvbW1hbmRMaW5lKCZvcHRpb25zLCBhcmdjLCBhcmd2LAorICAgICAgICAgICAgICAgICAgICAgIlRlc3QgZm9yd2FyZCBhbmQgaW52ZXJzZSByZWFsIDMyLWJpdCBmaXhlZC1wb2ludCBGRlRcbiIpOworCisgIHZlcmJvc2UgPSBvcHRpb25zLnZlcmJvc2VfOworICBzaWduYWxfdmFsdWUgPSBvcHRpb25zLnNpZ25hbF92YWx1ZV87CisKKyAgaWYgKHZlcmJvc2UgPiAyNTUpCisgICAgRHVtcE9wdGlvbnMoc3RkZXJyLCAmb3B0aW9ucyk7CisKKyAgaWYgKG9wdGlvbnMudGVzdF9tb2RlXykgeworICAgIHN0cnVjdCBUZXN0SW5mbyBpbmZvOworCisgICAgaW5mby5yZWFsX29ubHlfID0gb3B0aW9ucy5yZWFsX29ubHlfOworICAgIGluZm8ubWluX2ZmdF9vcmRlcl8gPSBvcHRpb25zLm1pbl9mZnRfb3JkZXJfOworICAgIGluZm8ubWF4X2ZmdF9vcmRlcl8gPSBvcHRpb25zLm1heF9mZnRfb3JkZXJfOworICAgIGluZm8uZG9fZm9yd2FyZF90ZXN0c18gPSBvcHRpb25zLmRvX2ZvcndhcmRfdGVzdHNfOworICAgIGluZm8uZG9faW52ZXJzZV90ZXN0c18gPSBvcHRpb25zLmRvX2ludmVyc2VfdGVzdHNfOworICAgIC8qIE5vIGtub3duIGZhaWx1cmVzICovCisgICAgaW5mby5rbm93bl9mYWlsdXJlc18gPSAwOworICAgIC8qIFRoZXNlIHRocmVzaG9sZHMgYXJlIHNldCBmb3IgdGhlIGRlZmF1bHQgc2lnbmFsX3ZhbHVlIGJlbG93ICovCisgICAgaW5mby5mb3J3YXJkX3RocmVzaG9sZF8gPSAxMDUuOTQ7CisgICAgaW5mby5pbnZlcnNlX3RocmVzaG9sZF8gPSAxMDQuNjI7CisgICAgaWYgKCFvcHRpb25zLnNpZ25hbF92YWx1ZV9naXZlbl8pIHsKKyAgICAgIHNpZ25hbF92YWx1ZSA9IDI2MjE0NDsKKyAgICB9CisgICAgUnVuQWxsVGVzdHMoJmluZm8pOworICB9IGVsc2UgeworICAgIFRlc3RGRlQob3B0aW9ucy5mZnRfbG9nX3NpemVfLAorICAgICAgICAgICAgb3B0aW9ucy5zaWduYWxfdHlwZV8sCisgICAgICAgICAgICBvcHRpb25zLnNjYWxlX2ZhY3Rvcl8pOworICB9Cit9CisKK3ZvaWQgR2VuZXJhdGVTaWduYWwoT01YX1MzMiogeCwgT01YX1NDMzIqIGZmdCwgaW50IHNpemUsIGludCBzaWduYWxfdHlwZSkgeworICBpbnQgazsKKyAgc3RydWN0IENvbXBsZXhGbG9hdCAqdGVzdF9zaWduYWw7CisgIHN0cnVjdCBDb21wbGV4RmxvYXQgKnRydWVfZmZ0OworCisgIHRlc3Rfc2lnbmFsID0gKHN0cnVjdCBDb21wbGV4RmxvYXQqKSBtYWxsb2Moc2l6ZW9mKCp0ZXN0X3NpZ25hbCkgKiBzaXplKTsKKyAgdHJ1ZV9mZnQgPSAoc3RydWN0IENvbXBsZXhGbG9hdCopIG1hbGxvYyhzaXplb2YoKnRydWVfZmZ0KSAqIHNpemUpOworICBHZW5lcmF0ZVRlc3RTaWduYWxBbmRGRlQodGVzdF9zaWduYWwsIHRydWVfZmZ0LCBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmFsX3R5cGUsIHNpZ25hbF92YWx1ZSwgMSk7CisKKyAgLyoKKyAgICogQ29udmVydCB0aGUgY29tcGxleCByZXN1bHQgdG8gd2hhdCB3ZSB3YW50CisgICAqLworCisgIGZvciAoayA9IDA7IGsgPCBzaXplOyArK2spIHsKKyAgICB4W2tdID0gMC41ICsgdGVzdF9zaWduYWxba10uUmU7CisgIH0KKworICBmb3IgKGsgPSAwOyBrIDwgc2l6ZSAvIDIgKyAxOyArK2spIHsKKyAgICBmZnRba10uUmUgPSAwLjUgKyB0cnVlX2ZmdFtrXS5SZTsKKyAgICBmZnRba10uSW0gPSAwLjUgKyB0cnVlX2ZmdFtrXS5JbTsKKyAgfQorCisgIGZyZWUodGVzdF9zaWduYWwpOworICBmcmVlKHRydWVfZmZ0KTsKK30KKwordm9pZCBUZXN0RkZUKGludCBmZnRfbG9nX3NpemUsIGludCBzaWduYWxfdHlwZSwgaW50IHNjYWxlX2ZhY3RvcikgeworICBzdHJ1Y3QgU25yUmVzdWx0IHNucjsKKworICBSdW5PbmVGb3J3YXJkVGVzdChmZnRfbG9nX3NpemUsIHNpZ25hbF90eXBlLCBzaWduYWxfdmFsdWUsICZzbnIpOworICBwcmludGYoIkZvcndhcmQgZmxvYXQgRkZUXG4iKTsKKyAgcHJpbnRmKCJTTlI6ICByZWFsIHBhcnQgICAgJWYgZEJcbiIsIHNuci5yZWFsX3Nucl8pOworICBwcmludGYoIiAgICAgIGltYWcgcGFydCAgICAlZiBkQlxuIiwgc25yLmltYWdfc25yXyk7CisgIHByaW50ZigiICAgICAgY29tcGxleCBwYXJ0ICVmIGRCXG4iLCBzbnIuY29tcGxleF9zbnJfKTsKKworICBSdW5PbmVJbnZlcnNlVGVzdChmZnRfbG9nX3NpemUsIHNpZ25hbF90eXBlLCBzaWduYWxfdmFsdWUsICZzbnIpOworICBwcmludGYoIkludmVyc2UgZmxvYXQgRkZUXG4iKTsKKyAgcHJpbnRmKCJTTlI6ICAlZiBkQlxuIiwgc25yLnJlYWxfc25yXyk7Cit9CisKK2Zsb2F0IFJ1bk9uZUZvcndhcmRUZXN0KGludCBmZnRfbG9nX3NpemUsIGludCBzaWduYWxfdHlwZSwgZmxvYXQgc2lnbmFsX3ZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IFNuclJlc3VsdCogc25yKSB7CisgIE9NWF9TMzIqIHg7CisgIE9NWF9TQzMyKiB5OworCisgIHN0cnVjdCBBbGlnbmVkUHRyKiB4X2FsaWduZWQ7CisgIHN0cnVjdCBBbGlnbmVkUHRyKiB5X2FsaWduZWQ7CisKKyAgT01YX1NDMzIqIHlfdHJ1ZTsKKworICBPTVhfSU5UIG4sIGZmdF9zcGVjX2J1ZmZlcl9zaXplOworICBPTVhSZXN1bHQgc3RhdHVzOworICBPTVhGRlRTcGVjX1JfUzMyICogcEZ3ZFNwZWMgPSBOVUxMOworICBpbnQgZmZ0X3NpemU7CisKKyAgZmZ0X3NpemUgPSAxIDw8IGZmdF9sb2dfc2l6ZTsKKworICBzdGF0dXMgPSBvbXhTUF9GRlRHZXRCdWZTaXplX1JfUzMyKGZmdF9sb2dfc2l6ZSwgJmZmdF9zcGVjX2J1ZmZlcl9zaXplKTsKKyAgaWYgKHZlcmJvc2UgPiA2MykgeworICAgIHByaW50ZigiZmZ0X3NwZWNfYnVmZmVyX3NpemUgPSAlZFxuIiwgZmZ0X3NwZWNfYnVmZmVyX3NpemUpOworICB9CisKKyAgcEZ3ZFNwZWMgPSAoT01YRkZUU3BlY19SX1MzMiopIG1hbGxvYyhmZnRfc3BlY19idWZmZXJfc2l6ZSk7CisgIHN0YXR1cyA9IG9teFNQX0ZGVEluaXRfUl9TMzIocEZ3ZFNwZWMsIGZmdF9sb2dfc2l6ZSk7CisgIGlmIChzdGF0dXMpIHsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0byBpbml0IGZvcndhcmQgRkZUOiAgc3RhdHVzID0gJWRcbiIsIHN0YXR1cyk7CisgICAgZXhpdCgxKTsKKyAgfQorCisgIHhfYWxpZ25lZCA9IEFsbG9jQWxpZ25lZFBvaW50ZXIoMzIsIHNpemVvZigqeCkgKiBmZnRfc2l6ZSk7CisgIHlfYWxpZ25lZCA9IEFsbG9jQWxpZ25lZFBvaW50ZXIoMzIsIHNpemVvZigqeSkgKiAoZmZ0X3NpemUgKyAyKSk7CisgIHlfdHJ1ZSA9IChPTVhfU0MzMiopIG1hbGxvYyhzaXplb2YoKnlfdHJ1ZSkgKiAoZmZ0X3NpemUgLyAyICsgMSkpOworCisgIHggPSB4X2FsaWduZWQtPmFsaWduZWRfcG9pbnRlcl87CisgIHkgPSB5X2FsaWduZWQtPmFsaWduZWRfcG9pbnRlcl87CisKKyAgR2VuZXJhdGVTaWduYWwoeCwgeV90cnVlLCBmZnRfc2l6ZSwgc2lnbmFsX3R5cGUpOworCisgIGlmICh2ZXJib3NlID4gNjMpIHsKKyAgICBwcmludGYoIlNpZ25hbFxuIik7CisgICAgRHVtcEFycmF5UmVhbDMyKCJ4IiwgZmZ0X3NpemUsIHgpOworCisgICAgcHJpbnRmKCJFeHBlY3RlZCBGRlQgb3V0cHV0XG4iKTsKKyAgICBEdW1wQXJyYXlDb21wbGV4MzIoInkiLCBmZnRfc2l6ZSAvIDIsIHlfdHJ1ZSk7CisgIH0KKworICBzdGF0dXMgPSBvbXhTUF9GRlRGd2RfUlRvQ0NTX1MzMl9TZnMoeCwgKE9NWF9TMzIqKSB5LCBwRndkU3BlYywgMCk7CisgIGlmIChzdGF0dXMpIHsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIkZvcndhcmQgRkZUIGZhaWxlZDogc3RhdHVzID0gJWRcbiIsIHN0YXR1cyk7CisgICAgZXhpdCgxKTsKKyAgfQorCisgIGlmICh2ZXJib3NlID4gNjMpIHsKKyAgICBwcmludGYoIkZGVCBPdXRwdXRcbiIpOworICAgIER1bXBBcnJheUNvbXBsZXgzMigieSIsIGZmdF9zaXplIC8gMiwgeSk7CisgIH0KKworICBDb21wYXJlQ29tcGxleDMyKHNuciwgeSwgeV90cnVlLCBmZnRfc2l6ZSAvIDIgKyAxKTsKKworICBGcmVlQWxpZ25lZFBvaW50ZXIoeF9hbGlnbmVkKTsKKyAgRnJlZUFsaWduZWRQb2ludGVyKHlfYWxpZ25lZCk7CisgIGZyZWUoeV90cnVlKTsKKyAgZnJlZShwRndkU3BlYyk7CisKKyAgcmV0dXJuIHNuci0+Y29tcGxleF9zbnJfOworfQorCitmbG9hdCBSdW5PbmVJbnZlcnNlVGVzdChpbnQgZmZ0X2xvZ19zaXplLCBpbnQgc2lnbmFsX3R5cGUsIGZsb2F0IHNpZ25hbF92YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBTbnJSZXN1bHQqIHNucikgeworICBPTVhfUzMyKiB4OworICBPTVhfU0MzMiogeTsKKyAgT01YX1MzMiogejsKKyAgT01YX1NDMzIqIHlfdHJ1ZTsKKworICBzdHJ1Y3QgQWxpZ25lZFB0ciogeF9hbGlnbmVkOworICBzdHJ1Y3QgQWxpZ25lZFB0ciogeV9hbGlnbmVkOworICBzdHJ1Y3QgQWxpZ25lZFB0ciogel9hbGlnbmVkOworICBzdHJ1Y3QgQWxpZ25lZFB0ciogeV90cnVlX2FsaWduZWQ7CisKKyAgT01YX0lOVCBuLCBmZnRfc3BlY19idWZmZXJfc2l6ZTsKKyAgT01YUmVzdWx0IHN0YXR1czsKKyAgT01YRkZUU3BlY19SX1MzMiAqIHBGd2RTcGVjID0gTlVMTDsKKyAgT01YRkZUU3BlY19SX1MzMiAqIHBJbnZTcGVjID0gTlVMTDsKKyAgaW50IGZmdF9zaXplOworCisgIGZmdF9zaXplID0gMSA8PCBmZnRfbG9nX3NpemU7CisKKyAgc3RhdHVzID0gb214U1BfRkZUR2V0QnVmU2l6ZV9SX1MzMihmZnRfbG9nX3NpemUsICZmZnRfc3BlY19idWZmZXJfc2l6ZSk7CisgIGlmICh2ZXJib3NlID4gMykgeworICAgIHByaW50ZigiZmZ0X3NwZWNfYnVmZmVyX3NpemUgPSAlZFxuIiwgZmZ0X3NwZWNfYnVmZmVyX3NpemUpOworICB9CisKKyAgcEludlNwZWMgPSAoT01YRkZUU3BlY19SX1MzMiopbWFsbG9jKGZmdF9zcGVjX2J1ZmZlcl9zaXplKTsKKyAgc3RhdHVzID0gb214U1BfRkZUSW5pdF9SX1MzMihwSW52U3BlYywgZmZ0X2xvZ19zaXplKTsKKyAgaWYgKHN0YXR1cykgeworICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIGluaXQgYmFja3dhcmQgRkZUOiAgc3RhdHVzID0gJWRcbiIsIHN0YXR1cyk7CisgICAgZXhpdCgxKTsKKyAgfQorCisgIHhfYWxpZ25lZCA9IEFsbG9jQWxpZ25lZFBvaW50ZXIoMzIsIHNpemVvZigqeCkgKiBmZnRfc2l6ZSk7CisgIHlfYWxpZ25lZCA9IEFsbG9jQWxpZ25lZFBvaW50ZXIoMzIsIHNpemVvZigqeSkgKiAoZmZ0X3NpemUgLyAyICsgMSkpOworICB6X2FsaWduZWQgPSBBbGxvY0FsaWduZWRQb2ludGVyKDMyLCBzaXplb2YoKnopICogZmZ0X3NpemUpOworICB5X3RydWVfYWxpZ25lZCA9IEFsbG9jQWxpZ25lZFBvaW50ZXIoMzIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoKnlfdHJ1ZSkgKiAoZmZ0X3NpemUgLyAyICsgMSkpOworCisgIHggPSB4X2FsaWduZWQtPmFsaWduZWRfcG9pbnRlcl87CisgIHkgPSB5X2FsaWduZWQtPmFsaWduZWRfcG9pbnRlcl87CisgIHogPSB6X2FsaWduZWQtPmFsaWduZWRfcG9pbnRlcl87CisgIHlfdHJ1ZSA9IHlfdHJ1ZV9hbGlnbmVkLT5hbGlnbmVkX3BvaW50ZXJfOworCisgIEdlbmVyYXRlU2lnbmFsKHgsIHlfdHJ1ZSwgZmZ0X3NpemUsIHNpZ25hbF90eXBlKTsKKworICBpZiAodmVyYm9zZSA+IDYzKSB7CisgICAgcHJpbnRmKCJJbnZlcnNlIEZGVCBJbnB1dCBTaWduYWxcbiIpOworICAgIER1bXBBcnJheUNvbXBsZXgzMigieSIsIGZmdF9zaXplIC8gMiwgeV90cnVlKTsKKworICAgIHByaW50ZigiRXhwZWN0ZWQgSW52ZXJzZSBGRlQgb3V0cHV0XG4iKTsKKyAgICBEdW1wQXJyYXlSZWFsMzIoIngiLCBmZnRfc2l6ZSwgeCk7CisgIH0KKworICBzdGF0dXMgPSBvbXhTUF9GRlRJbnZfQ0NTVG9SX1MzMl9TZnMoKE9NWF9TMzIqKSB5X3RydWUsIHosIHBJbnZTcGVjLCAwKTsKKyAgaWYgKHN0YXR1cykgeworICAgIGZwcmludGYoc3RkZXJyLCAiSW52ZXJzZSBGRlQgZmFpbGVkOiBzdGF0dXMgPSAlZFxuIiwgc3RhdHVzKTsKKyAgICBleGl0KDEpOworICB9CisKKyAgaWYgKHZlcmJvc2UgPiA2MykgeworICAgIHByaW50ZigiQWN0dWFsIEludmVyc2UgRkZUIE91dHB1dFxuIik7CisgICAgRHVtcEFycmF5UmVhbDMyKCJ4IiwgZmZ0X3NpemUsIHopOworICB9CisKKyAgQ29tcGFyZVJlYWwzMihzbnIsIHosIHgsIGZmdF9zaXplKTsKKworICBGcmVlQWxpZ25lZFBvaW50ZXIoeF9hbGlnbmVkKTsKKyAgRnJlZUFsaWduZWRQb2ludGVyKHlfYWxpZ25lZCk7CisgIEZyZWVBbGlnbmVkUG9pbnRlcih6X2FsaWduZWQpOworICBGcmVlQWxpZ25lZFBvaW50ZXIoeV90cnVlX2FsaWduZWQpOworICBmcmVlKHBJbnZTcGVjKTsKKworICByZXR1cm4gc25yLT5yZWFsX3Nucl87Cit9CmRpZmYgLS1naXQgYS9kbC90ZXN0L3Rlc3RfdXRpbC5jIGIvZGwvdGVzdC90ZXN0X3V0aWwuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDEyNzU0Ci0tLSAvZGV2L251bGwKKysrIGIvZGwvdGVzdC90ZXN0X3V0aWwuYwpAQCAtMCwwICsxLDM5OCBAQAorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCisjaW5jbHVkZSAiYXJtU1AuaCIKKyNpbmNsdWRlICJjb21wYXJlLmgiCisjaW5jbHVkZSAidGVzdF91dGlsLmgiCisKKy8qCisgKiBUZXN0IHJlc3VscyBmcm9tIHJ1bm5pbmcgZWl0aGVyIGZvcndhcmQgb3IgaW52ZXJzZSBGRlQgdGVzdHMKKyAqLworc3RydWN0IFRlc3RSZXN1bHQgeworICAvKiBOdW1iZXIgb2YgdGVzdHMgdGhhdCBmYWlsZWQgKi8KKyAgaW50IGZhaWxlZF9jb3VudF87CisKKyAgLyogTnVtYmVyIG9mIHRlc3RzIHJ1biAqLworICBpbnQgdGVzdF9jb3VudF87CisKKyAgLyogTnVtYmVyIG9mIHRlc3RzIHRoYXQgd2VyZSBleHBlY3RlZCB0byBmYWlsICovCisgIGludCBleHBlY3RlZF9mYWlsdXJlX2NvdW50XzsKKworICAvKiBUaGUgbWluaW11bSBTTlIgZm91bmQgZm9yIGFsbCBvZiB0aGUgdGVzdHMgKi8KKyAgZmxvYXQgbWluX3Nucl87Cit9OworCisvKgorICogUmV0dXJuIHRoZSBwcm9ncmFtIG5hbWUsIGZ1ciB1c2FnZSBtZXNzYWdlcyBhbmQgZGVidWdnaW5nCisgKi8KK2NoYXIqIFByb2dyYW1OYW1lKGNoYXIqIGFyZ3YwKSB7CisgIGNoYXIqIHNsYXNoID0gc3RycmNocihhcmd2MCwgJy8nKTsKKworICByZXR1cm4gc2xhc2ggPyBzbGFzaCArIDEgOiBhcmd2MDsKK30KKworLyoKKyAqIFByaW50IHVzYWdlIG1lc3NhZ2UgZm9yIHRoZSBjb21tYW5kIGxpbmUgb3B0aW9ucy4KKyAqLwordm9pZCB1c2FnZShjaGFyKiBwcm9nLCBpbnQgcmVhbF9vbmx5LCBpbnQgbWF4X2ZmdF9vcmRlciwgY29uc3QgY2hhciAqc3VtbWFyeSkgeworICBmcHJpbnRmKHN0ZGVyciwgIlxuJXM6IFstaFRGSV0gWy1uIGxvZ3NpemVdIFstcyBzY2FsZV0gWy1nIHNpZ25hbC10eXBlXSAiCisgICAgICAgICAgIlstUyBzaWduYWwgdmFsdWVdXG5cdFx0Wy12IHZlcmJvc2VdIFstbSBtaW5GRlRdIFstTSBtYXhGRlRdXG4iLAorICAgICAgICAgIFByb2dyYW1OYW1lKHByb2cpKTsKKyAgZnByaW50ZihzdGRlcnIsIHN1bW1hcnkpOworICBmcHJpbnRmKHN0ZGVyciwgIiAgLWhcdFx0VGhpcyBoZWxwXG4iKTsKKyAgZnByaW50ZihzdGRlcnIsICIgIC1UXHRcdEluZGl2aWR1YWwgdGVzdCBtb2RlLCBvdGhlcndpc2UgcnVuIGFsbCB0ZXN0c1xuIik7CisgIGZwcmludGYoc3RkZXJyLCAiICAtRlx0XHREbyBub3QgcnVuIGZvcndhcmQgRkZUIHRlc3RzXG4iKTsKKyAgZnByaW50ZihzdGRlcnIsICIgIC1JXHRcdERvIG5vdCBydW4gaW52ZXJzZSBGRlQgdGVzdHNcbiIpOworICBmcHJpbnRmKHN0ZGVyciwgIiAgLW0gbWluXHRNaW5pdW0gRkZUIG9yZGVyIHRvIHRlc3QgKGRlZmF1bHQgMilcbiIpOworICBmcHJpbnRmKHN0ZGVyciwgIiAgLU0gbWluXHRNYXhpbXVtIEZGVCBvcmRlciB0byB0ZXN0IChkZWZhdWx0ICVkKVxuIiwKKyAgICAgICAgICBtYXhfZmZ0X29yZGVyKTsKKyAgZnByaW50ZihzdGRlcnIsICIgIC1uIGxvZ3NpemVcdExvZzIgb2YgRkZUIHNpemVcbiIpOworICBmcHJpbnRmKHN0ZGVyciwgIiAgLXMgc2NhbGVcdFNjYWxlIGZhY3RvciBmb3IgZm9yd2FyZCBGRlQgKGRlZmF1bHQgPSAwKVxuIik7CisgIGZwcmludGYoc3RkZXJyLCAiICAtUyBzaWduYWxcdEJhc2UgdmFsdWUgZm9yIHRoZSB0ZXN0IHNpZ25hbCAiCisgICAgICAgICAgIihkZWZhdWx0ID0gMTAyNClcbiIpOworICBmcHJpbnRmKHN0ZGVyciwgIiAgLXYgbGV2ZWxcdFZlcmJvc2Ugb3V0cHV0IGxldmVsIChkZWZhdWx0ID0gMSlcbiIpOworICBmcHJpbnRmKHN0ZGVyciwgIiAgLWcgdHlwZVx0SW5wdXQgc2lnbmFsIHR5cGU6XG4iKTsKKyAgZnByaW50ZihzdGRlcnIsICJcdFx0ICAwIC0gQ29uc3RhbnQgc2lnbmFsIFMgKyBpKlMuIChEZWZhdWx0IHZhbHVlLilcbiIpOworICBmcHJpbnRmKHN0ZGVyciwgIlx0XHQgIDEgLSBSZWFsIHJhbXAgc3RhcnRpbmcgYXQgUy9OLCBOID0gRkZUIHNpemVcbiIpOworICBmcHJpbnRmKHN0ZGVyciwgIlx0XHQgIDIgLSBTaW5lIHdhdmUgb2YgYW1wbGl0dWRlIFNcbiIpOworICBpZiAoIXJlYWxfb25seSkKKyAgICBmcHJpbnRmKHN0ZGVyciwgIlx0XHQgIDMgLSBDb21wbGV4IHNpZ25hbCB3aG9zZSB0cmFuc2Zvcm0gaXMgYSBzaW5lICIKKyAgICAgICAgICAgICJ3YXZlLlxuIik7CisgIGV4aXQoMCk7Cit9CisKKy8qCisgKiBTZXQgZGVmYXVsdCB2YWx1ZXMgZm9yIGFsbCBjb21tYW5kIGxpbmUgb3B0aW9ucy4KKyAqLwordm9pZCBTZXREZWZhdWx0T3B0aW9ucyhzdHJ1Y3QgT3B0aW9ucyogb3B0aW9ucywgaW50IHJlYWxfb25seSwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50IG1heF9mZnRfb3JkZXIpIHsKKyAgb3B0aW9ucy0+cmVhbF9vbmx5XyA9IHJlYWxfb25seTsKKworICBvcHRpb25zLT52ZXJib3NlXyA9IDE7CisKKyAgLyoKKyAgICogVGVzdCBtb2RlIG9wdGlvbnMsIGRlZmF1bHRpbmcgdG8gbm9uLXRlc3QgbW9kZQorICAgKi8KKyAgb3B0aW9ucy0+dGVzdF9tb2RlXyA9IDE7CisgIG9wdGlvbnMtPmRvX2ZvcndhcmRfdGVzdHNfID0gMTsKKyAgb3B0aW9ucy0+ZG9faW52ZXJzZV90ZXN0c18gPSAxOworICBvcHRpb25zLT5taW5fZmZ0X29yZGVyXyA9IDI7CisgIG9wdGlvbnMtPm1heF9mZnRfb3JkZXJfID0gbWF4X2ZmdF9vcmRlcjsKKworICAvKgorICAgKiBJbmRpdmlkdWFsIHRlc3Qgb3B0aW9ucworICAgKi8KKyAgb3B0aW9ucy0+ZmZ0X2xvZ19zaXplXyA9IDQ7CisgIG9wdGlvbnMtPnNjYWxlX2ZhY3Rvcl8gPSAwOworICBvcHRpb25zLT5zaWduYWxfdHlwZV8gPSAwOworICBvcHRpb25zLT5zaWduYWxfdmFsdWVfID0gMTAyNDsKKyAgb3B0aW9ucy0+c2lnbmFsX3ZhbHVlX2dpdmVuXyA9IDA7Cit9CisKKy8qCisgKiBQcmludCB2YWx1ZXMgb2YgY29tbWFuZCBsaW5lIG9wdGlvbnMsIGZvciBkZWJ1Z2dpbmcuCisgKi8KK3ZvaWQgRHVtcE9wdGlvbnMoRklMRSogZiwgY29uc3Qgc3RydWN0IE9wdGlvbnMqIG9wdGlvbnMpIHsKKyAgICBmcHJpbnRmKGYsICJyZWFsX29ubHkgICAgICAgICAgPSAlZFxuIiwgb3B0aW9ucy0+cmVhbF9vbmx5Xyk7CisgICAgZnByaW50ZihmLCAidmVyYm9zZSAgICAgICAgICAgID0gJWRcbiIsIG9wdGlvbnMtPnZlcmJvc2VfKTsKKyAgICBmcHJpbnRmKGYsICJ0ZXN0X21vZGUgICAgICAgICAgPSAlZFxuIiwgb3B0aW9ucy0+dGVzdF9tb2RlXyk7CisgICAgZnByaW50ZihmLCAiZG9fZm9yd2FyZF90ZXN0cyAgID0gJWRcbiIsIG9wdGlvbnMtPmRvX2ZvcndhcmRfdGVzdHNfKTsKKyAgICBmcHJpbnRmKGYsICJkb19pbnZlcnNlX3Rlc3RzICAgPSAlZFxuIiwgb3B0aW9ucy0+ZG9faW52ZXJzZV90ZXN0c18pOworICAgIGZwcmludGYoZiwgIm1pbl9mZnRfb3JkZXIgICAgICA9ICVkXG4iLCBvcHRpb25zLT5taW5fZmZ0X29yZGVyXyk7CisgICAgZnByaW50ZihmLCAibWF4X2ZmdF9vcmRlciAgICAgID0gJWRcbiIsIG9wdGlvbnMtPm1heF9mZnRfb3JkZXJfKTsKKyAgICBmcHJpbnRmKGYsICJmZnRfbG9nX3NpemUgICAgICAgPSAlZFxuIiwgb3B0aW9ucy0+ZmZ0X2xvZ19zaXplXyk7CisgICAgZnByaW50ZihmLCAic2NhbGVfZmFjdG9yICAgICAgID0gJWRcbiIsIG9wdGlvbnMtPnNjYWxlX2ZhY3Rvcl8pOworICAgIGZwcmludGYoZiwgInNpZ25hbF90eXBlICAgICAgICA9ICVkXG4iLCBvcHRpb25zLT5zaWduYWxfdHlwZV8pOworICAgIGZwcmludGYoZiwgInNpZ25hbF92YWx1ZSAgICAgICA9ICVnXG4iLCBvcHRpb25zLT5zaWduYWxfdmFsdWVfKTsKKyAgICBmcHJpbnRmKGYsICJzaWduYWxfdmFsdWVfZ2l2ZW4gPSAlZFxuIiwgb3B0aW9ucy0+c2lnbmFsX3ZhbHVlX2dpdmVuXyk7Cit9CisKKy8qCisgKiBQcm9jZXNzIGNvbW1hbmQgbGluZSBvcHRpb25zLCByZXR1cm5pbmcgdGhlIHZhbHVlcyBpbiB8b3B0aW9uc3wuCisgKi8KK3ZvaWQgUHJvY2Vzc0NvbW1hbmRMaW5lKHN0cnVjdCBPcHRpb25zICpvcHRpb25zLCBpbnQgYXJnYywgY2hhciogYXJndltdLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogc3VtbWFyeSkgeworICBpbnQgb3B0OworICBpbnQgbWF4X2ZmdF9vcmRlciA9IG9wdGlvbnMtPm1heF9mZnRfb3JkZXJfOworCisgIG9wdGlvbnMtPnNpZ25hbF92YWx1ZV9naXZlbl8gPSAwOworCisgIHdoaWxlICgob3B0ID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJoVEZJbjpzOlM6Zzp2Om06TToiKSkgIT0gLTEpIHsKKyAgICBzd2l0Y2ggKG9wdCkgeworICAgICAgY2FzZSAnaCc6CisgICAgICAgIHVzYWdlKGFyZ3ZbMF0sIG9wdGlvbnMtPnJlYWxfb25seV8sIG1heF9mZnRfb3JkZXIsIHN1bW1hcnkpOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ1QnOgorICAgICAgICBvcHRpb25zLT50ZXN0X21vZGVfID0gMDsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdGJzoKKyAgICAgICAgb3B0aW9ucy0+ZG9fZm9yd2FyZF90ZXN0c18gPSAwOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ0knOgorICAgICAgICBvcHRpb25zLT5kb19pbnZlcnNlX3Rlc3RzXyA9IDA7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAnbSc6CisgICAgICAgIG9wdGlvbnMtPm1pbl9mZnRfb3JkZXJfID0gYXRvaShvcHRhcmcpOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ00nOgorICAgICAgICBvcHRpb25zLT5tYXhfZmZ0X29yZGVyXyA9IGF0b2kob3B0YXJnKTsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICduJzoKKyAgICAgICAgb3B0aW9ucy0+ZmZ0X2xvZ19zaXplXyA9IGF0b2kob3B0YXJnKTsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdTJzoKKyAgICAgICAgb3B0aW9ucy0+c2lnbmFsX3ZhbHVlXyA9IGF0b2Yob3B0YXJnKTsKKyAgICAgICAgb3B0aW9ucy0+c2lnbmFsX3ZhbHVlX2dpdmVuXyA9IDE7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAncyc6CisgICAgICAgIG9wdGlvbnMtPnNjYWxlX2ZhY3Rvcl8gPSBhdG9pKG9wdGFyZyk7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAnZyc6CisgICAgICAgIG9wdGlvbnMtPnNpZ25hbF90eXBlXyA9IGF0b2kob3B0YXJnKTsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICd2JzoKKyAgICAgICAgb3B0aW9ucy0+dmVyYm9zZV8gPSBhdG9pKG9wdGFyZyk7CisgICAgICAgIGJyZWFrOworICAgICAgZGVmYXVsdDoKKyAgICAgICAgdXNhZ2UoYXJndlswXSwgb3B0aW9ucy0+cmVhbF9vbmx5XywgbWF4X2ZmdF9vcmRlciwgc3VtbWFyeSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgfQorfQorCisvKgorICogUmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIHRlc3QgaXMga25vd24gdG8gZmFpbC4gIFRoZSBhcnJheSBvZiBrbm93bgorICogZmFpbHVyZXMgaXMgaW4gfGtub3duRmFpbHVyZXN8LiAgVGhlIEZGVCBvcmRlciBpcyB8ZmZ0X29yZGVyfCwKKyAqIHxpc19pbnZlcnNlX2ZmdHwgaXMgdHJ1ZSwgaWYgdGhlIHRlc3QgZmFpbHMgZm9yIHRoZSBpbnZlcnNlIEZGVAorICogKG90aGVyd2lzZSBmb3IgZm9yd2FyZCBGRlQpLCBhbmQgfHNpZ25hbF90eXBlfCBzcGVjaWZpZXMgdGhlIHRlc3QKKyAqIHNpZ25hbCB1c2VkLgorICovCitpbnQgSXNLbm93bkZhaWx1cmUoaW50IGZmdF9vcmRlciwgaW50IGlzX2ludmVyc2VfZmZ0LCBpbnQgc2lnbmFsX3R5cGUsCisgICAgICAgICAgICAgICAgICAgc3RydWN0IEtub3duVGVzdEZhaWx1cmVzKiBrbm93bl9mYWlsdXJlcykgeworICBpZiAoa25vd25fZmFpbHVyZXMpIHsKKyAgICAvKgorICAgICAqIExvb2sgdGhyb3VnaCBhcnJheSBvZiBrbm93biBmYWlsdXJlcyBhbmQgc2VlIGlmIGFuIEZGVAorICAgICAqIChmb3J3YXJkIG9yIGludmVyc2UpIG9mIHRoZSBnaXZlbiBvcmRlciBhbmQgc2lnbmFsIHR5cGUKKyAgICAgKiBtYXRjaGVzLiAgUmV0dXJuIHRydWUgaWYgc28uCisgICAgICovCisgICAgd2hpbGUgKGtub3duX2ZhaWx1cmVzLT5mZnRfb3JkZXJfID4gMCkgeworICAgICAgaWYgKChmZnRfb3JkZXIgPT0ga25vd25fZmFpbHVyZXMtPmZmdF9vcmRlcl8pCisgICAgICAgICAgJiYgKGlzX2ludmVyc2VfZmZ0ID09IGtub3duX2ZhaWx1cmVzLT5pc19pbnZlcnNlX2ZmdF90ZXN0XykKKyAgICAgICAgICAmJiAoc2lnbmFsX3R5cGUgPT0ga25vd25fZmFpbHVyZXMtPnNpZ25hbF90eXBlXykpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgICB9CisgICAgICArK2tub3duX2ZhaWx1cmVzOworICAgIH0KKyAgfQorICByZXR1cm4gMDsKK30KKworLyoKKyAqIFJ1biBhIHNldCBvZiB0ZXN0cywgcHJpbnRpbmcgb3V0IHRoZSByZXN1bHQgb2YgZWFjaCB0ZXN0LgorICovCit2b2lkIFJ1blRlc3RzKHN0cnVjdCBUZXN0UmVzdWx0KiByZXN1bHQsCisgICAgICAgICAgICAgIGZsb2F0ICgqdGVzdF9mdW5jdGlvbikoaW50LCBpbnQsIGZsb2F0LCBzdHJ1Y3QgU25yUmVzdWx0KiksCisgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGlkLAorICAgICAgICAgICAgICBpbnQgaXNfaW52ZXJzZV90ZXN0LAorICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgVGVzdEluZm8qIGluZm8sCisgICAgICAgICAgICAgIGZsb2F0IHNucl90aHJlc2hvbGQpIHsKKyAgaW50IGZmdF9vcmRlcjsKKyAgaW50IHNpZ25hbF90eXBlOworICBmbG9hdCBzbnI7CisgIGludCB0ZXN0cyA9IDA7CisgIGludCBmYWlsdXJlcyA9IDA7CisgIGludCBleHBlY3RlZF9mYWlsdXJlcyA9IDA7CisgIGZsb2F0IG1pbl9zbnIgPSAxZTEwOworICBzdHJ1Y3QgU25yUmVzdWx0IHNuclJlc3VsdHM7CisKKyAgZm9yIChmZnRfb3JkZXIgPSBpbmZvLT5taW5fZmZ0X29yZGVyXzsgZmZ0X29yZGVyIDw9IGluZm8tPm1heF9mZnRfb3JkZXJfOworICAgICAgICsrZmZ0X29yZGVyKSB7CisgICAgZm9yIChzaWduYWxfdHlwZSA9IDA7IHNpZ25hbF90eXBlIDwgTWF4U2lnbmFsVHlwZShpbmZvLT5yZWFsX29ubHlfKTsKKyAgICAgICAgICsrc2lnbmFsX3R5cGUpIHsKKyAgICAgIGludCBrbm93bl9mYWlsdXJlID0gMDsKKyAgICAgIGludCB0ZXN0X2ZhaWxlZCA9IDA7CisgICAgICArK3Rlc3RzOworICAgICAgc25yID0gdGVzdF9mdW5jdGlvbihmZnRfb3JkZXIsIHNpZ25hbF90eXBlLCAxMDI0LjAsICZzbnJSZXN1bHRzKTsKKyAgICAgIGlmIChzbnIgPCBtaW5fc25yKQorICAgICAgICBtaW5fc25yID0gc25yOworICAgICAga25vd25fZmFpbHVyZSA9IElzS25vd25GYWlsdXJlKGZmdF9vcmRlciwgaXNfaW52ZXJzZV90ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hbF90eXBlLCBpbmZvLT5rbm93bl9mYWlsdXJlc18pOworICAgICAgaWYgKHNuciA8IHNucl90aHJlc2hvbGQpIHsKKyAgICAgICAgKytmYWlsdXJlczsKKyAgICAgICAgdGVzdF9mYWlsZWQgPSAxOworICAgICAgICBpZiAoa25vd25fZmFpbHVyZSkgeworICAgICAgICAgICsrZXhwZWN0ZWRfZmFpbHVyZXM7CisgICAgICAgICAgcHJpbnRmKCIgKkZBSUxFRDogJXMgIiwgaWQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIHByaW50ZigiKipGQUlMRUQ6ICVzICIsIGlkKTsKKyAgICAgICAgfQorICAgICAgfSBlbHNlIHsKKyAgICAgICAgdGVzdF9mYWlsZWQgPSAwOworICAgICAgICBwcmludGYoIiAgUEFTU0VEOiAlcyAiLCBpZCk7CisgICAgICB9CisgICAgICBwcmludGYoIm9yZGVyICUyZCBzaWduYWwgJWQ6ICBTTlIgPSAlOS4zZiIsCisgICAgICAgICAgICAgZmZ0X29yZGVyLCBzaWduYWxfdHlwZSwgc25yKTsKKyAgICAgIGlmIChrbm93bl9mYWlsdXJlKSB7CisgICAgICAgIGlmICh0ZXN0X2ZhaWxlZCkgeworICAgICAgICAgIHByaW50ZigiIChleHBlY3RlZCBmYWlsdXJlKSIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIHByaW50ZigiICgqKkV4cGVjdGVkIHRvIGZhaWwsIGJ1dCBwYXNzZWQpIik7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIHByaW50ZigiXG4iKTsKKyAgICB9CisgIH0KKworICBwcmludGYoIiVzU3VtbWFyeTogICVkICVzIHRlc3RzIGZhaWxlZCBvdXQgb2YgJWQgdGVzdHMuICIKKyAgICAgICAgICIoU3VjY2VzcyByYXRlICUuMmYlJS4pXG4iLAorICAgICAgICAgZmFpbHVyZXMgPyAiKioiIDogIiIsCisgICAgICAgICBmYWlsdXJlcywKKyAgICAgICAgIGlkLAorICAgICAgICAgdGVzdHMsCisgICAgICAgICAoMTAwLjAgKiAodGVzdHMgLSBmYWlsdXJlcykpIC8gdGVzdHMpOworICBpZiAoZXhwZWN0ZWRfZmFpbHVyZXMpCisgICAgcHJpbnRmKCIgICAgKCVkIGV4cGVjdGVkIGZhaWx1cmVzKVxuIiwgZXhwZWN0ZWRfZmFpbHVyZXMpOworICBwcmludGYoIiAgICAoTWluaW11bSBTTlIgPSAlLjNmIGRCKVxuIiwgbWluX3Nucik7CisKKyAgcmVzdWx0LT5mYWlsZWRfY291bnRfID0gZmFpbHVyZXM7CisgIHJlc3VsdC0+dGVzdF9jb3VudF8gPSB0ZXN0czsKKyAgcmVzdWx0LT5leHBlY3RlZF9mYWlsdXJlX2NvdW50XyA9IGV4cGVjdGVkX2ZhaWx1cmVzOworICByZXN1bHQtPm1pbl9zbnJfID0gbWluX3NucjsKK30KKworLyoKKyAqIEZvciBhbGwgRkZUIG9yZGVycyBhbmQgc2lnbmFsIHR5cGVzLCBydW4gdGhlIGZvcndhcmQgRkZULgorICogcnVuT25lRm9yd2FyZFRlc3QgbXVzdCBiZSBkZWZpbmVkIHRvIGNvbXB1dGUgdGhlIGZvcndhcmQgRkZUIGFuZAorICogcmV0dXJuIHRoZSBTTlIgYmV3ZWVuIHRoZSBhY3R1YWwgYW5kIGV4cGVjdGVkIEZGVC4KKyAqCisgKiBBbHNvIGZpbmRzIHRoZSBtaW5pdW0gU05SIGZyb20gYWxsIG9mIHRoZSB0ZXN0cyBhbmQgcmV0dXJucyB0aGUKKyAqIG1pbmltdW0gU05SIHZhbHVlLgorICovCit2b2lkIFJ1bkZvcndhcmRUZXN0cyhzdHJ1Y3QgVGVzdFJlc3VsdCogcmVzdWx0LCBjb25zdCBzdHJ1Y3QgVGVzdEluZm8qIGluZm8sCisgICAgICAgICAgICAgICAgICAgICBmbG9hdCBzbnJfdGhyZXNob2xkKSB7CisgIFJ1blRlc3RzKHJlc3VsdCwgUnVuT25lRm9yd2FyZFRlc3QsICJGd2RGRlQiLCAwLCBpbmZvLCBzbnJfdGhyZXNob2xkKTsKK30KKworLyoKKyAqIEZvciBhbGwgRkZUIG9yZGVycyBhbmQgc2lnbmFsIHR5cGVzLCBydW4gdGhlIGludmVyc2UgRkZULgorICogcnVuT25lSW52ZXJzZVRlc3QgbXVzdCBiZSBkZWZpbmVkIHRvIGNvbXB1dGUgdGhlIGZvcndhcmQgRkZUIGFuZAorICogcmV0dXJuIHRoZSBTTlIgYmV3ZWVuIHRoZSBhY3R1YWwgYW5kIGV4cGVjdGVkIEZGVC4KKyAqCisgKiBBbHNvIGZpbmRzIHRoZSBtaW5pdW0gU05SIGZyb20gYWxsIG9mIHRoZSB0ZXN0cyBhbmQgcmV0dXJucyB0aGUKKyAqIG1pbmltdW0gU05SIHZhbHVlLgorICovCit2b2lkIFJ1bkludmVyc2VUZXN0cyhzdHJ1Y3QgVGVzdFJlc3VsdCogcmVzdWx0LCBjb25zdCBzdHJ1Y3QgVGVzdEluZm8qIGluZm8sCisgICAgICAgICAgICAgICAgICAgICBmbG9hdCBzbnJfdGhyZXNob2xkKSB7CisgIFJ1blRlc3RzKHJlc3VsdCwgUnVuT25lSW52ZXJzZVRlc3QsICJJbnZGRlQiLCAxLCBpbmZvLCBzbnJfdGhyZXNob2xkKTsKK30KKworLyoKKyAqIFJ1biBhbGwgZm9yd2FyZCBhbmQgaW52ZXJzZSBGRlQgdGVzdHMsIHByaW50aW5nIGEgc3VtbWFyeSBvZiB0aGUKKyAqIHJlc3VsdHMuCisgKi8KK3ZvaWQgUnVuQWxsVGVzdHMoY29uc3Qgc3RydWN0IFRlc3RJbmZvKiBpbmZvKSB7CisgIGludCBmYWlsZWQ7CisgIGludCB0b3RhbDsKKyAgZmxvYXQgbWluX2ZvcndhcmRfc25yOworICBmbG9hdCBtaW5faW52ZXJzZV9zbnI7CisgIHN0cnVjdCBUZXN0UmVzdWx0IGZvcndhcmRfcmVzdWx0czsKKyAgc3RydWN0IFRlc3RSZXN1bHQgaW52ZXJzZV9yZXN1bHRzOworCisgIGlmIChpbmZvLT5kb19mb3J3YXJkX3Rlc3RzXykKKyAgICBSdW5Gb3J3YXJkVGVzdHMoJmZvcndhcmRfcmVzdWx0cywgaW5mbywgaW5mby0+Zm9yd2FyZF90aHJlc2hvbGRfKTsKKyAgaWYgKGluZm8tPmRvX2ludmVyc2VfdGVzdHNfKQorICAgIFJ1bkludmVyc2VUZXN0cygmaW52ZXJzZV9yZXN1bHRzLCBpbmZvLCBpbmZvLT5pbnZlcnNlX3RocmVzaG9sZF8pOworCisgIGZhaWxlZCA9IGZvcndhcmRfcmVzdWx0cy5mYWlsZWRfY291bnRfICsgaW52ZXJzZV9yZXN1bHRzLmZhaWxlZF9jb3VudF87CisgIHRvdGFsID0gZm9yd2FyZF9yZXN1bHRzLnRlc3RfY291bnRfICsgaW52ZXJzZV9yZXN1bHRzLnRlc3RfY291bnRfOworICBtaW5fZm9yd2FyZF9zbnIgPSBmb3J3YXJkX3Jlc3VsdHMubWluX3Nucl87CisgIG1pbl9pbnZlcnNlX3NuciA9IGludmVyc2VfcmVzdWx0cy5taW5fc25yXzsKKworICBpZiAodG90YWwpIHsKKyAgICBwcmludGYoIiVzVG90YWw6ICVkIHRlc3RzIGZhaWxlZCBvdXQgb2YgJWQgdGVzdHMuICAiCisgICAgICAgICAgICIoU3VjY2VzcyByYXRlID0gJS4yZiUlLilcbiIsCisgICAgICAgICAgIGZhaWxlZCA/ICIqKiIgOiAiIiwKKyAgICAgICAgICAgZmFpbGVkLAorICAgICAgICAgICB0b3RhbCwKKyAgICAgICAgICAgKDEwMC4wICogKHRvdGFsIC0gZmFpbGVkKSkgLyB0b3RhbCk7CisgICAgaWYgKGZvcndhcmRfcmVzdWx0cy5leHBlY3RlZF9mYWlsdXJlX2NvdW50XworICAgICAgICArIGludmVyc2VfcmVzdWx0cy5leHBlY3RlZF9mYWlsdXJlX2NvdW50XykgeworICAgICAgcHJpbnRmKCIgICglZCBleHBlY3RlZCBmYWlsdXJlcylcbiIsCisgICAgICAgICAgICAgZm9yd2FyZF9yZXN1bHRzLmV4cGVjdGVkX2ZhaWx1cmVfY291bnRfCisgICAgICAgICAgICAgKyBpbnZlcnNlX3Jlc3VsdHMuZXhwZWN0ZWRfZmFpbHVyZV9jb3VudF8pOworICAgIH0KKyAgICBwcmludGYoIiAgTWluIGZvcndhcmQgU05SID0gJS4zZiBkQiwgbWluIGludmVyc2UgU05SID0gJS4zZiBkQlxuIiwKKyAgICAgICAgICAgbWluX2ZvcndhcmRfc25yLAorICAgICAgICAgICBtaW5faW52ZXJzZV9zbnIpOworICB9IGVsc2UgeworICAgIHByaW50ZigiTm8gdGVzdHMgcnVuXG4iKTsKKyAgfQorfQorCisvKgorICogUHJpbnQgdGhlIGNvbnRlbnRzIG9mIGFuIGFycmF5IHRvIHN0ZG91dCwgb25lIGVsZW1lbnQgcGVyIGxpbmUuCisgKiB8YXJyYXlfbmFtZXwgaXMgdGhlIG5hbWUgb2YgdGhlIGFycmF5IHRvIGJlIHVzZWQgaW4gdGhlIGhlYWRlcgorICogbGluZS4KKyAqCisgKiBBcnJheXMgd2l0aCBlbGVtZW50cyBvZiB0eXBlIE9NWF9TMTYsIE9NWF9TMzIsIE9NWF9TQzMyLCBPTVhfRjMyLAorICogYW5kIE9NWF9GQzMyIGFyZSBzdXBwb3J0ZWQuCisgKi8KK3ZvaWQgRHVtcEFycmF5UmVhbDE2KGNvbnN0IGNoYXIqIGFycmF5X25hbWUsIGludCBjb3VudCwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IE9NWF9TMTYqIGFycmF5KSB7CisgIGludCBuOworCisgIHByaW50ZigiJTRzXHQlNXNbbl1cbiIsICJuIiwgYXJyYXlfbmFtZSk7CisgIGZvciAobiA9IDA7IG4gPCBjb3VudDsgKytuKSB7CisgICAgcHJpbnRmKCIlNGRcdCU4ZFxuIiwgbiwgYXJyYXlbbl0pOworICB9Cit9CisKK3ZvaWQgRHVtcEFycmF5UmVhbDMyKGNvbnN0IGNoYXIqIGFycmF5X25hbWUsIGludCBjb3VudCwgY29uc3QgT01YX1MzMiogYXJyYXkpIHsKKyAgaW50IG47CisKKyAgcHJpbnRmKCIlNHNcdCU1c1tuXVxuIiwgIm4iLCBhcnJheV9uYW1lKTsKKyAgZm9yIChuID0gMDsgbiA8IGNvdW50OyArK24pIHsKKyAgICBwcmludGYoIiU0ZFx0JThkXG4iLCBuLCBhcnJheVtuXSk7CisgIH0KK30KKwordm9pZCBEdW1wQXJyYXlDb21wbGV4MzIoY29uc3QgY2hhciogYXJyYXlfbmFtZSwgaW50IGNvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgT01YX1NDMzIqIGFycmF5KSB7CisgIGludCBuOworCisgIHByaW50ZigiJTRzXHQlMTBzLnJlW25dXHQlMTBzLmltW25dXG4iLCAibiIsIGFycmF5X25hbWUpOworICBmb3IgKG4gPSAwOyBuIDwgY291bnQ7ICsrbikgeworICAgIHByaW50ZigiJTRkXHQlMTZkXHQlMTZkXG4iLCBuLCBhcnJheVtuXS5SZSwgYXJyYXlbbl0uSW0pOworICB9Cit9CisKK3ZvaWQgRHVtcEFycmF5RmxvYXQoY29uc3QgY2hhciogYXJyYXlfbmFtZSwgaW50IGNvdW50LCBjb25zdCBPTVhfRjMyKiBhcnJheSkgeworICBpbnQgbjsKKworICBwcmludGYoIiU0c1x0JTEzc1tuXVxuIiwgIm4iLCBhcnJheV9uYW1lKTsKKyAgZm9yIChuID0gMDsgbiA8IGNvdW50OyArK24pIHsKKyAgICBwcmludGYoIiU0ZFx0JTE2Z1xuIiwgbiwgYXJyYXlbbl0pOworICB9Cit9CisKK3ZvaWQgRHVtcEFycmF5Q29tcGxleEZsb2F0KGNvbnN0IGNoYXIqIGFycmF5X25hbWUsIGludCBjb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IE9NWF9GQzMyKiBhcnJheSkgeworICBpbnQgbjsKKworICBwcmludGYoIiU0c1x0JTEwcy5yZVtuXVx0JTEwcy5pbVtuXVxuIiwgIm4iLCBhcnJheV9uYW1lLCBhcnJheV9uYW1lKTsKKyAgZm9yIChuID0gMDsgbiA8IGNvdW50OyArK24pIHsKKyAgICBwcmludGYoIiU0ZFx0JTE2Z1x0JTE2Z1xuIiwgbiwgYXJyYXlbbl0uUmUsIGFycmF5W25dLkltKTsKKyAgfQorfQpkaWZmIC0tZ2l0IGEvZGwvdGVzdC90ZXN0X3V0aWwuaCBiL2RsL3Rlc3QvdGVzdF91dGlsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjY0ZTUxOAotLS0gL2Rldi9udWxsCisrKyBiL2RsL3Rlc3QvdGVzdF91dGlsLmgKQEAgLTAsMCArMSwxNTYgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworCisjaWZuZGVmIFdFQlJUQ19BUk1fRkZUX1RFU1RfVVRJTF9IXworI2RlZmluZSBXRUJSVENfQVJNX0ZGVF9URVNUX1VUSUxfSF8KKworLyogQ29tbWFuZCBsaW5lIG9wdGlvbnMgKi8KK3N0cnVjdCBPcHRpb25zIHsKKyAgICAvKgorICAgICAqIFNldCB0byBub24temVybyBpZiB0ZXN0IGlzIG9ubHkgZm9yIHJlYWwgc2lnbmFscy4gIFRoaXMgaXMganVzdAorICAgICAqIGZvciBwcmludGluZyBvdXQgdGhlIGNvcnJlY3QgdXNhZ2UgbWVzc2FnZS4KKyAgICAgKi8KKyAgICBpbnQgcmVhbF9vbmx5XzsKKworICAgIC8qIERlYnVnZ2luZyBvdXRwdXQgbGV2ZWwsIHVzZWQgaW4gdGVzdCBhbmQgbm9uLXRlc3QgbW9kZSAqLworICAgIGludCB2ZXJib3NlXzsKKworICAgIC8qIFRlc3QgbW9kZSB3aGVyZSBhbGwgdGVzdHMgYXJlIHJ1bi4gKi8KKyAgICBpbnQgdGVzdF9tb2RlXzsKKworICAgIC8qIFJ1biBmb3J3YXJkIEZGVCB0ZXN0cyAoaW4gdGVzdCBtb2RlKSAqLworICAgIGludCBkb19mb3J3YXJkX3Rlc3RzXzsKKworICAgIC8qIFJ1biBpbnZlcnNlIEZGVCB0ZXN0cyAoaW4gdGVzdCBtb2RlKSAqLworICAgIGludCBkb19pbnZlcnNlX3Rlc3RzXzsKKworICAgIC8qIE1pbmltdW0gRkZUIG9yZGVyIGZvciB0ZXN0IG1vZGUgKi8KKyAgICBpbnQgbWluX2ZmdF9vcmRlcl87CisKKyAgICAvKiBNYXhpbXVtIEZGVCBvcmRlciBmb3IgdGVzdCBtb2RlICovCisgICAgaW50IG1heF9mZnRfb3JkZXJfOworCisgICAgLyogRkZUIE9yZGVyICovCisgICAgaW50IGZmdF9sb2dfc2l6ZV87CisKKyAgICAvKiBGb3J3YXJkIEZGVCBzY2FsZSBmYWN0b3IsIG9ubHkgZm9yIGZvciBmaXhlZC1wb2ludCByb3V0aW5lcyAqLworICAgIGludCBzY2FsZV9mYWN0b3JfOworCisgICAgLyogU2lnbmFsIHR5cGUgdG8gdXNlIGZvciB0ZXN0aW5nICovCisgICAgaW50IHNpZ25hbF90eXBlXzsKKworICAgIC8qIFNpZ25hbCBhbXBsaXR1ZGUgKi8KKyAgICBmbG9hdCBzaWduYWxfdmFsdWVfOworCisgICAgLyogU2V0IGlmIHRoZSBjb21tYW5kIGxpbmUgb3B0aW9ucyBzZXQgYSB2YWx1ZSBmb3Igc2lnbmFsVmFsdWUgKi8KKyAgICBpbnQgc2lnbmFsX3ZhbHVlX2dpdmVuXzsKK307CisKKy8qCisgKiBJbmZvcm1hdGlvbiBhYm91dCBhIHRlc3QgdGhhdCBpcyBrbm93biB0byBmYWlsLgorICovCitzdHJ1Y3QgS25vd25UZXN0RmFpbHVyZXMgeworICAgIC8qIEZGVCBvcmRlciBvZiB0aGUgdGVzdCAqLworICAgIGludCBmZnRfb3JkZXJfOworCisgICAgLyogU2V0IHRvIG5vbi16ZXJvIGZvciBpbnZlcnNlIEZGVCBjYXNlLiAgT3RoZXJ3aXNlLCBpdCdzIGZvcndhcmQgRkZUICovCisgICAgaW50IGlzX2ludmVyc2VfZmZ0X3Rlc3RfOworCisgICAgLyogVGhlIHRlc3Qgc2lnbmFsIHVzZWQgKi8KKyAgICBpbnQgc2lnbmFsX3R5cGVfOworfTsKKworc3RydWN0IFRlc3RJbmZvIHsKKyAgICAvKiBUcnVlIGlmIHRlc3QgaXMgZm9yIHJlYWwgc2lnbmFscyAqLworICAgIGludCByZWFsX29ubHlfOworCisgICAgLyogTWF4IEZGVCBvcmRlciB0byBiZSB0ZXN0ZWQgKi8KKyAgICBpbnQgbWF4X2ZmdF9vcmRlcl87CisKKyAgICAvKiBNaW4gRkZUIG9yZGVyIHRvIGJlIHRlc3RlZCAqLworICAgIGludCBtaW5fZmZ0X29yZGVyXzsKKworICAgIC8qIFRydWUgaWYgZm9yd2FyZCBGRlQgdGVzdHMgc2hvdWxkIGJlIHJ1biAqLworICAgIGludCBkb19mb3J3YXJkX3Rlc3RzXzsKKworICAgIC8qIFRydWUgaWYgaW52ZXJzZSBGRlQgdGVzdHMgc2hvdWxkIGJlIHJ1biAqLworICAgIGludCBkb19pbnZlcnNlX3Rlc3RzXzsKKworICAgIC8qIFNOUiB0aHJlc2hvbGQgZm9yIGZvcndhcmQgRkZUIHRlc3RzICovCisgICAgZmxvYXQgZm9yd2FyZF90aHJlc2hvbGRfOworCisgICAgLyogU05SIHRocmVzaG9sZCBmb3IgaW52ZXJzZSBGRlQgdGVzdHMgKi8KKyAgICBmbG9hdCBpbnZlcnNlX3RocmVzaG9sZF87CisKKyAgICAvKgorICAgICAqIEFycmF5IG9mIGtub3duIHRlc3QgZmFpbHVyZXMuICBTaG91bGQgZWl0aGVyIGJlIDAgb3IgcG9pbnQgdG8KKyAgICAgKiBhbiBhcnJheSBvZiBrbm93biBmYWlsdXJlcywgdGVybWluYXRlZCBieSBhIHRlc3QgY2FzZSB3aXRoCisgICAgICogbmVnYXRpdmUgZmZ0T3JkZXIuCisgICAgICovCisgICAgc3RydWN0IEtub3duVGVzdEZhaWx1cmVzKiBrbm93bl9mYWlsdXJlc187Cit9OworCisvKgorICogU2V0IGRlZmF1bHQgb3B0aW9ucyBmb3IgdGhlIGNvbW1hbmQgbGluZSBvcHRpb25zLiAgTXVzdCBiZSBjYWxsZWQKKyAqIGJlZm9yZSBjYWxsIHxwcm9jZXNzQ29tbWFuZExpbmV8CisgKi8KK3ZvaWQgU2V0RGVmYXVsdE9wdGlvbnMoc3RydWN0IE9wdGlvbnMqIG9wdGlvbnMsIGludCByZWFsX29ubHksCisgICAgICAgICAgICAgICAgICAgICAgIGludCBtYXhfZmZ0X29yZGVyKTsKKworLyoKKyAqIFByb2Nlc3MgdGhlIGNvbW1hbmQgbGluZSBvcHRpb25zCisgKi8KK3ZvaWQgUHJvY2Vzc0NvbW1hbmRMaW5lKHN0cnVjdCBPcHRpb25zKiBvcHRpb25zLCBpbnQgYXJnYywgY2hhciogYXJndltdLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogc3VtbWFyeSk7CisKKy8qCisgKiBQcmludCBjb21tYW5kIGxpbmUgb3B0aW9ucyBhbmQgdGhlaXIgdmFsdWVzLCBmb3IgZGVidWdnaW5nLgorICovCit2b2lkIER1bXBPcHRpb25zKEZJTEUqLCBjb25zdCBzdHJ1Y3QgT3B0aW9ucyogb3B0aW9ucyk7CisKKy8qCisgKiBSdW4gb25lIGZvcndhcmQgRkZUIHRlc3Qgb2YgdGhlIGdpdmVuIHNpemUsIHNpZ25hbCB0eXBlLCBhbmQgYW1wbGl0dWRlCisgKi8KK2Zsb2F0IFJ1bk9uZUZvcndhcmRUZXN0KGludCBmZnRfbG9nX3NpemUsIGludCBzaWduYWxfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHNpZ25hbF92YWx1ZSwgc3RydWN0IFNuclJlc3VsdCogc25yKTsKKworLyoKKyAqIFJ1biBvbmUgaW52ZXJzZSBGRlQgdGVzdCBvZiB0aGUgZ2l2ZW4gc2l6ZSwgc2lnbmFsIHR5cGUsIGFuZCBhbXBsaXR1ZGUKKyAqLworZmxvYXQgUnVuT25lSW52ZXJzZVRlc3QoaW50IGZmdF9sb2dfc2l6ZSwgaW50IHNpZ25hbF90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgc2lnbmFsX3ZhbHVlLCBzdHJ1Y3QgU25yUmVzdWx0KiBzbnIpOworCisvKgorICogUnVuIGFsbCBGRlQgdGVzdHMsIGFzIHNwZWNpZmllZCBieSB8aW5mb3wKKyAqLwordm9pZCBSdW5BbGxUZXN0cyhjb25zdCBzdHJ1Y3QgVGVzdEluZm8qIGluZm8pOworCisvKgorICogUmV0dXJucyB0aGUgcHJvZ3JhbSBuYW1lLCBmb3IgZGVidWdnaW5nLgorICovCitjaGFyKiBQcm9ncmFtTmFtZShjaGFyKik7CisKKy8qCisgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgc3BlY2lmaWVkIEZGVCB0ZXN0IGlzIGEga25vd24gZmFpbHVyZS4KKyAqLworaW50IElzS25vd25GYWlsdXJlKGludCBmZnRfb3JkZXIsIGludCBpc19mb3J3YXJkX2ZmdCwgaW50IHNpZ25hbF90eXBlLAorICAgICAgICAgICAgICAgICAgIHN0cnVjdCBLbm93blRlc3RGYWlsdXJlcyoga25vd25fZmFpbHVyZXMpOworCisvKgorICogTmVhdGx5IHByaW50IHRoZSBjb250ZW50cyBvZiBhbiBhcnJheSB0byBzdGRvdXQuCisgKi8KK3ZvaWQgRHVtcEFycmF5UmVhbDE2KGNvbnN0IGNoYXIqIGFycmF5X25hbWUsIGludCBjb3VudCwgY29uc3QgT01YX1MxNiogYXJyYXkpOwordm9pZCBEdW1wQXJyYXlSZWFsMzIoY29uc3QgY2hhciogYXJyYXlfbmFtZSwgaW50IGNvdW50LCBjb25zdCBPTVhfUzMyKiBhcnJheSk7Cit2b2lkIER1bXBBcnJheUNvbXBsZXgzMihjb25zdCBjaGFyKiBhcnJheV9uYW1lLCBpbnQgY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBPTVhfU0MzMiogYXJyYXkpOwordm9pZCBEdW1wQXJyYXlGbG9hdChjb25zdCBjaGFyKiBhcnJheV9uYW1lLCBpbnQgY291bnQsIGNvbnN0IE9NWF9GMzIqIGFycmF5KTsKK3ZvaWQgRHVtcEFycmF5Q29tcGxleEZsb2F0KGNvbnN0IGNoYXIqIGFycmF5X25hbWUsIGludCBjb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IE9NWF9GQzMyKiBhcnJheSk7CisjZW5kaWYK