gASVAAABAAAAAACMDmRvY3V0aWxzLm5vZGVzlIwIZG9jdW1lbnSUk5QpgZR9lCiMCXJhd3NvdXJjZZSMAJSMCGNoaWxkcmVulF2UKGgAjAZ0YXJnZXSUk5QpgZR9lChoBWgGaAddlIwKYXR0cmlidXRlc5R9lCiMA2lkc5RdlIwebW9kdWxlLWV0aGVyZXVtLmJ5emFudGl1bS5zcGVjlGGMB2NsYXNzZXOUXZSMBW5hbWVzlF2UjAhkdXBuYW1lc5RdlIwIYmFja3JlZnOUXZSMBWlzbW9klIh1jAd0YWduYW1llGgJjAZzb3VyY2WUjF8vaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL2RvYy9hdXRvYXBpL2V0aGVyZXVtL2J5emFudGl1bS9zcGVjL2luZGV4LnJzdJSMBGxpbmWUSwGMBnBhcmVudJRoA4wJX2RvY3VtZW50lGgDdWKMD3NwaGlueC5hZGRub2Rlc5SMBWluZGV4lJOUKYGUfZQoaAVoBmgHXZRoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAdlbnRyaWVzlF2UKIwEcGFpcpSMH21vZHVsZTsgZXRoZXJldW0uYnl6YW50aXVtLnNwZWOUaBJoBk50lGF1aBxoI2gdaB5oH0sCaCBoA2ghaAN1YmgAjAdzZWN0aW9ulJOUKYGUfZQoaAVoBmgHXZQoaACMBXRpdGxllJOUKYGUfZQoaAWMFkV0aGVyZXVtIFNwZWNpZmljYXRpb26UaAddlGgAjARUZXh0lJOUjBZFdGhlcmV1bSBTcGVjaWZpY2F0aW9ulIWUgZR9lChoBWgGaCBoOmghaANoHYxcL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy8udG94L2RvY3Mvc3RhZ2UwX291dC9hdXRvYXBpLyA9PiBkb2MvZGlmZnOUaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoOGgdaB5oH0sEaCBoNWghaAN1YmgAjAV0b3BpY5STlCmBlH2UKGgFaAZoB12UKGg5KYGUfZQoaAWMEVRhYmxlIG9mIENvbnRlbnRzlGgHXZRoP4wRVGFibGUgb2YgQ29udGVudHOUhZSBlH2U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UHJvb2Ytb2YtV29yawoKdmFsaWRhdGVfcHJvb2Zfb2Zfd29yawoKVmFsaWRhdGVzIHRoZSBQcm9vZiBvZiBXb3JrIGNvbnN0cmFpbnRzLgoKYXBwbHlfYm9keQoKRXhlY3V0ZXMgYSBibG9jay4KCnZhbGlkYXRlX29tbWVycwoKVmFsaWRhdGVzIHRoZSBvbW1lcnMgbWVudGlvbmVkIGluIHRoZSBibG9jay4KCnBheV9yZXdhcmRzCgpQYXkgcmV3YXJkcyB0byB0aGUgYmxvY2sgbWluZXIgYXMgd2VsbCBhcyB0aGUgb21tZXJzIG1pbmVycy4KCnByb2Nlc3NfdHJhbnNhY3Rpb24KCkV4ZWN1dGUgYSB0cmFuc2FjdGlvbiBhZ2FpbnN0IHRoZSBwcm92aWRlZCBlbnZpcm9ubWVudC4KCnZhbGlkYXRlX3RyYW5zYWN0aW9uCgpWZXJpZmllcyBhIHRyYW5zYWN0aW9uLgoKY2FsY3VsYXRlX2ludHJpbnNpY19jb3N0CgpDYWxjdWxhdGVzIHRoZSBnYXMgdGhhdCBpcyBjaGFyZ2VkIGJlZm9yZSBleGVjdXRpb24gaXMgc3RhcnRlZC4KCnJlY292ZXJfc2VuZGVyCgpFeHRyYWN0cyB0aGUgc2VuZGVyIGFkZHJlc3MgZnJvbSBhIHRyYW5zYWN0aW9uLgoKc2lnbmluZ19oYXNoX3ByZTE1NQoKQ29tcHV0ZSB0aGUgaGFzaCBvZiBhIHRyYW5zYWN0aW9uIHVzZWQgaW4gYSBsZWdhY3kgKHByZSBFSVAgMTU1KSBzaWduYXR1cmUuCgpzaWduaW5nX2hhc2hfMTU1CgpDb21wdXRlIHRoZSBoYXNoIG9mIGEgdHJhbnNhY3Rpb24gdXNlZCBpbiBhIEVJUCAxNTUgc2lnbmF0dXJlLgoKY29tcHV0ZV9oZWFkZXJfaGFzaAoKQ29tcHV0ZXMgdGhlIGhhc2ggb2YgYSBibG9jayBoZWFkZXIuCgpjaGVja19nYXNfbGltaXQKClZhbGlkYXRlcyB0aGUgZ2FzIGxpbWl0IGZvciBhIGJsb2NrLgoKY2FsY3VsYXRlX2Jsb2NrX2RpZmZpY3VsdHkKCkNvbXB1dGVzIGRpZmZpY3VsdHkgb2YgYSBibG9jayB1c2luZyBpdHMgaGVhZGVy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XZRoGV2UjAhpbnRlcm5hbJSIjAVyZWZpZJSMLmV0aGVyZXVtLmJ5emFudGl1bS5zcGVjLnZhbGlkYXRlX3Byb29mX29mX3dvcmuUjAhyZWZ0aXRsZZSMLmV0aGVyZXVtLmJ5emFudGl1bS5zcGVjLnZhbGlkYXRlX3Byb29mX29mX3dvcmuUdWgcaG1oHU5oH05oIGrJBwAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB2McC9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3MvZG9jL2F1dG9hcGkvZXRoZXJldW0vYnl6YW50aXVtL3NwZWMvaW5kZXgucnN0OjU2OjxhdXRvc3VtbWFyeT6UaB9LAWggasYHAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcal8FAABoHU5oH05oIGrDBwAAdWJqYAUAACmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYwoVmFsaWRhdGVzIHRoZSBQcm9vZiBvZiBXb3JrIGNvbnN0cmFpbnRzLpRoB12UaD+MKFZhbGlkYXRlcyB0aGUgUHJvb2Ygb2YgV29yayBjb25zdHJhaW50cy6UhZSBlH2UKGgFaAZoIGr6BwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB2McC9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3MvZG9jL2F1dG9hcGkvZXRoZXJldW0vYnl6YW50aXVtL3NwZWMvaW5kZXgucnN0OjU2OjxhdXRvc3VtbWFyeT6UaB9LAWggavcHAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcal8FAABoHU5oH05oIGrDBwAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGpaBQAAaB1OaB9OaCBqEgYAAHVialsFAAApgZR9lChoBWgGaAddlChqYAUAACmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYw2Om9iajpgYXBwbHlfYm9keSA8ZXRoZXJldW0uYnl6YW50aXVtLnNwZWMuYXBwbHlfYm9keT5glGgHXZRobimBlH2UKGgFaAZo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lChoBWgGaCBqvAkAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZQoangFAACMAnB5lIwGcHktb2JqlGVoFV2UaBddlGgZXZR1aBxqawUAAGgdTmgfTmggarkJAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAhpbnRlcm5hbJSIjAVyZWZpZJSMMGV0aGVyZXVtLmJ5emFudGl1bS5zcGVjLmNhbGN1bGF0ZV9pbnRyaW5zaWNfY29zdJSMCHJlZnRpdGxllIwwZXRoZXJldW0uYnl6YW50aXVtLnNwZWMuY2FsY3VsYXRlX2ludHJpbnNpY19jb3N0lHVoHGhtaB1OaB9OaCBqtQkAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdjHAvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL2RvYy9hdXRvYXBpL2V0aGVyZXVtL2J5emFudGl1bS9zcGVjL2luZGV4LnJzdDo1Njo8YXV0b3N1bW1hcnk+lGgfSwFoIGqyCQAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGpfBQAAaB1OaB9OaCBqrwkAAHViamAFAAApgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMP0NhbGN1bGF0ZXMgdGhlIGdhcyB0aGF0IGlzIGNoYXJnZWQgYmVmb3JlIGV4ZWN1dGlvbiBpcyBzdGFydGVkLpRoB12UaD+MP0NhbGN1bGF0ZXMgdGhlIGdhcyB0aGF0IGlzIGNoYXJnZWQgYmVmb3JlIGV4ZWN1dGlvbiBpcyBzdGFydGVkLpSFlIGUfZQoaAVoBmggauYJAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYxwL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9ieXphbnRpdW0vc3BlYy9pbmRleC5yc3Q6NTY6PGF1dG9zdW1tYXJ5PpRoH0sBaCBq4wkAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqXwUAAGgdTmgfTmggaq8JAAB1YmVoDn2U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H05oIGpqFQAAdWJqGA8AACmBlH2UKGgFWN8CAABkZWYgZ2V0X2xhc3RfMjU2X2Jsb2NrX2hhc2hlcyhjaGFpbjogQmxvY2tDaGFpbikgLT4gTGlzdFtIYXNoMzJdOgogICAgcmVjZW50X2Jsb2NrcyA9IGNoYWluLmJsb2Nrc1stMjU1Ol0KICAgICMgVE9ETzogVGhpcyBmdW5jdGlvbiBoYXMgbm90IGJlZW4gdGVzdGVkIHJpZ29yb3VzbHkKICAgIGlmIGxlbihyZWNlbnRfYmxvY2tzKSA9PSAwOgogICAgICAgIHJldHVybiBbXQoKICAgIHJlY2VudF9ibG9ja19oYXNoZXMgPSBbXQoKICAgIGZvciBibG9jayBpbiByZWNlbnRfYmxvY2tzOgogICAgICAgIHByZXZfYmxvY2tfaGFzaCA9IGJsb2NrLmhlYWRlci5wYXJlbnRfaGFzaAogICAgICAgIHJlY2VudF9ibG9ja19oYXNoZXMuYXBwZW5kKHByZXZfYmxvY2tfaGFzaCkKCiAgICAjIFdlIGFyZSBjb21wdXRpbmcgdGhlIGhhc2ggb25seSBmb3IgdGhlIG1vc3QgcmVjZW50IGJsb2NrIGFuZCBub3QgZm9yCiAgICAjIHRoZSByZXN0IG9mIHRoZSBibG9ja3MgYXMgdGhleSBoYXZlIHN1Y2Nlc3NvcnMgd2hpY2ggaGF2ZSB0aGUgaGFzaCBvZgogICAgIyB0aGUgY3VycmVudCBibG9jayBhcyBwYXJlbnQgaGFzaC4KICAgIG1vc3RfcmVjZW50X2Jsb2NrX2hhc2ggPSBrZWNjYWsyNTYocmxwLmVuY29kZShyZWNlbnRfYmxvY2tzWy0xXS5oZWFkZXIpKQogICAgcmVjZW50X2Jsb2NrX2hhc2hlcy5hcHBlbmQobW9zdF9yZWNlbnRfYmxvY2tfaGFzaCkKCiAgICByZXR1cm4gcmVjZW50X2Jsb2NrX2hhc2hlcwqUaAddlGg/WN8CAABkZWYgZ2V0X2xhc3RfMjU2X2Jsb2NrX2hhc2hlcyhjaGFpbjogQmxvY2tDaGFpbikgLT4gTGlzdFtIYXNoMzJdOgogICAgcmVjZW50X2Jsb2NrcyA9IGNoYWluLmJsb2Nrc1stMjU1Ol0KICAgICMgVE9ETzogVGhpcyBmdW5jdGlvbiBoYXMgbm90IGJlZW4gdGVzdGVkIHJpZ29yb3VzbHkKICAgIGlmIGxlbihyZWNlbnRfYmxvY2tzKSA9PSAwOgogICAgICAgIHJldHVybiBbXQoKICAgIHJlY2VudF9ibG9ja19oYXNoZXMgPSBbXQoKICAgIGZvciBibG9jayBpbiByZWNlbnRfYmxvY2tzOgogICAgICAgIHByZXZfYmxvY2tfaGFzaCA9IGJsb2NrLmhlYWRlci5wYXJlbnRfaGFzaAogICAgICAgIHJlY2VudF9ibG9ja19oYXNoZXMuYXBwZW5kKHByZXZfYmxvY2tfaGFzaCkKCiAgICAjIFdlIGFyZSBjb21wdXRpbmcgdGhlIGhhc2ggb25seSBmb3IgdGhlIG1vc3QgcmVjZW50IGJsb2NrIGFuZCBub3QgZm9yCiAgICAjIHRoZSByZXN0IG9mIHRoZSBibG9ja3MgYXMgdGhleSBoYXZlIHN1Y2Nlc3NvcnMgd2hpY2ggaGF2ZSB0aGUgaGFzaCBvZgogICAgIyB0aGUgY3VycmVudCBibG9jayBhcyBwYXJlbnQgaGFzaC4KICAgIG1vc3RfcmVjZW50X2Jsb2NrX2hhc2ggPSBrZWNjYWsyNTYocmxwLmVuY29kZShyZWNlbnRfYmxvY2tzWy0xXS5oZWFkZXIpKQogICAgcmVjZW50X2Jsb2NrX2hhc2hlcy5hcHBlbmQobW9zdF9yZWNlbnRfYmxvY2tfaGFzaCkKCiAgICByZXR1cm4gcmVjZW50X2Jsb2NrX2hhc2hlcwqUhZSBlH2UKGgFaAZoIGrWFgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwGc291cmNllIxQL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9zcmMvZXRoZXJldW0vYnl6YW50aXVtL3NwZWMucHmUjAl4bWw6c3BhY2WUavYEAACMBWZvcmNllImMCGxhbmd1YWdllIwGcHl0aG9ulIwOaGlnaGxpZ2h0X2FyZ3OUfZRqUQ8AAEsBc4wHbGluZW5vc5SJdWgcahcPAABoHWgeaB9L/WggamoVAAB1YmVoDn2UKGgQXZRqggIAAGFoE12UaBVdlIwZZ2V0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dGVudHMgbmVlZCB0byBiZSB2ZXJpZmllZCBiZWZvcmUgYmVpbmcgYWRkZWQKdG8gdGhlIGNoYWluLiBCbG9ja3MgYXJlIHZlcmlmaWVkIGJ5IGVuc3VyaW5nIHRoYXQgdGhlIGNvbnRlbnRzIG9mIHRoZQpibG9jayBtYWtlIGxvZ2ljYWwgc2Vuc2Ugd2l0aCB0aGUgY29udGVudHMgb2YgdGhlIHBhcmVudCBibG9jay4gVGhlCmluZm9ybWF0aW9uIGluIHRoZSBibG9ja+KAmXMgaGVhZGVyIG11c3QgYWxzbyBtYXRjaCB0aGUgY29ycmVzcG9uZGluZwppbmZvcm1hdGlvbiBpbiB0aGUgYmxvY2sulIWUgZR9lChoBWgGaCBqfRcAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdaB5oH00KAWggamwXAAB1YmhpKYGUfZQoaAWM/FRvIGltcGxlbWVudCBFdGhlcmV1bSwgaW4gdGhlb3J5IGNsaWVudHMgYXJlIG9ubHkgcmVxdWlyZWQgdG8gc3RvcmUgdGhlCm1vc3QgcmVjZW50IDI1NSBibG9ja3Mgb2YgdGhlIGNoYWluIHNpbmNlIGFzIGZhciBhcyBleGVjdXRpb24gaXMKY29uY2VybmVkLCBvbmx5IHRob3NlIGJsb2NrcyBhcmUgYWNjZXNzZWQuIFByYWN0aWNhbGx5LCBob3dldmVyLCBjbGllbnRzCnNob3VsZCBzdG9yZSBtb3JlIGJsb2NrcyB0byBoYW5kbGUgcmVvcmdzLpRoB12UaD+M/FRvIGltcGxlbWVudCBFdGhlcmV1bSwgaW4gdGhlb3J5IGNsaWVudHMgYXJlIG9ubHkgcmVxdWlyZWQgdG8gc3RvcmUgdGhlCm1vc3QgcmVjZW50IDI1NSBibG9ja3Mgb2YgdGhlIGNoYWluIHNpbmNlIGFzIGZhciBhcyBleGVjdXRpb24gaXMKY29uY2VybmVkLCBvbmx5IHRob3NlIGJsb2NrcyBhcmUgYWNjZXNzZWQuIFByYWN0aWNhbGx5LCBob3dldmVyLCBjbGllbnRzCnNob3VsZCBzdG9yZSBtb3JlIGJsb2NrcyB0byBoYW5kbGUgcmVvcmdzLpSFlIGUfZQoaAVoBmgg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ICAgIGdhc191c2VkLAogICAgICAgIHRyYW5zYWN0aW9uc19yb290LAogICAgICAgIHJlY2VpcHRfcm9vdCwKICAgICAgICBibG9ja19sb2dzX2Jsb29tLAogICAgICAgIHN0YXRlLAogICAgKSA9IGFwcGx5X2JvZHkoCiAgICAgICAgY2hhaW4uc3RhdGUsCiAgICAgICAgZ2V0X2xhc3RfMjU2X2Jsb2NrX2hhc2hlcyhjaGFpbiksCiAgICAgICAgYmxvY2suaGVhZGVyLmNvaW5iYXNlLAogICAgICAgIGJsb2NrLmhlYWRlci5udW1iZXIsCiAgICAgICAgYmxvY2suaGVhZGVyLmdhc19saW1pdCwKICAgICAgICBibG9jay5oZWFkZXIudGltZXN0YW1wLAogICAgICAgIGJsb2NrLmhlYWRlci5kaWZmaWN1bHR5LAogICAgICAgIGJsb2NrLnRyYW5zYWN0aW9ucywKICAgICAgICBibG9jay5vbW1lcnMsCiAgICAgICAgY2hhaW4uY2hhaW5faWQsCiAgICApCiAgICBlbnN1cmUoZ2FzX3VzZWQgPT0gYmxvY2suaGVhZGVyLmdhc191c2VkLCBJbnZhbGlkQmxvY2spCiAgICBlbnN1cmUodHJhbnNhY3Rpb25zX3Jvb3QgPT0gYmxvY2suaGVhZGVyLnRyYW5zYWN0aW9uc19yb290LCBJbnZhbGlkQmxvY2spCiAgICBlbnN1cmUoc3RhdGVfcm9vdChzdGF0ZSkgPT0gYmxvY2suaGVhZGVyLnN0YXRlX3Jvb3QsIEludmFsaWRCbG9jaykKICAgIGVuc3VyZShyZWNlaXB0X3Jvb3QgPT0gYmxvY2suaGVhZGVyLnJlY2VpcHRfcm9vdCwgSW52YWxpZEJsb2NrKQogICAgZW5zdXJlKGJsb2NrX2xvZ3NfYmxvb20gPT0gYmxvY2suaGVhZGVyLmJsb29tLCBJbnZhbGlkQmxvY2spCgogICAgY2hhaW4uYmxvY2tzLmFwcGVuZChibG9jaykKICAgIGlmIGxlbihjaGFpbi5ibG9ja3MpID4gMjU1OgogICAgICAgICMgUmVhbCBjbGllbnRzIGhhdmUgdG8gc3RvcmUgbW9yZSBibG9ja3MgdG8gZGVhbCB3aXRoIHJlb3JncywgYnV0IHRoZQogICAgICAgICMgcHJvdG9jb2wgb25seSByZXF1aXJlcyB0aGUgbGFzdCAyNTUKICAgICAgICBjaGFpbi5ibG9ja3MgPSBjaGFpbi5ibG9ja3NbLTI1NTpdCpRoB12UaD9YwgQAAGRlZiBzdGF0ZV90cmFuc2l0aW9uKGNoYWluOiBCbG9ja0NoYWluLCBibG9jazogQmxvY2spIC0+IE5vbmU6CiAgICBwYXJlbnRfaGVhZGVyID0gY2hhaW4uYmxvY2tzWy0xXS5oZWFkZXIKICAgIHZhbGlkYXRlX2hlYWRlcihibG9jay5oZWFkZXIsIHBhcmVudF9oZWFkZXIpCiAgICB2YWxpZGF0ZV9vbW1lcnMoYmxvY2sub21tZXJzLCBibG9jay5oZWFkZXIsIGNoYWluKQogICAgKAogICAgICAgIGdhc191c2VkLAogICAgICAgIHRyYW5zYWN0aW9uc19yb290LAogICAgICAgIHJlY2VpcHRfcm9vdCwKICAgICAgICBibG9ja19sb2dzX2Jsb29tLAogICAgICAgIHN0YXRlLAogICAgKSA9IGFwcGx5X2JvZHkoCiAgICAgICAgY2hhaW4uc3RhdGUsCiAgICAgICAgZ2V0X2xhc3RfMjU2X2Jsb2NrX2hhc2hlcyhjaGFpbiksCiAgICAgICAgYmxvY2suaGVhZGVyLmNvaW5iYXNlLAogICAgICAgIGJsb2NrLmhlYWRlci5udW1iZXIsCiAgICAgICAgYmxvY2suaGVhZGVyLmdhc19saW1pdCwKICAgICAgICBibG9jay5oZWFkZXIudGltZXN0YW1wLAogICAgICAgIGJsb2NrLmhlYWRlci5kaWZmaWN1bHR5LAogICAgICAgIGJsb2NrLnRyYW5zYWN0aW9ucywKICAgICAgICBibG9jay5vbW1lcnMsCiAgICAgICAgY2hhaW4uY2hhaW5faWQsCiAgICApCiAgICBlbnN1cmUoZ2FzX3VzZWQgPT0gYmxvY2suaGVhZGVyLmdhc191c2VkLCBJbnZhbGlkQmxvY2spCiAgICBlbnN1cmUodHJhbnNhY3Rpb25zX3Jvb3QgPT0gYmxvY2suaGVhZGVyLnRyYW5zYWN0aW9uc19yb290LCBJbnZhbGlkQmxvY2spCiAgICBlbnN1cmUoc3RhdGVfcm9vdChzdGF0ZSkgPT0gYmxvY2suaGVhZGVyLnN0YXRlX3Jvb3QsIEludmFsaWRCbG9jaykKICAgIGVuc3VyZShyZWNlaXB0X3Jvb3QgPT0gYmxvY2suaGVhZGVyLnJlY2VpcHRfcm9vdCwgSW52YWxpZEJsb2NrKQogICAgZW5zdXJlKGJsb2NrX2xvZ3NfYmxvb20gPT0gYmxvY2suaGVhZGVyLmJsb29tLCBJbnZhbGlkQmxvY2spCgogICAgY2hhaW4uYmxvY2tzLmFwcGVuZChibG9jaykKICAgIGlmIGxlbihjaGFpbi5ibG9ja3MpID4gMjU1OgogICAgICAgICMgUmVhbCBjbGllbnRzIGhhdmUgdG8gc3RvcmUgbW9yZSBibG9ja3MgdG8gZGVhbCB3aXRoIHJlb3JncywgYnV0IHRoZQogICAgICAgICMgcHJvdG9jb2wgb25seSByZXF1aXJlcyB0aGUgbGFzdCAyNTUKICAgICAgICBjaGFpbi5ibG9ja3MgPSBjaGFpbi5ibG9ja3NbLTI1NTpdCpSFlIGUfZQoaAVoBmggaj4YAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAZzb3VyY2WUjFAvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL3NyYy9ldGhlcmV1bS9ieXphbnRpdW0vc3BlYy5weZSMCXhtbDpzcGFjZZRq9gQAAIwFZm9yY2WUiYwIbGFuZ3VhZ2WUjAZweXRob26UjA5oaWdobGlnaHRfYXJnc5R9lGpRDwAASwFzjAdsaW5lbm9zlIl1aBxqFw8AAGgdaB5oH00bAWggavQWAAB1YmVoDn2UKGgQXZRqpAIAAGFoE12UaBVdlIwQc3RhdGVfdHJhbnNpdGlvbpRhaBddlGgZXZR1aBxoM2gdaB5oH00CAWggaqIOAABoIWgDdWJoNCmBlH2UKGgFaAZoB12UKGg5KYGUfZQoaAWMD3ZhbGlkYXRlX2hlYWRlcpRoB12UaD+MD3ZhbGlkYXRlX2hlYWRlcpSFlIGUfZQoaAVoBmggal8YAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaDho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HWgeaB9OaCBqeBgAAHViZWgOfZQoaBBdlGgTXZQoas0YAACMCGZ1bmN0aW9ulGVoFV2UaBddlGgZXZSMBmRvbWFpbpRqzRgAAIwHb2JqdHlwZZRqkhkAAIwIZGVzY3R5cGWUapIZAACMB25vaW5kZXiUiXVoHGrTDgAAaB1OaB9OaCBqXBgAAHViahgPAAApgZR9lChoBVhjAwAAZGVmIHZhbGlkYXRlX2hlYWRlcihoZWFkZXI6IEhlYWRlciwgcGFyZW50X2hlYWRlcjogSGVhZGVyKSAtPiBOb25lOgogICAgcGFyZW50X2hhc19vbW1lcnMgPSBwYXJlbnRfaGVhZGVyLm9tbWVyc19oYXNoICE9IEVNUFRZX09NTUVSX0hBU0gKICAgIGVuc3VyZShoZWFkZXIudGltZXN0YW1wID4gcGFyZW50X2hlYWRlci50aW1lc3RhbXAsIEludmFsaWRCbG9jaykKICAgIGVuc3VyZShoZWFkZXIubnVtYmVyID09IHBhcmVudF9oZWFkZXIubnVtYmVyICsgMSwgSW52YWxpZEJsb2NrKQogICAgZW5zdXJlKAogICAgICAgIGNoZWNrX2dhc19saW1pdChoZWFkZXIuZ2FzX2xpbWl0LCBwYXJlbnRfaGVhZGVyLmdhc19saW1pdCksCiAgICAgICAgSW52YWxpZEJsb2NrLAogICAgKQogICAgZW5zdXJlKGxlbihoZWFkZXIuZXh0cmFfZGF0YSkgPD0gMzIsIEludmFsaWRCbG9jaykKCiAgICBibG9ja19kaWZmaWN1bHR5ID0gY2FsY3VsYXRlX2Jsb2NrX2RpZmZpY3VsdHkoCiAgICAgICAgaGVhZGVyLm51bWJlciwKICAgICAgICBoZWFkZXIudGltZXN0YW1wLAogICAgICAgIHBhcmVudF9oZWFkZXIudGltZXN0YW1wLAogICAgICAgIHBhcmVudF9oZWFkZXIuZGlmZmljdWx0eSwKICAgICAgICBwYXJlbnRfaGFzX29tbWVycywKICAgICkKICAgIGVuc3VyZShoZWFkZXIuZGlmZmljdWx0eSA9PSBibG9ja19kaWZmaWN1bHR5LCBJbnZhbGlkQmxvY2spCgogICAgYmxvY2tfcGFyZW50X2hhc2ggPSBrZWNjYWsyNTYocmxwLmVuY29kZShwYXJlbnRfaGVhZGVyKSkKICAgIGVuc3VyZShoZWFkZXIucGFyZW50X2hhc2ggPT0gYmxvY2tfcGFyZW50X2hhc2gsIEludmFsaWRCbG9jaykKCiAgICB2YWxpZGF0ZV9wcm9vZl9vZl93b3JrKGhlYWRlcikKlGgHXZRoP1hjAwAAZGVmIHZhbGlkYXRlX2hlYWRlcihoZWFkZXI6IEhlYWRlciwgcGFyZW50X2hlYWRlcjogSGVhZGVyKSAtPiBOb25lOgogICAgcGFyZW50X2hhc19vbW1lcnMgPSBwYXJlbnRfaGVhZGVyLm9tbWVyc19oYXNoICE9IEVNUFRZX09NTUVSX0hBU0gKICAgIGVuc3VyZShoZWFkZXIudGltZXN0YW1wID4gcGFyZW50X2hlYWRlci50aW1lc3RhbXAsIEludmFsaWRCbG9jaykKICAgIGVuc3VyZShoZWFkZXIubnVtYmVyID09IHBhcmVudF9oZWFkZXIubnVtYmVyICsgMSwgSW52YWxpZEJsb2NrKQogICAgZW5zdXJlKAogICAgICAgIGNoZWNrX2dhc19saW1pdChoZWFkZXIuZ2FzX2xpbWl0LCBwYXJlbnRfaGVhZGVyLmdhc19saW1pdCksCiAgICAgICAgSW52YWxpZEJsb2NrLAogICAgKQogICAgZW5zdXJlKGxlbihoZWFkZXIuZXh0cmFfZGF0YSkgPD0gMzIsIEludmFsaWRCbG9jaykKCiAgICBibG9ja19kaWZmaWN1bHR5ID0gY2FsY3VsYXRlX2Jsb2NrX2RpZmZpY3VsdHkoCiAgICAgICAgaGVhZGVyLm51bWJlciwKICAgICAgICBoZWFkZXIudGltZXN0YW1wLAogICAgICAgIHBhcmVudF9oZWFkZXIudGltZXN0YW1wLAogICAgICAgIHBhcmVudF9oZWFkZXIuZGlmZmljdWx0eSwKICAgICAgICBwYXJlbnRfaGFzX29tbWVycywKICAgICkKICAgIGVuc3VyZShoZWFkZXIuZGlmZmljdWx0eSA9PSBibG9ja19kaWZmaWN1bHR5LCBJbnZhbGlkQmxvY2spCgogICAgYmxvY2tfcGFyZW50X2hhc2ggPSBrZWNjYWsyNTYocmxwLmVuY29kZShwYXJlbnRfaGVhZGVyKSkK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CiAgICAgICAgaGVhZGVyLnJlY2VpcHRfcm9vdCwKICAgICAgICBoZWFkZXIuYmxvb20sCiAgICAgICAgaGVhZGVyLmRpZmZpY3VsdHksCiAgICAgICAgaGVhZGVyLm51bWJlciwKICAgICAgICBoZWFkZXIuZ2FzX2xpbWl0LAogICAgICAgIGhlYWRlci5nYXNfdXNlZCwKICAgICAgICBoZWFkZXIudGltZXN0YW1wLAogICAgICAgIGhlYWRlci5leHRyYV9kYXRhLAogICAgXQoKICAgIHJldHVybiBybHAucmxwX2hhc2goaGVhZGVyX2RhdGFfd2l0aG91dF9wb3dfYXJ0ZWZhY3RzKQqUaAddlGg/WAMCAABkZWYgZ2VuZXJhdGVfaGVhZGVyX2hhc2hfZm9yX3BvdyhoZWFkZXI6IEhlYWRlcikgLT4gSGFzaDMyOgogICAgaGVhZGVyX2RhdGFfd2l0aG91dF9wb3dfYXJ0ZWZhY3RzID0gWwogICAgICAgIGhlYWRlci5wYXJlbnRfaGFzaCwKICAgICAgICBoZWFkZXIub21tZXJzX2hhc2gsCiAgICAgICAgaGVhZGVyLmNvaW5iYXNlLAogICAgICAgIGhlYWRlci5zdGF0ZV9yb290LAogICAgICAgIGhlYWRlci50cmFuc2FjdGlvbnNfcm9vdCwKICAgICAgICBoZWFkZXIucmVjZWlwdF9yb290LAogICAgICAgIGhlYWRlci5ibG9vbSwKICAgICAgICBoZWFkZXIuZGlmZmljdWx0eSwKICAgICAgICBoZWFkZXIubnVtYmVyLAogICAgICAgIGhlYWRlci5nYXNfbGltaXQsCiAgICAgICAgaGVhZGVyLmdhc191c2VkLAogICAgICAgIGhlYWRlci50aW1lc3RhbXAsCiAgICAgICAgaGVhZGVyLmV4dHJhX2RhdGEsCiAgICBdCgogICAgcmV0dXJuIHJscC5ybHBfaGFzaChoZWFkZXJfZGF0YV93aXRob3V0X3Bvd19hcnRlZmFjdHMpCpSFlIGUfZQoaAVoBmggalobAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAZzb3VyY2WUjFAvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3Bl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IC0+IE5vbmU6CiAgICBoZWFkZXJfaGFzaCA9IGdlbmVyYXRlX2hlYWRlcl9oYXNoX2Zvcl9wb3coaGVhZGVyKQogICAgIyBUT0RPOiBNZW1vaXplIHRoaXMgc29tZXdoZXJlIGFuZCByZWFkIGZyb20gdGhhdCBkYXRhIGluc3RlYWQgb2YKICAgICMgY2FsY3VsYXRpbmcgY2FjaGUgZm9yIGV2ZXJ5IGJsb2NrIHZhbGlkYXRpb24uCiAgICBjYWNoZSA9IGdlbmVyYXRlX2NhY2hlKGhlYWRlci5udW1iZXIpCiAgICBtaXhfZGlnZXN0LCByZXN1bHQgPSBoYXNoaW1vdG9fbGlnaHQoCiAgICAgICAgaGVhZGVyX2hhc2gsIGhlYWRlci5ub25jZSwgY2FjaGUsIGRhdGFzZXRfc2l6ZShoZWFkZXIubnVtYmVyKQogICAgKQoKICAgIGVuc3VyZShtaXhfZGlnZXN0ID09IGhlYWRlci5taXhfZGlnZXN0LCBJbnZhbGlkQmxvY2spCiAgICBlbnN1cmUoCiAgICAgICAgVWludC5mcm9tX2JlX2J5dGVzKHJlc3VsdCkgPD0gKFUyNTZfQ0VJTF9WQUxVRSAvLyBoZWFkZXIuZGlmZmljdWx0eSksCiAgICAgICAgSW52YWxpZEJsb2NrLAogICAgKQqUaAddlGg/WDYCAABkZWYgdmFsaWRhdGVfcHJvb2Zfb2Zfd29yayhoZWFkZXI6IEhlYWRlcikgLT4gTm9uZToKICAgIGhlYWRlcl9oYXNoID0gZ2VuZXJhdGVfaGVhZGVyX2hhc2hfZm9yX3BvdyhoZWFkZXIpCiAgICAjIFRPRE86IE1lbW9pemUgdGhpcyBzb21ld2hlcmUgYW5kIHJlYWQgZnJvbSB0aGF0IGRhdGEgaW5zdGVhZCBvZgogICAgIyBjYWxjdWxhdGluZyBjYWNoZSBmb3IgZXZlcnkgYmxvY2sgdmFsaWRhdGlvbi4KICAgIGNhY2hlID0gZ2VuZXJhdGVfY2FjaGUoaGVhZGVyLm51bWJlcikKICAgIG1peF9kaWdlc3QsIHJlc3VsdCA9IGhhc2hpbW90b19saWdodCgKICAgICAgICBoZWFkZXJfaGFzaCwgaGVhZGVyLm5vbmNlLCBjYWNoZSwgZGF0YXNldF9z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c3OUaAaMCGZ1bGxuYW1llGrJHAAAdWgcatgOAABoHWgeaB9NcwFoIGrAHAAAdWJqAg8AACmBlH2UKGgFaAZoB12UKGhpKYGUfZQoaAWMEUV4ZWN1dGVzIGEgYmxvY2sulGgHXZRoP4wRRXhlY3V0ZXMgYSBibG9jay6UhZSBlH2UKGgFaAZoIGrfHQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1oHmgfTXYBaCBq3B0AAHViaGkpgZR9lChoBVh6AQAATWFueSBvZiB0aGUgY29udGVudHMgb2YgYSBibG9jayBhcmUgc3RvcmVkIGluIGRhdGEgc3RydWN0dXJlcyBjYWxsZWQKdHJpZXMuIFRoZXJlIGlzIGEgdHJhbnNhY3Rpb25zIHRyaWUgd2hpY2ggaXMgc2ltaWxhciB0byBhIGxlZGdlciBvZiB0aGUKdHJhbnNhY3Rpb25zIHN0b3JlZCBpbiB0aGUgY3VycmVudCBibG9jay4gVGhlcmUgaXMgYWxzbyBhIHJlY2VpcHRzIHRyaWUKd2hpY2ggc3RvcmVzIHRoZSByZXN1bHRzIG9mIGV4ZWN1dGluZyBhIHRyYW5zYWN0aW9uLCBsaWtlIHRoZSBwb3N0IHN0YXRlCmFuZCBnYXMgdXNlZC4gVGhpcyBmdW5jdGlvbiBjcmVhdGVzIGFuZCBleGVjdXRlcyB0aGUgYmxvY2sgdGhhdCBpcyB0byBiZQphZGRlZCB0byB0aGUgY2hhaW4ulGgHXZRoP1h6AQAATWFueSBvZiB0aGUgY29udGVudHMgb2YgYSBibG9jayBhcmUgc3RvcmVkIGluIGRhdGEgc3RydWN0dXJlcyBjYWxsZWQKdHJpZXMuIFRoZXJlIGlzIGEgdHJhbnNhY3Rpb25zIHRyaWUgd2hpY2ggaXMgc2ltaWxhciB0byBhIGxlZGdlciBvZiB0aGUKdHJhbnNhY3Rpb25zIHN0b3JlZCBpbiB0aGUgY3VycmVudCBibG9jay4gVGhlcmUgaXMgYWxzbyBhIHJlY2VpcHRzIHRyaWUKd2hpY2ggc3RvcmVzIHRoZSByZXN1bHRzIG9mIGV4ZWN1dGluZyBhIHRyYW5zYWN0aW9uLCBsaWtlIHRoZSBwb3N0IHN0YXRlCmFuZCBn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Qnl0ZXMsIE9wdGlvbmFsW1RyYW5zYWN0aW9uXV0gPSBUcmllKAogICAgICAgIHNlY3VyZWQ9RmFsc2UsIGRlZmF1bHQ9Tm9uZQogICAgKQogICAgcmVjZWlwdHNfdHJpZTogVHJpZVtCeXRlcywgT3B0aW9uYWxbUmVjZWlwdF1dID0gVHJpZSgKICAgICAgICBzZWN1cmVkPUZhbHNlLCBkZWZhdWx0PU5vbmUKICAgICkKICAgIGJsb2NrX2xvZ3M6IFR1cGxlW0xvZywgLi4uXSA9ICgpCgogICAgZm9yIGksIHR4IGluIGVudW1lcmF0ZSh0cmFuc2FjdGlvbnMpOgogICAgICAgIHRyaWVfc2V0KHRyYW5zYWN0aW9uc190cmllLCBybHAuZW5jb2RlKFVpbnQoaSkpLCB0eCkKCiAgICAgICAgZW5zdXJlKHR4LmdhcyA8PSBnYXNfYXZhaWxhYmxlLCBJbnZhbGlkQmxvY2spCiAgICAgICAgc2VuZGVyX2FkZHJlc3MgPSByZWNvdmVyX3NlbmRlcihjaGFpbl9pZCwgdHgpCgogICAgICAgIGVudiA9IHZtLkVudmlyb25tZW50KAogICAgICAgICAgICBjYWxsZXI9c2VuZGVyX2FkZHJlc3MsCiAgICAgICAgICAgIG9yaWdpbj1zZW5kZXJfYWRkcmVzcywKICAgICAgICAgICAgYmxvY2tfaGFzaGVzPWJsb2NrX2hhc2hlcywKICAgICAgICAgICAgY29pbmJhc2U9Y29pbmJhc2UsCiAgICAgICAgICAgIG51bWJlcj1ibG9ja19udW1iZXIsCiAgICAgICAgICAgIGdhc19saW1pdD1ibG9ja19nYXNfbGltaXQsCiAgICAgICAgICAgIGdhc19wcmljZT10eC5nYXNfcHJpY2UsCiAgICAgICAgICAgIHRpbWU9YmxvY2tfdGltZSwKICAgICAgICAgICAgZGlmZmljdWx0eT1ibG9ja19kaWZmaWN1bHR5LAogICAgICAgICAgICBzdGF0ZT1zdGF0ZSwKICAgICAgICApCgogICAgICAgIGdhc191c2VkLCBsb2dzLCBoYXNfZXJyZWQgPSBwcm9jZXNzX3RyYW5zYWN0aW9uKGVudiwgdHgpCiAgICAgICAgZ2FzX2F2YWlsYWJsZSAtPSBnYXNfdXNlZAoKICAgICAgICB0cmllX3NldCgKICAgICAgICAgICAgcmVjZWlwdHNfdHJpZSwKICAgICAgICAgICAgcmxwLmVuY29kZShVaW50KGkpKSwKICAgICAgICAgICAgUmVjZWlwdCgKICAgICAgICAgICAgICAgIHN1Y2NlZWRlZD1ub3QgaGFzX2VycmVkLAogICAgICAgICAgICAgICAgY3VtdWxhdGl2ZV9nYXNfdXNlZD0oYmxvY2tfZ2FzX2xpbWl0IC0gZ2FzX2F2YWlsYWJsZSksCiAgICAgICAgICAgICAgICBibG9vbT1sb2dzX2Jsb29tKGxvZ3MpLAogICAgICAgICAgICAgICAgbG9ncz1sb2dzLAogICAgICAgICAgICApLAogICAgICAgICkKICAgICAgICBibG9ja19sb2dzICs9IGxvZ3MKCiAgICBwYXlfcmV3YXJkcyhzdGF0ZSwgYmxvY2tfbnVtYmVyLCBjb2luYmFzZSwgb21tZXJzKQoKICAgIGdhc19yZW1haW5pbmcgPSBibG9ja19nYXNfbGltaXQgLSBnYXNfYXZhaWxhYmxlCgogICAgYmxvY2tfbG9nc19ibG9vbSA9IGxvZ3NfYmxvb20oYmxvY2tfbG9ncykKCiAgICByZXR1cm4gKAogICAgICAgIGdhc19yZW1haW5pbmcsCiAgICAgICAgcm9vdCh0cmFuc2FjdGlvbnNfdHJpZSksCiAgICAgICAgcm9vdChyZWNlaXB0c190cmllKSwKICAgICAgICBibG9ja19sb2dzX2Jsb29tLAogICAgICAgIHN0YXRlLAogICAgKQqUaAddlGg/WJYHAABkZWYgYXBwbHlfYm9keSgKICAgIHN0YXRlOiBTdGF0ZSwKICAgIGJsb2NrX2hhc2hlczogTGlzdFtIYXNoMzJdLAogICAgY29pbmJhc2U6IEFkZHJlc3MsCiAgICBibG9ja19udW1iZXI6IFVpbnQsCiAgICBibG9ja19nYXNfbGltaXQ6IFVpbnQsCiAgICBibG9ja190aW1lOiBVMjU2LAogICAgYmxvY2tfZGlmZmljdWx0eTogVWludCwKICAgIHRyYW5zYWN0aW9uczogVHVwbGVbVHJhbnNhY3Rpb24sIC4uLl0sCiAgICBvbW1lcnM6IFR1cGxlW0hlYWRlciwgLi4uXSwKICAgIGNoYWluX2lkOiBVaW50NjQsCikgLT4gVHVwbGVbVWludCwgUm9vdCwgUm9vdCwgQmxvb20sIFN0YXRlXToKICAgIGdhc19hdmFpbGFibGUgPSBibG9ja19nYXNfbGltaXQKICAgIHRyYW5zYWN0aW9uc190cmllOiBUcmllW0J5dGVzLCBPcHRpb25hbFtUcmFuc2FjdGlvbl1dID0gVHJpZSgKICAgICAgICBzZWN1cmVkPUZhbHNlLCBkZWZhdWx0PU5vbmUKICAgICkKICAgIHJlY2VpcHRzX3RyaWU6IFRyaWVbQnl0ZXMsIE9wdGlvbmFsW1JlY2VpcHRdXSA9IFRyaWUoCiAgICAgICAgc2VjdXJlZD1GYWxzZSwgZGVmYXVsdD1Ob25lCiAgICApCiAgICBibG9ja19sb2dzOiBUdXBsZVtMb2csIC4uLl0gPSAoKQoKICAgIGZvciBpLCB0eCBpbiBlbnVtZXJhdGUodHJhbnNhY3Rpb25zKToKICAgICAgICB0cmllX3NldCh0cmFuc2FjdGlvbnNfdHJpZSwgcmxwLmVuY29kZShVaW50KGkpKSwgdHgpCgogICAgICAgIGVuc3VyZSh0eC5nYXMgPD0gZ2FzX2F2YWlsYWJsZSwgSW52YWxpZEJsb2NrKQogICAgICAgIHNlbmRlcl9hZGRyZXNzID0gcmVjb3Zlcl9zZW5kZXIoY2hhaW5faWQsIHR4KQoKICAgICAgICBlbnYgPSB2bS5FbnZpcm9ubWVudCgKICAgICAgICAgICAgY2FsbGVyPXNlbmRlcl9hZGRyZXNzLAogICAgICAgICAgICBvcmlnaW49c2VuZGVyX2FkZHJlc3MsCiAgICAgICAgICAgIGJsb2NrX2hhc2hlcz1ibG9ja19oYXNoZXMsCiAgICAgICAgICAgIGNvaW5iYXNlPWNvaW5iYXNlLAogICAgICAgICAgICBudW1iZXI9YmxvY2tfbnVtYmVyLAogICAgICAgICAgICBnYXNfbGltaXQ9YmxvY2tfZ2FzX2xpbWl0LAogICAgICAgICAgICBnYXNfcHJpY2U9dHguZ2FzX3ByaWNlLAogICAgICAgICAgICB0aW1lPWJsb2NrX3RpbWUsCiAgICAgICAgICAgIGRpZmZpY3VsdHk9YmxvY2tfZGlmZmljdWx0eSwKICAgICAgICAgICAgc3RhdGU9c3RhdGUsCiAgICAgICAgKQoKICAgICAgICBnYXNfdXNlZCwgbG9ncywgaGFzX2VycmVkID0gcHJvY2Vzc190cmFuc2FjdGlvbihlbnYsIHR4KQogICAgICAgIGdhc19hdmFpbGFibGUgLT0gZ2FzX3VzZWQKCiAgICAgICAgdHJpZV9zZXQoCiAgICAgICAgICAgIHJlY2VpcHRzX3RyaWUsCiAgICAgICAgICAgIHJscC5lbmNvZGUoVWludChpKSksCiAgICAgICAgICAgIFJlY2VpcHQoCiAgICAgICAgICAgICAgICBzdWNjZWVkZWQ9bm90IGhhc19lcnJlZCwKICAgICAgICAgICAgICAgIGN1bXVsYXRpdmVfZ2FzX3VzZWQ9KGJsb2NrX2dhc19saW1pdCAtIGdhc19hdmFpbGFibGUpLAogICAgICAgICAgICAgICAgYmxvb209bG9nc19ibG9vbShsb2dzKSwKICAgICAgICAgICAgICAgIGxvZ3M9bG9ncywKICAgICAgICAgICAgKSwKICAgICAgICApCiAgICAgICAgYmxvY2tfbG9ncyArPSBsb2dzCgogICAgcGF5X3Jld2FyZHMoc3RhdGUsIGJsb2NrX251bWJlciwgY29pbmJhc2UsIG9tbWVycykKCiAgICBnYXNfcmVtYWluaW5nID0gYmxvY2tfZ2FzX2xpbWl0IC0gZ2FzX2F2YWlsYWJsZQoKICAgIGJsb2NrX2xvZ3NfYmxvb20gPSBsb2dzX2Jsb29tKGJsb2NrX2xvZ3MpCgogICAgcmV0dXJuICgKICAgICAgICBnYXNfcmVtYWluaW5nLAogICAgICAgIHJvb3QodHJhbnNhY3Rpb25zX3RyaWUpLAogICAgICAgIHJvb3QocmVjZWlwdHNfdHJpZSksCiAgICAgICAgYmxvY2tfbG9nc19ibG9vbSwKICAgICAgICBzdGF0ZSwKICAgICkKlIWUgZR9lChoBWgGaCBqFyEAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMBnNvdXJjZZSMUC9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1z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KGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHWgeaB9NoQFoIGrFIQAAdWJoaSmBlH2UKGgFjKRBbiBvbW1lciBibG9jayBpcyBhIGJsb2NrIHRoYXQgd2Fzbid0IGNhbm9uaWNhbGx5IGFkZGVkIHRvIHRoZQpibG9ja2NoYWluIGJlY2F1c2UgaXQgd2Fzbid0IHZhbGlkYXRlZCBhcyBmYXN0IGFzIHRoZSBjYW5vbmljYWwgYmxvY2sKYnV0IHdhcyBtaW5lZCBhdCB0aGUgc2FtZSB0aW1lLpRoB12UaD+MqEFuIG9tbWVyIGJsb2NrIGlzIGEgYmxvY2sgdGhhdCB3YXNu4oCZdCBjYW5vbmljYWxseSBhZGRlZCB0byB0aGUKYmxvY2tjaGFpbiBiZWNhdXNlIGl0IHdhc27igJl0IHZhbGlkYXRlZCBhcyBmYXN0IGFzIHRoZSBjYW5vbmljYWwgYmxvY2sKYnV0IHdhcyBtaW5lZCBhdCB0aGUgc2FtZSB0aW1lLpSFlIGUfZQoaAVoBmggatYhAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHWgeaB9NowFoIGrFIQAAdWJoaSmBlH2UKGgFWBIBAABUbyBiZSBjb25zaWRlcmVkIHZhbGlkLCB0aGUgb21tZXJzIG11c3QgYWRoZXJlIHRvIHRoZSBydWxlcyBkZWZpbmVkIGluCnRoZSBFdGhlcmV1bSBwcm90b2NvbC4gVGhlIG1heGltdW0gYW1vdW50IG9mIG9tbWVycyBpcyAyIHBlciBibG9jayBhbmQKdGhlcmUgY2Fubm90IGJlIGR1cGxpY2F0ZSBvbW1lcnMgaW4gYSBibG9jay4gTWFueSBvZiB0aGUgb3RoZXIgb21tZXIKY29udHJhaW50cyBhcmUgbGlzdGVkIGluIHRoZSBpbi1saW5lIGNvbW1lbnRzIG9mIHRoaXMgZnVuY3Rpb24ulGgHXZRoP1gSAQAAVG8gYmUgY29uc2lkZXJlZCB2YWxpZCwgdGhlIG9tbWVycyBtdXN0IGFkaGVyZSB0byB0aGUgcnVsZXMgZGVmaW5lZCBpbgp0aGUgRXRoZXJldW0gcHJvdG9jb2wuIFRoZSBtYXhpbXVtIGFtb3VudCBvZiBvbW1lcnMgaXMgMiBwZXIgYmxvY2sgYW5kCnRoZXJlIGNhbm5vdCBiZSBkdXBsaWNhdGUgb21tZXJzIGluIGEgYmxvY2suIE1hbnkgb2YgdGhlIG90aGVyIG9tbWVyCmNvbnRyYWludHMgYXJlIGxpc3RlZCBpbiB0aGUgaW4tbGluZSBjb21tZW50cyBvZiB0aGlzIGZ1bmN0aW9uLpSFlIGUfZQoaAVoBmggauQhAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHWgeaB9NpwFoIGrFIQAAdWJqdBQAACmBlH2UKGgFaAZoB12UankUAAApgZR9lChoBWgGaAddlChqfhQAACmBlH2UKGgFjApQYXJhbWV0ZXJzlGgHXZRoP4wKUGFyYW1ldGVyc5SFlIGUfZQoaAVoBmggavghAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcan0UAABoHWgeaB9LAGggavUhAAB1YmqOFAAAKYGUfZQoaAVoBmgHXZRoXymBlH2UKGgFaAZoB12UKGhkKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjDhvbW1lcnMgLS0gTGlzdCBvZiBvbW1lcnMgbWVudGlvbmVkIGluIHRoZSBjdXJyZW50IGJsb2NrLpRoB12UKGqXFAAAKYGUfZQoaAWMBm9tbWVyc5RoB12UaD+MBm9tbWVyc5SFlIGUfZQoaAVoBmggahMiAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAtyZWZzcGVjaWZpY5SIjAlweTptb2R1bGWUav4OAACMCHB5OmNsYXNzlE51aBxqlhQAAGgdTmgfTmggag8iAAB1Ymg/jDMg4oCTIExpc3Qgb2Ygb21tZXJzIG1lbnRpb25lZCBpbiB0aGUgY3VycmVudCBibG9jay6UhZSBlH2UKGgFaAZoIGoPIgAAaCFoA2gdaERoH0sAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1OaB9OaCBqDCIAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoY2gdTmgfTmggagkiAAB1YmhkKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjCxibG9ja19oZWFkZXIgLS0gVGhlIGhlYWRlciBvZiBjdXJyZW50IGJsb2NrLpRoB12UKGqXFAAAKYGUfZQoaAWMDGJsb2NrX2hlYWRlcpRoB12UaD+MDGJsb2NrX2hlYWRlcpSFlIGUfZQoaAVoBmggajsiAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAtyZWZzcGVjaWZpY5SIjAlweTptb2R1bGWUav4OAACMCHB5OmNsYXNzlE51aBxqlhQAAGgdTmgfTmggajciAAB1Ymg/jCEg4oCTIFRoZSBoZWFkZXIgb2YgY3VycmVudCBibG9jay6UhZSBlH2UKGgFaAZoIGo3IgAAaCFoA2gdaERoH0sAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1OaB9OaCBqNCIAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoY2gdTmgfTmggagkiAAB1YmhkKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjCNjaGFpbiAtLSBIaXN0b3J5IGFuZCBjdXJyZW50IHN0YXRlLpRoB12UKGqXFAAAKYGUfZQoaAWMBWNoYWlulGgHXZRoP4wFY2hhaW6UhZSBlH2UKGgFaAZoIGpjIgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwLcmVmc3BlY2lmaWOUiIwJcHk6bW9kdWxllGr+DgAAjAhweTpjbGFzc5ROdWgcapYUAABoHU5oH05oIGpfIgAAdWJoP4wfIOKAkyBIaXN0b3J5IGFuZCBjdXJyZW50IHN0YXRlLpSFlIGUfZQoaAVoBmggal8iAABoIWgDaB1oRGgfSwB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHU5oH05oIGpcIgAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhjaB1OaB9OaCBqCSIAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoXmgdTmgfTmggagYiAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcao0UAABoHU5oH05oIGr1IQAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGp4FAAAaB1OaB9OaCBq8iEAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqcxQAAGgdTmgfTmggasUhAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcagEPAABoHWgeaB9OaCBqUSEAAHViZWgOfZQoaBBdlGgTXZQoar4hAACMCGZ1bmN0aW9ulGVoFV2UaBddlGgZXZSMBmRvbWFpbpRqviEAAIwHb2JqdHlwZZRqpSIAAIwIZGVzY3R5cGWUaqUiAACMB25vaW5kZXiUiXVoHGrTDgAAaB1OaB9OaCBqNSEAAHViahgPAAApgZR9lChoBVgBCQAAZGVmIHZhbGlkYXRlX29tbWVycygKICAgIG9tbWVyczogVHVwbGVbSGVhZGVyLCAuLi5dLCBibG9ja19oZWFkZXI6IEhlYWRlciwgY2hhaW46IEJsb2NrQ2hhaW4KKSAtPiBOb25lOgogICAgYmxvY2tfaGFzaCA9IHJscC5ybHBfaGFzaChibG9ja19oZWFkZXIpCgogICAgZW5zdXJlKHJscC5ybHBfaGFzaChvbW1lcnMpID09IGJsb2NrX2hlYWRlci5vbW1lcnNfaGFzaCwgSW52YWxpZEJsb2NrKQoKICAgIGlmIGxlbihvbW1lcnMpID09IDA6CiAgICAgICAgIyBOb3RoaW5nIHRvIHZhbGlkYXRlCiAgICAgICAgcmV0dXJuCgogICAgIyBDaGVjayB0aGF0IGVhY2ggb21tZXIgc2F0aXNmaWVzIHRoZSBjb25zdHJhaW50cyBvZiBhIGhlYWRlcgogICAgZm9yIG9tbWVyIGluIG9tbWVyczoKICAgICAgICBlbnN1cmUoMSA8PSBvbW1lci5udW1iZXIgPCBibG9ja19oZWFkZXIubnVtYmVyLCBJbnZhbGlkQmxvY2spCiAgICAgICAgb21tZXJfcGFyZW50X2hlYWRlciA9IGNoYWluLmJsb2Nrc1sKICAgICAgICAgICAgLShibG9ja19oZWFkZXIubnVtYmVyIC0gb21tZXIubnVtYmVyKSAtIDEKICAgICAgICBdLmhlYWRlcgogICAgICAgIHZhbGlkYXRlX2hlYWRlcihvbW1lciwgb21tZXJfcGFyZW50X2hlYWRlcikKCiAgICAjIENoZWNrIHRoYXQgdGhlcmUgY2FuIGJlIG9ubHkgYXQgbW9zdCAyIG9tbWVycyBmb3IgYSBibG9jay4KICAgIGVuc3VyZShsZW4ob21tZXJzKSA8PSAyLCBJbnZhbGlkQmxvY2spCgogICAgb21tZXJzX2hhc2hlcyA9IFtybHAucmxwX2hhc2gob21tZXIpIGZvciBvbW1lciBpbiBvbW1lcnNdCiAgICAjIENoZWNrIHRoYXQgdGhlcmUgYXJlIG5vIGR1cGxpY2F0ZXMgaW4gdGhlIG9tbWVycyBvZiBjdXJyZW50IGJsb2NrCiAgICBlbnN1cmUobGVuKG9tbWVyc19oYXNoZXMpID09IGxlbihzZXQob21tZXJzX2hhc2hlcykpLCBJbnZhbGlkQmxvY2spCgogICAgcmVjZW50X2Nhbm9uaWNhbF9ibG9ja3MgPSBjaGFpbi5ibG9ja3NbLShNQVhfT01NRVJfREVQVEggKyAxKSA6XQogICAgcmVjZW50X2Nhbm9uaWNhbF9ibG9ja19oYXNoZXMgPSB7CiAgICAgICAgcmxwLnJscF9oYXNoKGJsb2NrLmhlYWRlcikgZm9yIGJsb2NrIGluIHJlY2VudF9jYW5vbmljYWxfYmxvY2tzCiAgICB9CiAgICByZWNlbnRfb21tZXJzX2hhc2hlczogU2V0W0hhc2gzMl0gPSBzZXQoKQogICAgZm9yIGJsb2NrIGluIHJlY2VudF9jYW5vbmljYWxfYmxvY2tzOgogICAgICAgIHJlY2VudF9vbW1lcnNfaGFzaGVzID0gcmVjZW50X29tbWVyc19oYXNoZXMudW5pb24oCiAgICAgICAgICAgIHtybHAucmxwX2hhc2gob21tZXIpIGZvciBvbW1lciBpbiBibG9jay5vbW1lcnN9CiAgICAgICAgKQoKICAgIGZvciBvbW1lcl9pbmRleCwgb21tZXIgaW4gZW51bWVyYXRlKG9tbWVycyk6CiAgICAgICAgb21tZXJfaGFzaCA9IG9tbWVyc19oYXNoZXNbb21tZXJfaW5kZXhdCiAgICAgICAgIyBUaGUgY3VycmVudCBibG9jayBzaG91bGRuJ3QgYmUgdGhlIG9tbWVyCiAgICAgICAgZW5zdXJlKG9tbWVyX2hhc2ggIT0gYmxvY2tfaGFzaCwgSW52YWxpZEJsb2NrKQoKICAgICAgICAjIE9tbWVyIHNob3VsZG4ndCBiZSBvbmUgb2YgdGhlIHJlY2VudCBjYW5vbmljYWwgYmxvY2tzCiAgICAgICAgZW5zdXJlKG9tbWVyX2hhc2ggbm90IGluIHJlY2VudF9jYW5vbmljYWxfYmxvY2tfaGFzaGVzLCBJbnZhbGlkQmxvY2spCgogICAgICAgICMgT21tZXIgc2hvdWxkbid0IGJlIG9uZSBvZiB0aGUgdW5jbGVzIG1lbnRpb25lZCBpbiB0aGUgcmVjZW50CiAgICAgICAgIyBjYW5vbmljYWwgYmxvY2tzCiAgICAgICAgZW5zdXJlKG9tbWVyX2hhc2ggbm90IGluIHJlY2VudF9vbW1lcnNfaGFzaGVzLCBJbnZhbGlkQmxvY2spCgogICAgICAgICMgT21tZXIgYWdlIHdpdGggcmVzcGVjdCB0byB0aGUgY3VycmVudCBibG9jay4gRm9yIGV4YW1wbGUsIGFuIGFnZSBvZgogICAgICAgICMgMSBpbmRpY2F0ZXMgdGhhdCB0aGUgb21tZXIgaXMgYSBzaWJsaW5nIG9mIHByZXZpb3VzIGJsb2NrLgogICAgICAgIG9tbWVyX2FnZSA9IGJsb2NrX2hlYWRlci5udW1iZXIgLSBvbW1lci5udW1iZXIKICAgICAgICBlbnN1cmUoMSA8PSBvbW1lcl9hZ2UgPD0gTUFYX09NTUVSX0RFUFRILCBJbnZhbGlkQmxvY2spCgogICAgICAgIGVuc3VyZSgKICAgICAgICAgICAgb21tZXIucGFyZW50X2hhc2ggaW4gcmVjZW50X2Nhbm9uaWNhbF9ibG9ja19oYXNoZXMsIEludmFsaWRCbG9jawogICAgICAgICkKICAgICAgICBlbnN1cmUob21tZXIucGFyZW50X2hhc2ggIT0gYmxvY2tfaGVhZGVyLnBhcmVudF9oYXNoLCBJbnZhbGlkQmxvY2spCpRoB12UaD9YAQkAAGRlZiB2YWxpZGF0ZV9vbW1lcnMoCiAgICBvbW1lcnM6IFR1cGxlW0hlYWRlciwgLi4uXSwgYmxvY2tfaGVhZGVyOiBIZWFkZXIsIGNoYWluOiBCbG9ja0NoYWluCikgLT4gTm9uZToKICAgIGJsb2NrX2hhc2ggPSBybHAucmxwX2hhc2goYmxvY2tfaGVhZGVyKQoKICAgIGVuc3VyZShybHAucmxwX2hhc2gob21tZXJzKSA9PSBibG9ja19oZWFkZXIub21tZXJzX2hhc2gsIEludmFsaWRCbG9jaykKCiAgICBpZiBsZW4ob21tZXJzKSA9PSAwOgogICAgICAgICMgTm90aGluZyB0byB2YWxpZGF0ZQogICAgICAgIHJldHVybgoKICAgICMgQ2hlY2sgdGhhdCBlYWNoIG9tbWVyIHNhdGlzZmllcyB0aGUgY29uc3RyYWludHMgb2YgYSBoZWFkZXIKICAgIGZvciBvbW1lciBpbiBvbW1lcnM6CiAgICAgICAgZW5zdXJlKDEgPD0gb21tZXIubnVtYmVyIDwgYmxvY2tfaGVhZGVyLm51bWJlciwgSW52YWxpZEJsb2NrKQogICAgICAgIG9tbWVyX3BhcmVudF9oZWFkZXIgPSBjaGFpbi5ibG9ja3NbCiAgICAgICAgICAgIC0oYmxvY2tfaGVhZGVyLm51bWJlciAtIG9tbWVyLm51bWJlcikgLSAxCiAgICAgICAgXS5oZWFkZXIKICAgICAgICB2YWxpZGF0ZV9oZWFkZXIob21tZXIsIG9tbWVyX3BhcmVudF9oZWFkZXIpCgogICAgIyBDaGVjayB0aGF0IHRoZXJlIGNhbiBiZSBvbmx5IGF0IG1vc3QgMiBvbW1lcnMgZm9yIGEgYmxvY2suCiAgICBlbnN1cmUobGVuKG9tbWVycykgPD0gMiwgSW52YWxpZEJsb2NrKQoKICAgIG9tbWVyc19oYXNoZXMgPSBbcmxwLnJscF9oYXNoKG9tbWVyKSBmb3Igb21tZXIgaW4gb21tZXJzXQogICAgIyBDaGVjayB0aGF0IHRoZXJlIGFyZSBubyBkdXBsaWNhdGVzIGluIHRoZSBvbW1lcnMgb2YgY3VycmVudCBibG9jawogICAgZW5zdXJlKGxlbihvbW1lcnNfaGFzaGVzKSA9PSBsZW4oc2V0KG9tbWVyc19oYXNoZXMpKSwgSW52YWxpZEJsb2NrKQoKICAgIHJlY2VudF9jYW5vbmljYWxfYmxvY2tzID0gY2hhaW4uYmxvY2tzWy0oTUFYX09NTUVSX0RFUFRIICsgMSkgOl0KICAgIHJlY2VudF9jYW5vbmljYWxfYmxvY2tfaGFzaGVzID0gewogICAgICAgIHJscC5ybHBfaGFzaChibG9jay5oZWFkZXIpIGZvciBibG9jayBpbiByZWNlbnRfY2Fub25pY2FsX2Jsb2NrcwogICAgfQogICAgcmVjZW50X29tbWVyc19oYXNoZXM6IFNldFtIYXNoMzJdID0gc2V0KCkKICAgIGZvciBibG9jayBpbiByZWNlbnRfY2Fub25pY2FsX2Jsb2NrczoKICAgICAgICByZWNlbnRfb21tZXJzX2hhc2hlcyA9IHJlY2VudF9vbW1lcnNfaGFzaGVzLnVuaW9uKAogICAgICAgICAgICB7cmxwLnJscF9oYXNoKG9tbWVyKSBmb3Igb21tZXIgaW4gYmxvY2sub21tZXJzfQogICAgICAgICkKCiAgICBmb3Igb21tZXJfaW5kZXgsIG9tbWVyIGluIGVudW1lcmF0ZShvbW1lcnMpOgogICAgICAgIG9tbWVyX2hhc2ggPSBvbW1lcnNfaGFzaGVzW29tbWVyX2luZGV4XQogICAgICAgICMgVGhlIGN1cnJlbnQgYmxvY2sgc2hvdWxkbid0IGJlIHRoZSBvbW1lcgogICAgICAgIGVuc3VyZShvbW1lcl9oYXNoICE9IGJsb2NrX2hhc2gsIEludmFsaWRCbG9jaykKCiAgICAgICAgIyBPbW1lciBzaG91bGRuJ3QgYmUgb25lIG9mIHRoZSByZWNlbnQgY2Fub25pY2FsIGJsb2NrcwogICAgICAgIGVuc3VyZShvbW1lcl9oYXNoIG5vdCBpbiByZWNlbnRfY2Fub25pY2FsX2Jsb2NrX2hhc2hlcywgSW52YWxpZEJsb2NrKQoKICAgICAgICAjIE9tbWVyIHNob3VsZG4ndCBiZSBvbmUgb2YgdGhlIHVuY2xlcyBtZW50aW9uZWQgaW4gdGhlIHJlY2VudAogICAgICAgICMgY2Fub25pY2FsIGJsb2NrcwogICAgICAgIGVuc3VyZShvbW1lcl9oYXNoIG5vdCBpbiByZWNlbnRfb21tZXJzX2hhc2hlcywgSW52YWxpZEJsb2NrKQoKICAgICAgICAjIE9tbWVyIGFnZSB3aXRoIHJlc3BlY3QgdG8gdGhlIGN1cnJlbnQgYmxvY2suIEZvciBleGFtcGxl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YXdhcmQgYmFzZWQgb2ZmIG9mIHRoZQpudW1iZXIgb2Ygb21tZXIgYmxvY2tzIHRoYXQgd2VyZSBtaW5lZCBhcm91bmQgdGhlIHNhbWUgdGltZSwgYW5kIGluY2x1ZGVkCmluIHRoZSBjYW5vbmljYWwgYmxvY2sncyBoZWFkZXIuIEFuIG9tbWVyIGJsb2NrIGlzIGEgYmxvY2sgdGhhdCB3YXNuJ3QKYWRkZWQgdG8gdGhlIGNhbm9uaWNhbCBibG9ja2NoYWluIGJlY2F1c2UgaXQgd2Fzbid0IHZhbGlkYXRlZCBhcyBmYXN0IGFzCnRoZSBhY2NlcHRlZCBibG9jayBidXQgd2FzIG1pbmVkIGF0IHRoZSBzYW1lIHRpbWUuIEFsdGhvdWdoIG5vdCBhbGwgYmxvY2tzCnRoYXQgYXJlIG1pbmVkIGFyZSBhZGRlZCB0byB0aGUgY2Fub25pY2FsIGNoYWluLCBtaW5lcnMgYXJlIHN0aWxsIHBhaWQgYQpyZXdhcmQgZm9yIHRoZWlyIGVmZm9ydHMuIFRoaXMgcmV3YXJkIGlzIGNhbGxlZCBhbiBvbW1lciByZXdhcmQgYW5kIGlzCmNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIG51bWJlciBhc3NvY2lhdGVkIHdpdGggdGhlIG9tbWVyIGJsb2NrIHRoYXQgdGhleQptaW5lZC6UaAddlChoP4xSVGhlIG1pbmVyIG9mIHRoZSBjYW5vbmljYWwgYmxvY2sgaXMgcmV3YXJkZWQgd2l0aCB0aGUgcHJlZGV0ZXJtaW5lZApibG9jayByZXdhcmQsIJSFlIGUfZQoaAVoBmggaoQjAABoIWgDaB1oRGgfSwB1YmpsBQAAKYGUfZQoaAWMEGBgQkxPQ0tfUkVXQVJEYGCUaAddlGg/jAxCTE9DS19SRVdBUkSUhZSBlH2UKGgFaAZoIGqMIwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGprBQAAaB1OaB9OaCBqhCMAAHViaD9YMwIAACwgcGx1cyBhIHZhcmlhYmxlIGF3YXJkIGJhc2VkIG9mZiBvZiB0aGUKbnVtYmVyIG9mIG9tbWVyIGJsb2NrcyB0aGF0IHdlcmUgbWluZWQgYXJvdW5kIHRoZSBzYW1l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GV2UdWgcagEPAABoHWgeaB9OaCBq5yIAAHViZWgOfZQoaBBdlGgTXZQoamwjAACMCGZ1bmN0aW9ulGVoFV2UaBddlGgZXZSMBmRvbWFpbpRqbCMAAIwHb2JqdHlwZZRqfyQAAIwIZGVzY3R5cGWUan8kAACMB25vaW5kZXiUiXVoHGrTDgAAaB1OaB9OaCBqyyIAAHViahgPAAApgZR9lChoBVj+AQAAZGVmIHBheV9yZXdhcmRzKAogICAgc3RhdGU6IFN0YXRlLAogICAgYmxvY2tfbnVtYmVyOiBVaW50LAogICAgY29pbmJhc2U6IEFkZHJlc3MsCiAgICBvbW1lcnM6IFR1cGxlW0hlYWRlciwgLi4uXSwKKSAtPiBOb25lOgogICAgbWluZXJfcmV3YXJkID0gQkxPQ0tfUkVXQVJEICsgKGxlbihvbW1lcnMpICogKEJMT0NLX1JFV0FSRCAvLyAzMikpCiAgICBjcmVhdGVfZXRoZXIoc3RhdGUsIGNvaW5iYXNlLCBtaW5lcl9yZXdhcmQpCgogICAgZm9yIG9tbWVyIGluIG9tbWVyczoKICAgICAgICAjIE9tbWVyIGFnZSB3aXRoIHJlc3BlY3QgdG8gdGhlIGN1cnJlbnQgYmxvY2suCiAgICAgICAgb21tZXJfYWdlID0gVTI1NihibG9ja19udW1iZXIgLSBvbW1lci5udW1iZXIpCiAgICAgICAgb21tZXJfbWluZXJfcmV3YXJkID0gKCg4IC0gb21tZXJfYWdlKSAqIEJMT0NLX1JFV0FSRCkgLy8gOAogICAgICAgIGNyZWF0ZV9ldGhlcihzdGF0ZSwgb21tZXIuY29pbmJhc2UsIG9tbWVyX21pbmVyX3Jld2FyZCkKlGgHXZRoP1j+AQAAZGVmIHBheV9yZXdhcmRzKAogICAgc3RhdGU6IFN0YXRlLAogICAgYmxvY2tfbnVtYmVyOiBVaW50LAogICAgY29pbmJhc2U6IEFkZHJlc3MsCiAgICBvbW1lcnM6IFR1cGxlW0hlYWRlciwgLi4uXSwKKSAtPiBOb25lOgogICAgbWluZXJfcmV3YXJkID0gQkxPQ0tfUkVXQVJEICsgKGxlbihvbW1lcnMpICogKEJMT0NLX1JFV0FSRCAvLyAzMikpCiAgICBjcmVhdGVfZXRo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B12UKGhpKYGUfZQoaAWMN0V4ZWN1dGUgYSB0cmFuc2FjdGlvbiBhZ2FpbnN0IHRoZSBwcm92aWRlZCBlbnZpcm9ubWVudC6UaAddlGg/jDdFeGVjdXRlIGEgdHJhbnNhY3Rpb24gYWdhaW5zdCB0aGUgcHJvdmlkZWQgZW52aXJvbm1lbnQulIWUgZR9lChoBWgGaCBqICUAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdaB5oH03eAWggah0lAAB1YmhpKYGUfZQoaAVYWwEAAFRoaXMgZnVuY3Rpb24gcHJvY2Vzc2VzIHRoZSBhY3Rpb25zIG5lZWRlZCB0byBleGVjdXRlIGEgdHJhbnNhY3Rpb24uCkl0IGRlY3JlbWVudHMgdGhlIHNlbmRlcidzIGFjY291bnQgYWZ0ZXIgY2FsY3VsYXRpbmcgdGhlIGdhcyBmZWUgYW5kCnJlZnVuZHMgdGhlbSB0aGUgcHJvcGVyIGFtb3VudCBhZnRlciBleGVjdXRpb24uIENhbGxpbmcgY29udHJhY3RzLApkZXBsb3lpbmcgY29kZSwgYW5kIGluY3JlbWVudGluZyBub25jZXMgYXJlIGFsbCBleGFtcGxlcyBvZiBhY3Rpb25zIHRoYXQKaGFwcGVuIHdpdGhpbiB0aGlzIGZ1bmN0aW9uIG9yIGZyb20gYSBjYWxsIG1hZGUgd2l0aGluIHRoaXMgZnVuY3Rpb24ulGgHXZRoP1hdAQAAVGhpcyBmdW5jdGlvbiBwcm9jZXNzZXMgdGhlIGFjdGlvbnMgbmVlZGVkIHRvIGV4ZWN1dGUgYSB0cmFuc2FjdGlvbi4KSXQgZGVjcmVtZW50cyB0aGUgc2VuZGVy4oCZcyBhY2NvdW50IGFmdGVyIGNhbGN1bGF0aW5nIHRoZSBnYXMgZmVlIGFuZApyZWZ1bmRzIHRoZW0gdGhlIHByb3BlciBhbW91bnQgYWZ0ZXIgZXhlY3V0aW9uLiBDYWxsaW5nIGNvbnRyYWN0cywKZGVwbG95aW5nIGNvZGUsIGFuZCBpbmNyZW1lbnRpbmcgbm9uY2VzIGFyZSBhbGwgZXhhbXBsZXMgb2YgYWN0aW9ucyB0aGF0CmhhcHBlbiB3aXRoaW4gdGhpcyBmdW5jdGlvbiBv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ZW50LCB0eDogVHJhbnNhY3Rpb24KKSAtPiBUdXBsZVtVMjU2LCBUdXBsZVtMb2csIC4uLl0sIGJvb2xdOgogICAgZW5zdXJlKHZhbGlkYXRlX3RyYW5zYWN0aW9uKHR4KSwgSW52YWxpZEJsb2NrKQoKICAgIHNlbmRlciA9IGVudi5vcmlnaW4KICAgIHNlbmRlcl9hY2NvdW50ID0gZ2V0X2FjY291bnQoZW52LnN0YXRlLCBzZW5kZXIpCiAgICBnYXNfZmVlID0gdHguZ2FzICogdHguZ2FzX3ByaWNlCiAgICBlbnN1cmUoc2VuZGVyX2FjY291bnQubm9uY2UgPT0gdHgubm9uY2UsIEludmFsaWRCbG9jaykKICAgIGVuc3VyZShzZW5kZXJfYWNjb3VudC5iYWxhbmNlID49IGdhc19mZWUgKyB0eC52YWx1ZSwgSW52YWxpZEJsb2NrKQogICAgZW5zdXJlKHNlbmRlcl9hY2NvdW50LmNvZGUgPT0gYnl0ZWFycmF5KCksIEludmFsaWRCbG9jaykKCiAgICBnYXMgPSB0eC5nYXMgLSBjYWxjdWxhdGVfaW50cmluc2ljX2Nvc3QodHgpCiAgICBpbmNyZW1lbnRfbm9uY2UoZW52LnN0YXRlLCBzZW5kZXIpCiAgICBzZW5kZXJfYmFsYW5jZV9hZnRlcl9nYXNfZmVlID0gc2VuZGVyX2FjY291bnQuYmFsYW5jZSAtIGdhc19mZWUKICAgIHNldF9hY2NvdW50X2JhbGFuY2UoZW52LnN0YXRlLCBzZW5kZXIsIHNlbmRlcl9iYWxhbmNlX2FmdGVyX2dhc19mZWUpCgogICAgbWVzc2FnZSA9IHByZXBhcmVfbWVzc2FnZSgKICAgICAgICBzZW5kZXIsCiAgICAgICAgdHgudG8sCiAgICAgICAgdHgudmFsdWUsCiAgICAgICAgdHguZGF0YSwKICAgICAgICBnYXMsCiAgICAgICAgZW52LAogICAgKQoKICAgIG91dHB1dCA9IHByb2Nlc3NfbWVzc2FnZV9jYWxsKG1lc3NhZ2UsIGVudikKCiAgICBnYXNfdXNlZCA9IHR4LmdhcyAtIG91dHB1dC5nYXNfbGVmdAogICAgZ2FzX3JlZnVuZCA9IG1pbihnYXNfdXNlZCAvLyAyLCBvdXRwdXQucmVmdW5kX2NvdW50ZXIpCiAgICBnYXNfcmVmdW5kX2Ftb3VudCA9IChvdXRwdXQuZ2FzX2xlZnQgKyBnYXNfcmVmdW5kKSAqIHR4Lmdhc19wcmljZQogICAgdHJhbnNhY3Rpb25fZmVlID0gKHR4LmdhcyAtIG91dHB1dC5nYXNfbGVmdCAtIGdhc19yZWZ1bmQpICogdHguZ2FzX3ByaWNlCiAgICB0b3RhbF9nYXNfdXNlZCA9IGdhc191c2VkIC0gZ2FzX3JlZnVuZAoKICAgICMgcmVmdW5kIGdhcwogICAgc2VuZGVyX2JhbGFuY2VfYWZ0ZXJfcmVmdW5kID0gKAogICAgICAgIGdldF9hY2NvdW50KGVudi5zdGF0ZSwgc2VuZGVyKS5iYWxhbmNlICsgZ2FzX3JlZnVuZF9hbW91bnQKICAgICkKICAgIHNldF9hY2NvdW50X2JhbGFuY2UoZW52LnN0YXRlLCBzZW5kZXIsIHNlbmRlcl9iYWxhbmNlX2FmdGVyX3JlZnVuZCkKCiAgICAjIHRyYW5zZmVyIG1pbmVyIGZlZXMKICAgIGNvaW5iYXNlX2JhbGFuY2VfYWZ0ZXJfbWluaW5nX2ZlZSA9ICgKICAgICAgICBnZXRfYWNjb3VudChlbnYuc3RhdGUsIGVudi5jb2luYmFzZSkuYmFsYW5jZSArIHRyYW5zYWN0aW9uX2ZlZQogICAgKQogICAgaWYgY29pbmJhc2VfYmFsYW5jZV9hZnRlcl9taW5pbmdfZmVlICE9IDA6CiAgICAgICAgc2V0X2FjY291bnRfYmFsYW5jZSgKICAgICAgICAgICAgZW52LnN0YXRlLCBlbnYuY29pbmJhc2UsIGNvaW5iYXNlX2JhbGFuY2VfYWZ0ZXJfbWluaW5nX2ZlZQogICAgICAgICkKICAgIGVsaWYgYWNjb3VudF9leGlzdHNfYW5kX2lzX2VtcHR5KGVudi5zdGF0ZSwgZW52LmNvaW5iYXNlKToKICAgICAgICBkZXN0cm95X2FjY291bnQoZW52LnN0YXRlLCBlbnYuY29pbmJhc2UpCgogICAgZm9yIGFkZHJlc3MgaW4gb3V0cHV0LmFjY291bnRzX3RvX2RlbGV0ZToKICAgICAgICBkZXN0cm95X2FjY291bnQoZW52LnN0YXRlLCBhZGRyZXNzKQoKICAgIGZvciBhZGRyZXNzIGluIG91dHB1dC50b3VjaGVkX2FjY291bnRzOgogICAgICAgIGlmIGFjY291bnRfZXhpc3RzX2FuZF9pc19lbXB0eShlbnYuc3RhdGUsIGFkZHJlc3MpOgogICAgICAgICAgICBkZXN0cm95X2FjY291bnQoZW52LnN0YXRlLCBhZGRyZXNzKQoKICAgIHJldHVybiB0b3RhbF9nYXNfdXNlZCwgb3V0cHV0LmxvZ3MsIG91dHB1dC5oYXNfZXJyZWQKlGgHXZRoP1gcCAAAZGVmIHByb2Nlc3NfdHJhbnNhY3Rpb24oCiAgICBlbnY6IHZtLkVudmlyb25tZW50LCB0eDogVHJhbnNhY3Rpb24KKSAtPiBUdXBsZVtVMjU2LCBUdXBsZVtMb2csIC4uLl0sIGJvb2xdOgogICAgZW5zdXJlKHZhbGlkYXRlX3RyYW5zYWN0aW9uKHR4KSwgSW52YWxpZEJsb2NrKQoKICAgIHNlbmRlciA9IGVudi5vcmlnaW4KICAgIHNlbmRlcl9hY2NvdW50ID0gZ2V0X2FjY291bnQoZW52LnN0YXRlLCBzZW5kZXIpCiAgICBnYXNfZmVlID0gdHguZ2FzICogdHguZ2FzX3ByaWNlCiAgICBlbnN1cmUoc2VuZGVyX2FjY291bnQubm9uY2UgPT0gdHgubm9uY2UsIEludmFsaWRCbG9jaykKICAgIGVuc3VyZShzZW5kZXJfYWNjb3VudC5iYWxhbmNlID49IGdhc19mZWUgKyB0eC52YWx1ZSwgSW52YWxpZEJsb2NrKQogICAgZW5zdXJlKHNlbmRlcl9hY2NvdW50LmNvZGUgPT0gYnl0ZWFycmF5KCksIEludmFsaWRCbG9jaykKCiAgICBnYXMgPSB0eC5nYXMgLSBjYWxjdWxhdGVfaW50cmluc2ljX2Nvc3QodHgpCiAgICBpbmNyZW1lbnRfbm9uY2UoZW52LnN0YXRlLCBzZW5kZXIpCiAgICBzZW5kZXJfYmFsYW5jZV9hZnRlcl9nYXNfZmVlID0gc2VuZGVyX2FjY291bnQuYmFsYW5jZSAtIGdhc19mZWUKICAgIHNldF9hY2NvdW50X2JhbGFuY2UoZW52LnN0YXRlLCBzZW5kZXIsIHNlbmRlcl9iYWxhbmNlX2FmdGVyX2dhc19mZWUpCgogICAgbWVzc2FnZSA9IHByZXBhcmVfbWVzc2FnZSgKICAgICAgICBzZW5kZXIsCiAgICAgICAgdHgudG8sCiAgICAgICAgdHgudmFsdWUsCiAgICAgICAgdHguZGF0YSwKICAgICAgICBnYXMsCiAgICAgICAgZW52LAogICAgKQoKICAgIG91dHB1dCA9IHByb2Nlc3NfbWVzc2FnZV9jYWxsKG1lc3NhZ2UsIGVudikKCiAgICBnYXNfdXNlZCA9IHR4LmdhcyAtIG91dHB1dC5nYXNfbGVmdAogICAgZ2FzX3JlZnVuZCA9IG1pbihnYXNfdXNlZCAvLyAyLCBvdXRwdXQucmVmdW5kX2NvdW50ZXIpCiAgICBnYXNfcmVmdW5kX2Ftb3VudCA9IChvdXRwdXQuZ2FzX2xlZnQgKyBnYXNfcmVmdW5kKSAqIHR4Lmdhc19wcmljZQogICAgdHJhbnNhY3Rpb25fZmVlID0gKHR4LmdhcyAtIG91dHB1dC5nYXNfbGVmdCAtIGdhc19yZWZ1bmQpICogdHguZ2FzX3ByaWNlCiAgICB0b3RhbF9nYXNfdXNlZCA9IGdhc191c2VkIC0gZ2FzX3JlZnVuZAoKICAgICMgcmVmdW5kIGdhcwogICAgc2VuZGVyX2JhbGFuY2VfYWZ0ZXJfcmVmdW5kID0gKAogICAgICAgIGdldF9hY2NvdW50KGVudi5zdGF0ZSwgc2VuZGVyKS5iYWxhbmNlICsgZ2FzX3JlZnVuZF9hbW91bnQKICAgICkKICAgIHNldF9hY2NvdW50X2JhbGFuY2UoZW52LnN0YXRlLCBzZW5kZXIsIHNlbmRlcl9iYWxhbmNlX2FmdGVyX3JlZnVuZCkKCiAgICAjIHRyYW5zZmVyIG1pbmVyIGZlZXMKICAgIGNvaW5iYXNlX2JhbGFuY2VfYWZ0ZXJfbWluaW5nX2ZlZSA9ICgKICAgICAgICBnZXRfYWNjb3VudChlbnYuc3RhdGUsIGVudi5jb2luYmFzZSkuYmFsYW5jZSArIHRyYW5zYWN0aW9uX2ZlZQogICAgKQogICAgaWYgY29pbmJhc2VfYmFsYW5jZV9hZnRlcl9taW5pbmdfZmVlICE9IDA6CiAgICAgICAgc2V0X2FjY291bnRfYmFsYW5jZSgKICAgICAgICAgICAgZW52LnN0YXRlLCBlbnYuY29pbmJhc2UsIGNvaW5iYXNlX2JhbGFuY2VfYWZ0ZXJfbWluaW5nX2ZlZQogICAgICAgICkKICAgIGVsaWYgYWNjb3VudF9leGlzdHNfYW5kX2lzX2VtcHR5KGVudi5zdGF0ZSwgZW52LmNvaW5iYXNlKToKICAgICAgICBkZXN0cm95X2FjY291bnQoZW52LnN0YXRlLCBlbnYuY29pbmJhc2UpCgogICAgZm9yIGFkZHJlc3MgaW4gb3V0cHV0LmFjY291bnRzX3RvX2RlbGV0ZToKICAgICAgICBkZXN0cm95X2FjY291bnQoZW52LnN0YXRlLCBhZGRyZXNzKQoKICAgIGZvciBhZGRyZXNzIGluIG91dHB1dC50b3VjaGVkX2FjY291bnRzOgogICAgICAgIGlmIGFjY291bnRfZXhpc3RzX2FuZF9pc19lbXB0eShlbnYuc3RhdGUsIGFkZHJlc3MpOgogICAgICAgICAgICBkZXN0cm95X2FjY291bnQoZW52LnN0YXRlLCBhZGRyZXNzKQoKICAgIHJldHVybiB0b3RhbF9nYXNfdXNlZCwgb3V0cHV0LmxvZ3MsIG91dHB1dC5oYXNfZXJyZWQKlIWUgZR9lChoBWgGaCBqfyYAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMBnNvdXJjZZSMUC9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3Mvc3JjL2V0aGVyZXVtL2J5emFudGl1bS9zcGVjLnB5lIwJeG1sOnNwYWNllGr2BAAAjAVmb3JjZZSJjAhsYW5ndWFnZZSMBnB5dGhvbpSMDmhpZ2hsaWdodF9hcmdzlH2UalEPAABLAXOMB2xpbmVub3OUiXVoHGoXDwAAaB1oHmgfTfIBaCBqpSQAAHViZWgOfZQoaBBdlGqSAwAAYWgTXZRoFV2UjBNwcm9jZXNzX3RyYW5zYWN0aW9ulGFoF12UaBldlHVoHGgzaB1oHmgfTdgBaCBqog4AAGghaAN1Ymg0KYGUfZQoaAVoBmgHXZQoaDkpgZR9lChoBYwUdmFsaWRhdGVfdHJhbnNhY3Rpb26UaAddlGg/jBR2YWxpZGF0ZV90cmFuc2FjdGlvbpSFlIGUfZQoaAVoBmggaqAmAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaDhoHWgeaB9N9wFoIGqdJgAAdWJoJCmBlH2UKGgFaAZoB12UaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwHZW50cmllc5RdlHVoHGgjaB1OaB9OaCBqnSYAAHViatQOAAApgZR9lChoBWgGaAddlChq2Q4AACmBlH2UKGgFjBh2YWxpZGF0ZV90cmFuc2FjdGlvbih0eCmUaAddlChq3w4AACmBlH2UKGgFjBR2YWxpZGF0ZV90cmFuc2FjdGlvbpRoB12UaD+MFHZhbGlkYXRlX3RyYW5zYWN0aW9ulIWUgZR9lChoBWgGaCBqwCYAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZQoauoOAABq6w4AAGrsDgAAau0OAABlaBVdlGgXXZRoGV2UjAl4bWw6c3BhY2WUavYEAAB1aBxq3g4AAGgdaB5oH05oIGq8JgAAdWJq8BMAACmBlH2UKGgFjAJ0eJRoB12UavYTAAApgZR9lChoBYwCdHiUaAddlGoiDwAAKYGUfZQoaAVoBmgHXZRoP4wCdHiUhZSBlH2UKGgFaAZoIGrXJgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGoFFAAAYWgVXZRoF12UaBldlHVoHGohDwAAaB1OaB9OaCBq0yYAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCXhtbDpzcGFjZZRq9gQAAHVoHGr1EwAAaB1OaB9OaCBqzyYAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCXhtbDpzcGFjZZRq9gQAAHVoHGrvEwAAaB1oHmgfTmggarwmAAB1YmVoDn2UKGgQXZSMLGV0aGVyZXVtLmJ5emFudGl1bS5zcGVjLnZhbGlkYXRlX3RyYW5zYWN0aW9ulGFoE12UKGr1DgAAavYOAACMAnB5lGr4DgAAavkOAABlaBVdlGgXXZRoGV2UjAZtb2R1bGWUav4OAACMBWNsYXNzlGgGjAhmdWxsbmFtZZRqwiYAAHVoHGrYDgAAaB1oHmgfTfoBaCBquSYAAHViagIPAAApgZR9lChoBWgGaAddlChoaSmBlH2UKGgFjBdWZXJpZmllcyBhIHRyYW5zYWN0aW9uLpRoB12UaD+MF1ZlcmlmaWVzIGEgdHJhbnNhY3Rpb24ulIWUgZR9lChoBWgGaCBqACcAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdaB5oH039AWggav0mAAB1YmhpKYGUfZQoaAWMzlRoZSBnYXMgaW4gYSB0cmFuc2FjdGlvbiBnZXRzIHVzZWQgdG8gcGF5IGZvciB0aGUgaW50cmluc2ljIGNvc3Qgb2YKb3BlcmF0aW9ucywgdGhlcmVmb3JlIGlmIHRoZXJlIGlzIGluc3VmZmljaWVudCBnYXMgdGhlbiBpdCB3b3VsZCBub3QKYmUgcG9zc2libGUgdG8gZXhlY3V0ZSBhIHRyYW5zYWN0aW9uIGFuZCBpdCB3aWxsIGJlIGRlY2xhcmVkIGludmFsaWQulGgHXZRoP4zOVGhlIGdhcyBpbiBhIHRyYW5zYWN0aW9uIGdldHMgdXNlZCB0byBwYXkgZm9yIHRoZSBpbnRyaW5zaWMgY29zdCBvZgpvcGVyYXRpb25zLCB0aGVyZWZvcmUgaWYgdGhlcmUgaXMgaW5zdWZmaWNpZW50IGdhcyB0aGVuIGl0IHdvdWxkIG5vdApiZSBwb3NzaWJsZSB0byBleGVjdXRlIGEgdHJhbnNhY3Rpb24gYW5kIGl0IHdpbGwgYmUgZGVjbGFyZWQgaW52YWxpZC6UhZSBlH2UKGgFaAZoIGoOJwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1oHmgfTf8BaCBq/SYAAHViaGkpgZR9lChoBVihAQAAQWRkaXRpb25hbGx5LCB0aGUgbm9uY2Ugb2YgYSB0cmFuc2FjdGlvbiBtdXN0IG5vdCBlcXVhbCBvciBleGNlZWQgdGhlCmxpbWl0IGRlZmluZWQgaW4gYEVJUC0yNjgxIDxodHRwczovL2VpcHMuZXRoZXJldW0ub3JnL0VJUFMvZWlwLTI2ODE+YF8uCkluIHByYWN0aWNlLCBkZWZpbmluZyB0aGUgbGltaXQgYXMgYGAyKio2NC0xYGAgaGFzIG5vIGltcGFjdCBiZWNhdXNlCnNlbmRpbmcgYGAyKio2NC0xYGAgdHJhbnNhY3Rpb25zIGlzIGltcHJvYmFibGUuIEl0J3Mgbm90IHN0cmljdGx5CmltcG9zc2libGUgdGhvdWdoLCBgYDIqKjY0LTFgYCB0cmFuc2FjdGlvbnMgaXMgdGhlIGVudGlyZSBjYXBhY2l0eSBvZiB0aGUKRXRoZXJldW0gYmxvY2tjaGFpbiBhdCAyMDIyIGdhcyBsaW1pdHMgZm9yIGEgbGl0dGxlIG92ZXIgMjIgeWVhcnMulGgHXZQoaD+MV0FkZGl0aW9uYWxseSwgdGhlIG5vbmNlIG9mIGEgdHJhbnNhY3Rpb24gbXVzdCBub3QgZXF1YWwgb3IgZXhjZWVkIHRoZQpsaW1pdCBkZWZpbmVkIGluIJSFlIGUfZQoaAVoBmggahwnAABoIWgDaB1oRGgfSwB1YmhuKYGUfZQoaAWMNWBFSVAtMjY4MSA8aHR0cHM6Ly9laXBzLmV0aGVyZXVtLm9yZy9FSVBTL2VpcC0yNjgxPmBflGgHXZRoP4wIRUlQLTI2ODGUhZSBlH2UKGgFaAZoIGokJwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwEbmFtZZSMCEVJUC0yNjgxlIwGcmVmdXJplIwnaHR0cHM6Ly9laXBzLmV0aGVyZXVtLm9yZy9FSVBTL2VpcC0yNjgxlHVoHGhtaB1OaB9OaCBqHCcAAHViaAopgZR9lChoBYwqIDxodHRwczovL2VpcHMuZXRoZXJldW0ub3JnL0VJUFMvZWlwLTI2ODE+lGgHXZRoDn2UKGgQXZSMCGVpcC0yNjgxlGFoE12UaBVdlIwIZWlwLTI2ODGUYWgXXZRoGV2UjAZyZWZ1cmmUajUnAAB1aBxoCWgdTmgfTmggahwnAAB1Ymg/jCUuCkluIHByYWN0aWNlLCBkZWZpbmluZyB0aGUgbGltaXQgYXMglIWUgZR9lChoBWgGaCBqHCcAAGghaANoHWhEaB9LAHViamwFAAApgZR9lChoBYwLYGAyKio2NC0xYGCUaAddlGg/jAcyKio2NC0xlIWUgZR9lChoBWgGaCBqRycAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqawUAAGgdTmgfTmggahwnAAB1Ymg/jB8gaGFzIG5vIGltcGFjdCBiZWNhdXNlCnNlbmRpbmcglIWUgZR9lChoBWgGaCBqHCcAAGghaANoHWhEaB9LAHViamwFAAApgZR9lChoBYwLYGAyKio2NC0xYGCUaAddlGg/jAcyKio2NC0xlIWUgZR9lChoBWgGaCBqWScAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqawUAAGgdTmgfTmggahwnAAB1Ymg/jEQgdHJhbnNhY3Rpb25zIGlzIGltcHJvYmFibGUuIEl04oCZcyBub3Qgc3RyaWN0bHkKaW1wb3NzaWJsZSB0aG91Z2gsIJSFlIGUfZQoaAVoBmggahwnAABoIWgDaB1oRGgfSwB1YmpsBQAAKYGUfZQoaAWMC2BgMioqNjQtMWBglGgHXZRoP4wHMioqNjQtMZSFlIGUfZQoaAVoBmggamsnAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcamsFAABoHU5oH05oIGocJwAAdWJoP4xuIHRyYW5zYWN0aW9ucyBpcyB0aGUgZW50aXJlIGNhcGFjaXR5IG9mIHRoZQpFdGhlcmV1bSBibG9ja2NoYWluIGF0IDIwMjIgZ2FzIGxpbWl0cyBmb3IgYSBsaXR0bGUgb3ZlciAyMiB5ZWFycy6UhZSBlH2UKGgFaAZoIGocJwAAaCFoA2gdaERoH0sAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1oHmgfTQMCaCBq/SYAAHVianQUAAApgZR9lChoBWgGaAddlChqeRQAACmBlH2UKGgFaAZoB12UKGp+FAAAKYGUfZQoaAWMClBhcmFtZXRlcnOUaAddlGg/jApQYXJhbWV0ZXJzlIWUgZR9lChoBWgGaCBqiScAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqfRQAAGgdaB5oH0sAaCBqhicAAHViao4UAAApgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMHnR4IC0tIFRyYW5zYWN0aW9uIHRvIHZhbGlkYXRlLpRoB12UKGqXFAAAKYGUfZQoaAWMAnR4lGgHXZRoP4wCdHiUhZSBlH2UKGgFaAZoIGqeJwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwLcmVmc3BlY2lmaWOUiIwJcHk6bW9kdWxllGr+DgAAjAhweTpjbGFzc5ROdWgcapYUAABoHU5oH05oIGqaJwAAdWJoP4wdIOKAkyBUcmFuc2FjdGlvbiB0byB2YWxpZGF0ZS6UhZSBlH2UKGgFaAZoIGqaJwAAaCFoA2gdaERoH0sAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1OaB9OaCBqlycAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqjRQAAGgdTmgfTmggaoYnAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcangUAABoHU5oH05oIGqDJwAAdWJqeRQAACmBlH2UKGgFaAZoB12UKGp+FAAAKYGUfZQoaAWMB1JldHVybnOUaAddlGg/jAdSZXR1cm5zlIWUgZR9lChoBWgGaCBqyCcAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqfRQAAGgdaB5oH0sAaCBqxScAAHViao4UAAApgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMSHZlcmlmaWVkIC0tIFRydWUgaWYgdGhlIHRyYW5zYWN0aW9uIGNhbiBiZSBleGVjdXRlZCwgb3IgRmFsc2Ugb3RoZXJ3aXNlLpRoB12UKGrYFAAAKYGUfZQoaAWMDCoqdmVyaWZpZWQqKpRoB12UaD+MCHZlcmlmaWVklIWUgZR9lChoBWgGaCBq3ScAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq1xQAAGgdTmgfTmggatknAAB1Ymg/jEEg4oCTIFRydWUgaWYgdGhlIHRyYW5zYWN0aW9uIGNhbiBiZSBleGVjdXRlZCwgb3IgRmFsc2Ugb3RoZXJ3aXNlLpSFlIGUfZQoaAVoBmggatknAABoIWgDaB1oRGgfSwB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHU5oH05oIGrWJwAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGqNFAAAaB1OaB9OaCBqxScAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqeBQAAGgdTmgfTmggaoMnAAB1Ymp5FAAAKYGUfZQoaAVoBmgHXZQoan4UAAApgZR9lChoBYwLUmV0dXJuIHR5cGWUaAddlGg/jAtSZXR1cm4gdHlwZZSFlIGUfZQoaAVoBmggagQoAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcan0UAABoHWgeaB9LAGggagEoAAB1YmqOFAAAKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjARib29slGgHXZRqVQYAACmBlH2UKGgFjAZgYm9vbGCUaAddlGg/jARib29slIWUgZR9lChoBWgGaCBqGSgAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqVAYAAGgdTmgfTmggahUoAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHU5oH05oIGoSKAAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGqNFAAAaB1OaB9OaCBqASgAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqeBQAAGgdTmgfTmggaoMnAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcanMUAABoHU5oH05oIGr9JgAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGoBDwAAaB1oHmgfTmggarkmAAB1YmVoDn2UKGgQXZRoE12UKGr2JgAAjAhmdW5jdGlvbpRlaBVdlGgXXZRoGV2UjAZkb21haW6UavYmAACMB29ianR5cGWUakgoAACMCGRlc2N0eXBllGpIKAAAjAdub2luZGV4lIl1aBxq0w4AAGgdTmgfTmggap0mAAB1YmoYDwAAKYGUfZQoaAWMfmRlZiB2YWxpZGF0ZV90cmFuc2FjdGlvbih0eDogVHJhbnNhY3Rpb24pIC0+IGJvb2w6CiAgICByZXR1cm4gY2FsY3VsYXRlX2ludHJpbnNpY19jb3N0KHR4KSA8PSB0eC5nYXMgYW5kIHR4Lm5vbmNlIDwgMioqNjQgLSAxCpRoB12UaD+MfmRlZiB2YWxpZGF0ZV90cmFuc2FjdGlvbih0eDogVHJhbnNhY3Rpb24pIC0+IGJvb2w6CiAgICByZXR1cm4gY2FsY3VsYXRlX2ludHJpbnNpY19jb3N0KHR4KSA8PSB0eC5nYXMgYW5kIHR4Lm5vbmNlIDwgMioqNjQgLSAxCpSFlIGUfZQoaAVoBmggalAoAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAZzb3VyY2WUjFAvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL3NyYy9ldGhlcmV1bS9ieXphbnRpdW0vc3BlYy5weZSMCXhtbDpzcGFjZZRq9gQAAIwFZm9yY2WUiYwIbGFuZ3VhZ2WUjAZweXRob26UjA5oaWdobGlnaHRfYXJnc5R9lGpRDwAASwFzjAdsaW5lbm9zlIl1aBxqFw8AAGgdaB5oH00SAmggap0mAAB1YmVoDn2UKGgQXZRqtAMAAGFoE12UaBVdlIwUdmFsaWRhdGVfdHJhbnNhY3Rpb26UYWgXXZRoGV2UdWgcaDNoHWgeaB9N9wFoIGqiDgAAaCFoA3ViaDQpgZR9lChoBWgGaAddlChoOSmBlH2UKGgFjBhjYWxjdWxhdGVfaW50cmluc2ljX2Nvc3SUaAddlGg/jBhjYWxjdWxhdGVfaW50cmluc2ljX2Nvc3SUhZSBlH2UKGgFaAZoIGpxKAAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGg4aB1oHmgfTRcCaCBqbigAAHViaCQpgZR9lChoBWgGaAddlGgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMB2VudHJpZXOUXZR1aBxoI2gdTmgfTmggam4oAAB1YmrUDgAAKYGUfZQoaAVoBmgHXZQoatkOAAApgZR9lChoBYwcY2FsY3VsYXRlX2ludHJpbnNpY19jb3N0KHR4KZRoB12UKGrfDgAAKYGUfZQoaAWMGGNhbGN1bGF0ZV9pbnRyaW5zaWNfY29zdJRoB12UaD+MGGNhbGN1bGF0ZV9pbnRyaW5zaWNfY29zdJSFlIGUfZQoaAVoBmggapEoAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UKGrqDgAAausOAABq7A4AAGrtDgAAZWgVXZRoF12UaBldlIwJeG1sOnNwYWNllGr2BAAAdWgcat4OAABoHWgeaB9OaCBqjSgAAHViavATAAApgZR9lChoBYwCdHiUaAddlGr2EwAAKYGUfZQoaAWMAnR4lGgHXZRqIg8AACmBlH2UKGgFaAZoB12UaD+MAnR4lIWUgZR9lChoBWgGaCBqqCgAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRqBRQAAGFoFV2UaBddlGgZXZR1aBxqIQ8AAGgdTmgfTmggaqQoAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAl4bWw6c3BhY2WUavYEAAB1aBxq9RMAAGgdTmgfTmggaqAoAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAl4bWw6c3BhY2WUavYEAAB1aBxq7xMAAGgdaB5oH05oIGqNKAAAdWJlaA59lChoEF2UjDBldGhlcmV1bS5ieXphbnRpdW0uc3BlYy5jYWxjdWxhdGVfaW50cmluc2ljX2Nvc3SUYWgTXZQoavUOAABq9g4AAIwCcHmUavgOAABq+Q4AAGVoFV2UaBddlGgZXZSMBm1vZHVsZZRq/g4AAIwFY2xhc3OUaAaMCGZ1bGxuYW1llGqTKAAAdWgcatgOAABoHWgeaB9NGgJoIGqKKAAAdWJqAg8AACmBlH2UKGgFaAZoB12UKGhpKYGUfZQoaAWMP0NhbGN1bGF0ZXMgdGhlIGdhcyB0aGF0IGlzIGNoYXJnZWQgYmVmb3JlIGV4ZWN1dGlvbiBpcyBzdGFydGVkLpRoB12UaD+MP0NhbGN1bGF0ZXMgdGhlIGdhcyB0aGF0IGlzIGNoYXJnZWQgYmVmb3JlIGV4ZWN1dGlvbiBpcyBzdGFydGVkLpSFlIGUfZQoaAVoBmggatEoAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHWgeaB9NHQJoIGrOKAAAdWJoaSmBlH2UKGgFWBECAABUaGUgaW50cmluc2ljIGNvc3Qgb2YgdGhlIHRyYW5zYWN0aW9uIGlzIGNoYXJnZWQgYmVmb3JlIGV4ZWN1dGlvbiBoYXMKYmVndW4uIEZ1bmN0aW9ucy9vcGVyYXRpb25zIGluIHRoZSBFVk0gY29zdCBtb25leSB0byBleGVjdXRlIHNvIHRoaXMKaW50cmluc2ljIGNvc3QgaXMgZm9yIHRoZSBvcGVyYXRpb25zIHRoYXQgbmVlZCB0byBiZSBwYWlkIGZvciBhcyBwYXJ0IG9mCnRoZSB0cmFuc2FjdGlvbi4gRGF0YSB0cmFuc2ZlciwgZm9yIGV4YW1wbGUsIGlzIHBhcnQgb2YgdGhpcyBpbnRyaW5zaWMKY29zdC4gSXQgY29zdHMgZXRoZXIgdG8gc2VuZCBkYXRhIG92ZXIgdGhlIHdpcmUgYW5kIHRoYXQgZXRoZXIgaXMKYWNjb3VudGVkIGZvciBpbiB0aGUgaW50cmluc2ljIGNvc3QgY2FsY3VsYXRlZCBpbiB0aGlzIGZ1bmN0aW9uLiBUaGlzCmludHJpbnNpYyBjb3N0IG11c3QgYmUgY2FsY3VsYXRlZCBhbmQgcGFpZCBmb3IgYmVmb3JlIGV4ZWN1dGlvbiBpbiBvcmRlcgpmb3IgYWxsIG9wZXJhdGlvbnMgdG8gYmUgaW1wbGVtZW50ZWQulGgHXZRoP1gRAgAAVGhlIGludHJpbnNpYyBjb3N0IG9mIHRoZSB0cmFuc2FjdGlvbiBpcyBjaGFyZ2VkIGJlZm9yZSBleGVjdXRpb24gaGFzCmJlZ3VuLiBGdW5jdGlvbnMvb3BlcmF0aW9ucyBpbiB0aGUgRVZNIGNvc3QgbW9uZXkgdG8gZXhlY3V0ZSBzbyB0aGlzCmludHJpbnNpYyBjb3N0IGlzIGZvciB0aGUgb3BlcmF0aW9ucyB0aGF0IG5lZWQgdG8gYmUgcGFpZCBmb3IgYXMgcGFydCBvZgp0aGUgdHJhbnNhY3Rpb24uIERhdGEgdHJhbnNmZXIsIGZvciBleGFtcGxlLCBpcyBwYXJ0IG9mIHRoaXMgaW50cmluc2ljCmNvc3QuIEl0IGNvc3RzIGV0aGVyIHRvIHNlbmQgZGF0YSBvdmVyIHRoZSB3aXJlIGFuZCB0aGF0IGV0aGVyIGlzCmFjY291bnRlZCBmb3IgaW4gdGhlIGludHJpbnNpYyBjb3N0IGNhbGN1bGF0ZWQgaW4gdGhpcyBmdW5jdGlvbi4gVGhpcwppbnRyaW5zaWMgY29zdCBtdXN0IGJlIGNhbGN1bGF0ZWQgYW5kIHBhaWQgZm9yIGJlZm9yZSBleGVjdXRp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aBldlHVoHGqNFAAAaB1OaB9OaCBquSwAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqeBQAAGgdTmgfTmggajssAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcanMUAABoHU5oH05oIGoqLAAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGoBDwAAaB1oHmgfTmggauYrAAB1YmVoDn2UKGgQXZRoE12UKGojLAAAjAhmdW5jdGlvbpRlaBVdlGgXXZRoGV2UjAZkb21haW6UaiMsAACMB29ianR5cGWUagAtAACMCGRlc2N0eXBllGoALQAAjAdub2luZGV4lIl1aBxq0w4AAGgdTmgfTmggasorAAB1YmoYDwAAKYGUfZQoaAVYJAEAAGRlZiBzaWduaW5nX2hhc2hfcHJlMTU1KHR4OiBUcmFuc2FjdGlvbikgLT4gSGFzaDMyOgogICAgcmV0dXJuIGtlY2NhazI1NigKICAgICAgICBybHAuZW5jb2RlKAogICAgICAgICAgICAoCiAgICAgICAgICAgICAgICB0eC5ub25jZSwKICAgICAgICAgICAgICAgIHR4Lmdhc19wcmljZSwKICAgICAgICAgICAgICAgIHR4LmdhcywKICAgICAgICAgICAgICAgIHR4LnRvLAogICAgICAgICAgICAgICAgdHgudmFsdWUsCiAgICAgICAgICAgICAgICB0eC5kYXRhLAogICAgICAgICAgICApCiAgICAgICAgKQogICAgKQqUaAddlGg/WCQBAABkZWYgc2lnbmluZ19oYXNoX3ByZTE1NSh0eDogVHJhbnNhY3Rpb24pIC0+IEhhc2gzMjoKICAgIHJldHVybiBrZWNjYWsyNTYoCiAgICAgICAgcmxwLmVuY29kZSgKICAgICAgICAgICAgKAogICAgICAgICAgICAgICAgdHgubm9uY2UsCiAgICAgICAgICAgICAgICB0eC5nYXNfcHJpY2UsCiAgICAgICAgICAgICAgICB0eC5nYXMsCiAgICAgICAgICAgICAgICB0eC50bywKICAgICAgICAgICAgICAgIHR4LnZhbHVlLAogICAgICAgICAgICAgICAgdHguZGF0YSwKICAgICAgICAgICAgKQogICAg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ICAgICAgICAgICB0eC50bywKICAgICAgICAgICAgICAgIHR4LnZhbHVlLAogICAgICAgICAgICAgICAgdHguZGF0YSwKICAgICAgICAgICAgICAgIFVpbnQoMSksCiAgICAgICAgICAgICAgICBVaW50KDApLAogICAgICAgICAgICAgICAgVWludCgwKSwKICAgICAgICAgICAgKQogICAgICAgICkKICAgICkKlGgHXZRoP1hsAQAAZGVmIHNpZ25pbmdfaGFzaF8xNTUodHg6IFRyYW5zYWN0aW9uKSAtPiBIYXNoMzI6CiAgICByZXR1cm4ga2VjY2FrMjU2KAogICAgICAgIHJscC5lbmNvZGUoCiAgICAgICAgICAgICgKICAgICAgICAgICAgICAgIHR4Lm5vbmNlLAogICAgICAgICAgICAgICAgdHguZ2FzX3ByaWNlLAogICAgICAgICAgICAgICAgdHguZ2FzLAogICAgICAgICAgICAgICAgdHgudG8sCiAgICAgICAgICAgICAgICB0eC52YWx1ZSwKICAgICAgICAgICAgICAgIHR4LmRhdGEsCiAgICAgICAgICAgICAgICBVaW50KDEpLAogICAgICAgICAgICAgICAgVWludCgwKSwKICAgICAgICAgICAgICAgIFVpbnQoMCksCiAgICAgICAgICAgICkKICAgICAgICApCiAgICApCpSFlIGUfZQoaAVoBmggamQuAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAZzb3VyY2WUjFAvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL3NyYy9ldGhlcmV1bS9ieXphbnRpdW0vc3BlYy5weZSMCXhtbDpzcGFjZZRq9gQAAIwFZm9yY2WUiYwIbGFuZ3VhZ2WUjAZweXRob26UjA5oaWdobGlnaHRfYXJnc5R9lGpRDwAASwFzjAdsaW5lbm9zlIl1aBxqFw8AAGgdaB5oH012AmggaiYtAAB1YmVoDn2UKGgQXZRqPAQAAGFoE12UaBVdlIwQc2lnbmluZ19oYXNoXzE1NZRhaBddlGgZXZR1aBxoM2gdaB5oH01mAmggaqIOAABoIWgDdWJoNCmBlH2UKGgF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AACMCGZ1bmN0aW9ulGVoFV2UaBddlGgZXZSMBmRvbWFpbpRquDAAAIwHb2JqdHlwZZRqSTIAAIwIZGVzY3R5cGWUakkyAACMB25vaW5kZXiUiXVoHGrTDgAAaB1OaB9OaCBqRzAAAHViahgPAAApgZR9lChoBViBAQAAZGVmIGNoZWNrX2dhc19saW1pdChnYXNfbGltaXQ6IFVpbnQsIHBhcmVudF9nYXNfbGltaXQ6IFVpbnQpIC0+IGJvb2w6CiAgICBtYXhfYWRqdXN0bWVudF9kZWx0YSA9IHBhcmVudF9nYXNfbGltaXQgLy8gR0FTX0xJTUlUX0FESlVTVE1FTlRfRkFDVE9SCiAgICBpZiBnYXNfbGltaXQgPj0gcGFyZW50X2dhc19saW1pdCArIG1heF9hZGp1c3RtZW50X2RlbHRhOgogICAgICAgIHJldHVybiBGYWxzZQogICAgaWYgZ2FzX2xpbWl0IDw9IHBhcmVudF9nYXNfbGltaXQgLSBtYXhfYWRqdXN0bWVudF9kZWx0YToKICAgICAgICByZXR1cm4gRmFsc2UKICAgIGlmIGdhc19saW1pdCA8IEdBU19MSU1JVF9NSU5JTVVNOgogICAgICAgIHJldHVybiBGYWxzZQoKICAgIHJldHVybiBUcnVlCpRoB12UaD9YgQEAAGRlZiBjaGVja19nYXNfbGltaXQoZ2FzX2xpbWl0OiBVaW50LCBwYXJlbnRfZ2FzX2xpbWl0OiBVaW50KSAtPiBib29sOgogICAgbWF4X2FkanVzdG1lbnRfZGVsdGEgPSBwYXJlbnRfZ2FzX2xpbWl0IC8vIEdBU19MSU1JVF9BREpVU1RNRU5UX0ZBQ1RPUgogICAgaWYgZ2FzX2xpbWl0ID49IHBhcmVudF9nYXNfbGltaXQgKyBtYXhfYWRqdXN0bWVudF9kZWx0YToKICAgICAgICByZXR1cm4gRmFsc2UKICAgIGlmIGdhc19saW1pdCA8PSBwYXJlbnRfZ2FzX2xpbWl0IC0gbWF4X2FkanVzdG1lbnRfZGVsdGE6CiAgICAgICAgcmV0dXJuIEZhbHNlCiAgICBpZiBnYXNfbGltaXQgPCBHQVNfTElNSVRfTUlOSU1VTToKICAgICAgICByZXR1cm4gRmFsc2UKCiAgICByZXR1cm4g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ZGlmZmljdWx0eSBpcyBkZXRlcm1pbmVkIGJ5IHRoZSB0aW1lIHRoZSBibG9jayB3YXMgY3JlYXRlZCBhZnRlciBpdHMKcGFyZW50LiBUaGUgYGBvZmZzZXRgYCBpcyBjYWxjdWxhdGVkIHVzaW5nIHRoZSBwYXJlbnQgYmxvY2sncyBkaWZmaWN1bHR5LApgYHBhcmVudF9kaWZmaWN1bHR5YGAsIGFuZCB0aGUgdGltZXN0YW1wIGJldHdlZW4gYmxvY2tzLiBUaGlzIG9mZnNldCBpcwp0aGVuIGFkZGVkIHRvIHRoZSBwYXJlbnQgZGlmZmljdWx0eSBhbmQgaXMgc3RvcmVkIGFzIHRoZSBgYGRpZmZpY3VsdHlgYAp2YXJpYWJsZS4gSWYgdGhlIHRpbWUgYmV0d2VlbiB0aGUgYmxvY2sgYW5kIGl0cyBwYXJlbnQgaXMgdG9vIHNob3J0LCB0aGUKb2Zmc2V0IHdpbGwgcmVzdWx0IGluIGEgcG9zaXRpdmUgbnVtYmVyIHRodXMgbWFraW5nIHRoZSBzdW0gb2YKYGBwYXJlbnRfZGlmZmljdWx0eWBgIGFuZCBgYG9mZnNldGBgIHRvIGJlIGEgZ3JlYXRlciB2YWx1ZSBpbiBvcmRlciB0bwphdm9pZCBtYXNzIGZvcmtpbmcuIEJ1dCwgaWYgdGhlIHRpbWUgaXMgbG9uZyBlbm91Z2gsIHRoZW4gdGhlIG9mZnNldApyZXN1bHRzIGluIGEgbmVnYXRpdmUgdmFsdWUgbWFraW5nIHRoZSBibG9jayBsZXNzIGRpZmZpY3VsdCB0aGFuCml0cyBwYXJlbnQulGgHXZQoaD+MVVRoZSBkaWZmaWN1bHR5IGlzIGRldGVybWluZWQgYnkgdGhlIHRpbWUgdGhlIGJsb2NrIHdhcyBjcmVhdGVkIGFmdGVyIGl0cwpwYXJlbnQuIFRoZSCUhZSBlH2UKGgFaAZoIGpAMwAAaCFoA2gdaERoH0sAdWJqbAUAACmBlH2UKGgFjApgYG9mZnNldGBglGgHXZRoP4wGb2Zmc2V0lIWUgZR9lChoBWgGaCBqSDMAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqawUAAGgdTmgfTmggakAzAAB1Ymg/jDYgaXMgY2Fs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ICAgICAgKQogICAgKQogICAgZGlmZmljdWx0eSA9IGludChwYXJlbnRfZGlmZmljdWx0eSkgKyBvZmZzZXQKICAgICMgSGlzdG9yaWNhbCBOb3RlOiBUaGUgZGlmZmljdWx0eSBib21iIHdhcyBub3QgcHJlc2VudCBpbiBFdGhlcmV1bSBhdCB0aGUKICAgICMgc3RhcnQgb2YgRnJvbnRpZXIsIGJ1dCB3YXMgYWRkZWQgc2hvcnRseSBhZnRlciBsYXVuY2guIEhvd2V2ZXIgc2luY2UgdGhlCiAgICAjIGJvbWIgaGFzIG5vIGVmZmVjdCBwcmlvciB0byBibG9jayAyMDAwMDAgd2UgcHJldGVuZCBpdCBleGlzdGVkIGZyb20KICAgICMgZ2VuZXNpcy4KICAgICMgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ldGhlcmV1bS9nby1ldGhlcmV1bS9wdWxsLzE1ODgKICAgIG51bV9ib21iX3BlcmlvZHMgPSAoKGludChibG9ja19udW1iZXIpIC0gQk9NQl9ERUxBWV9CTE9DS1MpIC8vIDEwMDAwMCkgLSAyCiAgICBpZiBudW1fYm9tYl9wZXJpb2RzID49IDA6CiAgICAgICAgZGlmZmljdWx0eSArPSAyKipudW1fYm9tYl9wZXJpb2RzCgogICAgIyBTb21lIGNsaWVudHMgcmFpc2UgdGhlIGRpZmZpY3VsdHkgdG8gYE1JTklNVU1fRElGRklDVUxUWWAgcHJpb3IgdG8gYWRkaW5nCiAgICAjIHRoZSBib21iLiBUaGlzIGJ1ZyBkb2VzIG5vdCBtYXR0ZXIgYmVjYXVzZSB0aGUgZGlmZmljdWx0eSBpcyBhbHdheXMgbXVjaAogICAgIyBncmVhdGVyIHRoYW4gYE1JTklNVU1fRElGRklDVUxUWWAgb24gTWFpbm5ldC4KICAgIHJldHVybiBVaW50KG1heChkaWZmaWN1bHR5LCBNSU5JTVVNX0RJRkZJQ1VMVFkpKQqUaAddlGg/WI0EAABkZWYgY2FsY3VsYXRlX2Jsb2NrX2RpZmZpY3VsdHkoCiAgICBibG9ja19udW1iZXI6IFVpbnQsCiAgICBibG9ja190aW1lc3RhbXA6IFUyNTYsCiAgICBwYXJlbnRfdGltZXN0YW1wOiBVMjU2LAogICAgcGFyZW50X2RpZmZpY3VsdHk6IFVpbnQsCiAgICBwYXJlbnRfaGFzX29tbWVyczogYm9vbCwKKSAtPiBVaW50OgogICAgb2Zmc2V0ID0gKAogICAgICAgIGludChwYXJlbnRfZGlmZmljdWx0eSkKICAgICAgICAvLyAyMDQ4CiAgICAgICAgKiBtYXgoCiAgICAgICAgICAgICgyIGlmIHBhcmVudF9oYXNfb21tZXJzIGVsc2UgMSkKICAgICAgICAgICAgLSBpbnQoYmxvY2tfdGltZXN0YW1wIC0gcGFyZW50X3RpbWVzdGFtcCkgLy8gOSwKICAgICAgICAgICAgLTk5LAogICAgICAgICkKICAgICkKICAgIGRpZmZpY3VsdHkgPSBpbnQocGFyZW50X2RpZmZpY3VsdHkpICsgb2Zmc2V0CiAgICAjIEhpc3RvcmljYWwgTm90ZTogVGhlIGRpZmZpY3VsdHkgYm9tYiB3YXMgbm90IHByZXNlbnQgaW4gRXRoZXJldW0gYXQgdGhlCiAgICAjIHN0YXJ0IG9mIEZyb250aWVyLCBidXQgd2FzIGFkZGVkIHNob3J0bHkgYWZ0ZXIgbGF1bmNoLiBIb3dldmVyIHNpbmNlIHRoZQogICAgIyBib21iIGhhcyBubyBlZmZlY3QgcHJpb3IgdG8gYmxvY2sgMjAwMDAwIHdlIHByZXRlbmQgaXQgZXhpc3RlZCBmcm9tCiAgICAjIGdlbmVzaXMuCiAgICAjIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZXRoZXJldW0vZ28tZXRoZXJldW0vcHVsbC8xNTg4CiAgICBudW1fYm9tYl9wZXJpb2RzID0gKChpbnQoYmxvY2tfbnVtYmVyKSAtIEJPTUJfREVMQVlfQkxPQ0tTKSAvLyAxMDAwMDApIC0gMgogICAgaWYgbnVtX2JvbWJfcGVyaW9kcyA+PSAwOgogICAgICAgIGRpZmZpY3VsdHkgKz0gMioqbnVtX2JvbWJfcGVyaW9kcwoKICAgICMgU29tZSBjbGllbnRzIHJhaXNlIHRoZSBkaWZmaWN1bHR5IHRvIGBNSU5JTVVNX0RJRkZJQ1VMVFlgIHByaW9yIHRvIGFkZGluZwogICAgIyB0aGUgYm9tYi4gVGhpcyBidWcgZG9lcyBub3QgbWF0dGVyIGJlY2F1c2UgdGhlIGRpZmZpY3VsdHkgaXMgYWx3YXlzIG11Y2gKICAgICMgZ3JlYXRlciB0aGFuIGBNSU5JTVVNX0RJRkZJQ1VMVFlgIG9uIE1haW5uZXQuCiAgICByZXR1cm4gVWludChtYXgoZGlmZmljdWx0eSwgTUlOSU1VTV9ESUZGSUNVTFRZKSkKlIWUgZR9lChoBWgGaCBqRzUAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMBnNvdXJjZZSMUC9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3Mvc3JjL2V0aGVyZXVtL2J5emFudGl1bS9zcGVjLnB5lIwJeG1sOnNwYWNllGr2BAAAjAVmb3JjZZSJjAhsYW5ndWFnZZSMBnB5dGhvbpSMDmhpZ2hsaWdodF9hcmdzlH2UalEPAABLAXOMB2xpbmVub3OUiXVoHGoXDwAAaB1oHmgfTegCaCBqbzIAAHViZWgOfZQoaBBdlGqiBAAAYWgTXZRoFV2UjBpjYWxjdWxhdGVfYmxvY2tfZGlmZmljdWx0eZRhaBddlGgZXZR1aBxoM2gdaB5oH03DAmggaqIOAABoIWgDdWJlaA59lChoEF2UajEBAABhaBNdlGgVXZSMDm1vZHVsZSBkZXRhaWxzlGFoF12UaBldlHVoHGgzaB1oHmgfS0hoIGg1aCFoA3ViZWgOfZQoaBBdlIwWZXRoZXJldW0tc3BlY2lmaWNhdGlvbpRhaBNdlGgVXZSMFmV0aGVyZXVtIHNwZWNpZmljYXRpb26UYWgXXZRoGV2UdWgcaDNoHWgeaB9LBGggaANoIWgDdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwGc291cmNllGhEdWgcaAGMDmN1cnJlbnRfc291cmNllGhEjAxjdXJyZW50X2xpbmWUSwCMCHNldHRpbmdzlIwRZG9jdXRpbHMuZnJvbnRlbmSUjAZWYWx1ZXOUk5QpgZR9lCiMDHJlcG9ydF9sZXZlbJRLAowKaGFsdF9sZXZlbJRLBIwRZXhpdF9zdGF0dXNfbGV2ZWyUSwWMBWRlYnVnlE6MDndhcm5pbmdfc3RyZWFtlE6MCXRyYWNlYmFja5ROjA9vdXRwdXRfZW5jb2RpbmeUjAV1dGYtOJSMHW91dHB1dF9lbmNvZGluZ19lcnJvcl9oYW5kbGVylIwReG1sY2hhcnJlZnJlcGxhY2WUjA5lcnJvcl9lbmNvZGluZ5SMBXV0Zi04lIwcZXJyb3JfZW5jb2RpbmdfZXJyb3JfaGFuZGxlcpSMEGJhY2tzbGFzaHJlcGxhY2WUjBNyZWNvcmRfZGVwZW5kZW5jaWVzlIwOZG9jdXRpbHMudXRpbHOUjA5EZXBlbmRlbmN5TGlzdJSTlCmBlH2UKIwEbGlzdJRdlIwEZmlsZZROdWKMBmNvbmZpZ5ROjA1kdW1wX3NldHRpbmdzlE6MDmR1bXBfaW50ZXJuYWxzlE6MD2R1bXBfdHJhbnNmb3Jtc5ROjA9kdW1wX3BzZXVkb194bWyUTowQZXhwb3NlX2ludGVybmFsc5ROjA5zdHJpY3RfdmlzaXRvcpROjA9fZGlzYWJsZV9jb25maWeUTowHX3NvdXJjZZROjAxfZGVzdGluYXRpb26UjDZkb2MvZGlmZnMvYnl6YW50aXVtX2NvbnN0YW50aW5vcGxlL3NwZWMvaW5kZXgucGlja2xlNjSUjA1fY29uZmlnX2ZpbGVzlF2UjBFsaW5lX2xlbmd0aF9saW1pdJRNECeMCXRhYl93aWR0aJRLCIwQc3ludGF4X2hpZ2hsaWdodJSMBGxvbmeUjAxzbWFydF9xdW90ZXOUiYwTc21hcnRxdW90ZXNfbG9jYWxlc5ROjB1jaGFyYWN0ZXJfbGV2ZWxfaW5saW5lX21hcmt1cJSJjAZ3cml0ZXKUjAN4bWyUjBljb21wYXJlX3NlY3Rpb25zX2J5X25hbWVzlEsBjAxkdW1wX3JzdGRpZmaUTowFX2JvdGiUfZQoaDhOjAlnZW5lcmF0b3KUTowJZGF0ZXN0YW1wlE6MC3NvdXJjZV9saW5rlE6MCnNvdXJjZV91cmyUTowNdG9jX2JhY2tsaW5rc5RqXwUAAIwSZm9vdG5vdGVfYmFja2xpbmtzlEsBjA1zZWN0bnVtX3hmb3JtlEsBjA5kb2N0aXRsZV94Zm9ybZRLAYwNZG9jaW5mb194Zm9ybZRLAYwSc2VjdHN1YnRpdGxlX3hmb3JtlEsAjA5zdHJpcF9jb21tZW50c5ROjA5pbnB1dF9lbmNvZGluZ5ROjBxpbnB1dF9lbmNvZGluZ19lcnJvcl9oYW5kbGVylIwGc3RyaWN0lIwNbGFuZ3VhZ2VfY29kZZSMAmVulIwOcGVwX3JlZmVyZW5jZXOUTowMcGVwX2Jhc2VfdXJslIwfaHR0cDovL3d3dy5weXRob24ub3JnL2Rldi9wZXBzL5SMFXBlcF9maWxlX3VybF90ZW1wbGF0ZZSMCHBlcC0lMDRklIwOcmZjX3JlZmVyZW5jZXOUTowMcmZjX2Jhc2VfdXJslIwbaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvlIwddHJpbV9mb290bm90ZV9yZWZlcmVuY2Vfc3BhY2WUTowWZmlsZV9pbnNlcnRpb25fZW5hYmxlZJRLAYwLcmF3X2VuYWJsZWSUSwGMDmF1dG9faWRfcHJlZml4lIwCaWSUjAlpZF9wcmVmaXiUaAaMG3N0cmlwX2VsZW1lbnRzX3dpdGhfY2xhc3Nlc5ROjA1zdHJpcF9jbGFzc2VzlE51jARib3RolH2UjApfb3B0aW9uc1RvlIwFX2JvdGiUjAtfb2xkX3NvdXJjZZSMTy9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3MvLnRveC9kb2NzL3N0YWdlMF9vdXQvYXV0b2FwaS+UjAtfbmV3X3NvdXJjZZSMCWRvYy9kaWZmc5RqwjUAAGrDNQAAjBZpZ25vcmVfaW5fc2VjdGlvbl9uYW1llF2UKIwJYnl6YW50aXVtlIwOY29uc3RhbnRpbm9wbGWUZXVijAhyZXBvcnRlcpROjBBpbmRpcmVjdF90YXJnZXRzlF2UjBFzdWJzdGl0dXRpb25fZGVmc5R9lIwSc3Vic3RpdHV0aW9uX25hbWVzlH2UjAhyZWZuYW1lc5R9lIwGcmVmaWRzlH2UjAduYW1laWRzlH2UjAluYW1ldHlwZXOUfZRoEH2UjA1mb290bm90ZV9yZWZzlH2UjA1jaXRhdGlvbl9yZWZzlH2UjA1hdXRvZm9vdG5vdGVzlF2UjBFhdXRvZm9vdG5vdGVfcmVmc5RdlIwQc3ltYm9sX2Zvb3Rub3Rlc5RdlIwUc3ltYm9sX2Zvb3Rub3RlX3JlZnOUXZSMCWZvb3Rub3Rlc5RdlIwJY2l0YXRpb25zlF2UjBJhdXRvZm9vdG5vdGVfc3RhcnSUSwGMFXN5bWJvbF9mb290bm90ZV9zdGFydJRLAIwKaWRfY291bnRlcpSMC2NvbGxlY3Rpb25zlIwHQ291bnRlcpSTlH2UhZRSlIwOcGFyc2VfbWVzc2FnZXOUXZSMEnRyYW5zZm9ybV9tZXNzYWdlc5RdlIwLdHJhbnNmb3JtZXKUTowLaW5jbHVkZV9sb2eUXZSMCmRlY29yYXRpb26UTmghaAN1Yi4=