gASVAQABAAAAAACMDmRvY3V0aWxzLm5vZGVzlIwIZG9jdW1lbnSUk5QpgZR9lCiMCXJhd3NvdXJjZZSMAJSMCGNoaWxkcmVulF2UKGgAjAZ0YXJnZXSUk5QpgZR9lChoBWgGaAddlIwKYXR0cmlidXRlc5R9lCiMA2lkc5RdlIwbbW9kdWxlLWV0aGVyZXVtLmxvbmRvbi5zcGVjlGGMB2NsYXNzZXOUXZSMBW5hbWVzlF2UjAhkdXBuYW1lc5RdlIwIYmFja3JlZnOUXZSMBWlzbW9klIh1jAd0YWduYW1llGgJjAZzb3VyY2WUjFwvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL2RvYy9hdXRvYXBpL2V0aGVyZXVtL2xvbmRvbi9zcGVjL2luZGV4LnJzdJSMBGxpbmWUSwGMBnBhcmVudJRoA4wJX2RvY3VtZW50lGgDdWKMD3NwaGlueC5hZGRub2Rlc5SMBWluZGV4lJOUKYGUfZQoaAVoBmgHXZRoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAdlbnRyaWVzlF2UKIwEcGFpcpSMHG1vZHVsZTsgZXRoZXJldW0ubG9uZG9uLnNwZWOUaBJoBk50lGF1aBxoI2gdaB5oH0sCaCBoA2ghaAN1YmgAjAdzZWN0aW9ulJOUKYGUfZQoaAVoBmgHXZQoaACMBXRpdGxllJOUKYGUfZQoaAWMFkV0aGVyZXVtIFNwZWNpZmljYXRpb26UaAddlGgAjARUZXh0lJOUjBZFdGhlcmV1bSBTcGVjaWZpY2F0aW9ulIWUgZR9lChoBWgGaCBoOmghaANoHYxcL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy8udG94L2RvY3Mvc3RhZ2UwX291dC9hdXRvYXBpLyA9PiBkb2MvZGlmZnOUaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoOGgdaB5oH0sEaCBoNWghaAN1YmgAjAV0b3BpY5STlCmBlH2UKGgFaAZoB12UKGg5KYGUfZQoaAWMEVRhYmxlIG9mIENvbnRlbnRzlGgHXZRoP4wRVGFibGUgb2YgQ29udGVudHOUhZSBlH2UKGgFaAZoIGhQ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dXRpb24tc3BlY3MvZG9jL2F1dG9hcGkvZXRoZXJldW0vbG9uZG9uL3NwZWMvaW5kZXgucnN0OjU4OjxhdXRvc3VtbWFyeT6UaB9OaCBqggYAAHViatoFAAApgZR9lChoBVi9BQAACgoKCmFwcGx5X2ZvcmsKClRyYW5zZm9ybXMgdGhlIHN0YXRlIGZyb20gdGhlIHByZXZpb3VzIGhhcmQgZm9yayAob2xkKSBpbnRvIHRoZSBibG9jawoKZ2V0X2xhc3RfMjU2X2Jsb2NrX2hhc2hlcwoKT2J0YWluIHRoZSBsaXN0IG9mIGhhc2hlcyBvZiB0aGUgcHJldmlvdXMgMjU2IGJsb2NrcyBpbiBvcmRlciBvZgoKc3RhdGVfdHJhbnNpdGlvbgoKQXR0ZW1wdHMgdG8gYXBwbHkgYSBibG9jayB0byBhbiBleGlzdGluZyBibG9jayBjaGFpbi4KCnZhbGlkYXRlX2hlYWRlcgoKVmVyaWZpZXMgYSBibG9jayBoZWFkZXIuCgpnZW5lcmF0ZV9oZWFkZXJfaGFzaF9mb3JfcG93CgpHZW5lcmF0ZSBybHAgaGFzaCBvZiB0aGUgaGVhZGVyIHdoaWNoIGlzIHRvIGJlIHVzZWQgZm9yIFByb29mLW9mLVdvcmsKCnZhbGlkYXRlX3Byb29mX29mX3dvcmsKClZhbGlkYXRlcyB0aGUgUHJvb2Ygb2YgV29yayBjb25zdHJhaW50cy4KCmFwcGx5X2JvZHkKCkV4ZWN1dGVzIGEgYmxvY2suCgp2YWxpZGF0ZV9vbW1lcnMKClZhbGlkYXRlcyB0aGUgb21tZXJzIG1lbnRpb25lZCBpbiB0aGUgYmxvY2suCgpwYXlfcmV3YXJkcwoKUGF5IHJld2FyZHMgdG8gdGhlIGJsb2NrIG1pbmVyIGFzIHdlbGwgYXMgdGhlIG9tbWVycyBtaW5lcnMuCgpwcm9jZXNzX3RyYW5zYWN0aW9uCgpFeGVjdXRlIGEgdHJhbnNhY3Rpb24gYWdhaW5zdCB0aGUgcHJvdmlkZWQgZW52aXJvbm1lbnQuCgp2YWxpZGF0ZV90cmFuc2FjdGlvbgoKVmVyaWZpZXMgYSB0cmFuc2FjdGlvbi4KCmNhbGN1bGF0ZV9pbnRyaW5zaWNfY29zdAoKQ2FsY3VsYXRlcyB0aGUgZ2FzIHRoYXQgaXMgY2hhcmdlZCBiZWZvcmUgZXhlY3V0aW9uIGlzIHN0YXJ0ZWQuCgpyZWNvdmVyX3NlbmRlcgoKRXh0cmFjdHMgdGhlIHNlbmRlciBhZGRyZXNzIGZyb20gYSB0cmFuc2FjdGlvbi4KCnNpZ25pbmdfaGFzaF9wcmUxNTUKCkNvbXB1dGUgdGhlIGhhc2ggb2YgYSB0cmFuc2FjdGlvbiB1c2VkIGluIGEgbGVnYWN5IChwcmUgRUlQIDE1NSkgc2lnbmF0dXJlLgoKc2lnbmluZ19oYXNoXzE1NQoKQ29tcHV0ZSB0aGUgaGFzaCBvZiBhIHRyYW5zYWN0aW9uIHVzZWQgaW4gYSBFSVAgMTU1IHNpZ25hdHVyZS4KCnNpZ25pbmdfaGFzaF8yOTMwCgpDb21wdXRlIHRoZSBoYXNoIG9mIGEgdHJhbnNhY3Rpb24gdXNlZCBpbiBhIEVJUCAyOTMwIHNpZ25hdHVyZS4KCnNpZ25pbmdfaGFzaF8xNTU5CgpDb21wdXRlIHRoZSBoYXNoIG9mIGEgdHJhbnNhY3Rpb24gdXNlZCBpbiBhIEVJUCAxNTU5IHNpZ25hdHVyZS4KCmNvbXB1dGVfaGVhZGVyX2hhc2gKCkNvbXB1dGVzIHRoZSBoYXNoIG9mIGEgYmxvY2sgaGVhZGVyLgoKY2hlY2tfZ2FzX2xpbWl0CgpWYWxpZGF0ZXMgdGhlIGdhcyBsaW1pdCBmb3IgYSBibG9jay4KCmNhbGN1bGF0ZV9ibG9ja19kaWZmaWN1bHR5CgpDb21wdXRlcyBkaWZmaWN1bHR5IG9mIGEgYmxvY2sgdXNpbmcgaXRzIGhlYWRlciBhbmQgcGFyZW50IGhlYWRlci6UaAddlGrgBQAAKYGUfZQoaAVoBmgHXZRq5QUAACmBlH2UKGgFaAZoB12UKGrqBQAAKYGUfZQoaAVoBmgHXZRoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAhjb2x3aWR0aJRLCnVoHGrpBQAAaB1OaB9OaCBqpQYAAHViauoFAAApgZR9lChoBWgGaAddlGgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCGNvbHdpZHRolEtadWgcaukFAABoHU5oH05oIGqlBgAAdWJqAAYAACmBlH2UKGgFaAZoB12UKGoFBgAA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Y2Vzc190cmFuc2FjdGlvbiA8ZXRoZXJldW0ubG9uZG9uLnNwZWMucHJvY2Vzc190cmFuc2FjdGlvbj5glGgHXZRobimBlH2UKGgFaAZoB12UahYGAAApgZR9lChoBWq9CQAAaAddlGg/jBNwcm9jZXNzX3RyYW5zYWN0aW9ulIWUgZR9lChoBWgGaCBqwgkAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZQoaiIGAACMAnB5lIwGcHktb2JqlGVoFV2UaBddlGgZXZR1aBxqFQYAAGgdTmgfTmggar8JAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAhpbnRlcm5hbJSIjAVyZWZpZJSMKGV0aGVyZXVtLmxvbmRvbi5zcGVjLnByb2Nlc3NfdHJhbnNhY3Rpb26UjAhyZWZ0aXRsZZSMKGV0aGVyZXVtLmxvbmRvbi5zcGVjLnByb2Nlc3NfdHJhbnNhY3Rpb26UdWgcaG1oHU5oH05oIGq7CQAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB2MbS9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3MvZG9jL2F1dG9hcGkvZXRoZXJldW0vbG9uZG9uL3NwZWMvaW5kZXgucnN0OjU4OjxhdXRvc3VtbWFyeT6UaB9LAWggargJAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcagkGAABoHU5oH05oIGq1CQAAdWJqCgYAACmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYw3RXhlY3V0ZSBhIHRyYW5zYWN0aW9uIGFnYWluc3QgdGhlIHByb3ZpZGVkIGVudmlyb25tZW50LpRoB12UaD+MN0V4ZWN1dGUgYSB0cmFuc2FjdGlvbiBhZ2FpbnN0IHRoZSBwcm92aWRlZCBlbnZpcm9ubWVudC6UhZSBlH2UKGgFaAZoIGrsCQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB2MbS9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3MvZG9jL2F1dG9hcGkvZXRoZXJldW0vbG9uZG9uL3NwZWMv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ZZRqPBoAAIwHbm9pbmRleJSJdWgcahERAABoHU5oH05oIGrYGAAAdWJqVhEAACmBlH2UKGgFWN8CAABkZWYgZ2V0X2xhc3RfMjU2X2Jsb2NrX2hhc2hlcyhjaGFpbjogQmxvY2tDaGFpbikgLT4gTGlzdFtIYXNoMzJdOgogICAgcmVjZW50X2Jsb2NrcyA9IGNoYWluLmJsb2Nrc1stMjU1Ol0KICAgICMgVE9ETzogVGhpcyBmdW5jdGlvbiBoYXMgbm90IGJlZW4gdGVzdGVkIHJpZ29yb3VzbHkKICAgIGlmIGxlbihyZWNlbnRfYmxvY2tzKSA9PSAwOgogICAgICAgIHJldHVybiBbXQoKICAgIHJlY2VudF9ibG9ja19oYXNoZXMgPSBbXQoKICAgIGZvciBibG9jayBpbiByZWNlbnRfYmxvY2tzOgogICAgICAgIHByZXZfYmxvY2tfaGFzaCA9IGJsb2NrLmhlYWRlci5wYXJlbnRfaGFzaAogICAgICAgIHJlY2VudF9ibG9ja19oYXNoZXMuYXBwZW5kKHByZXZfYmxvY2tfaGFzaCkKCiAgICAjIFdlIGFyZSBjb21wdXRpbmcgdGhlIGhhc2ggb25seSBmb3IgdGhlIG1vc3QgcmVjZW50IGJsb2NrIGFuZCBub3QgZm9yCiAgICAjIHRoZSByZXN0IG9mIHRoZSBibG9ja3MgYXMgdGhleSBoYXZlIHN1Y2Nlc3NvcnMgd2hpY2ggaGF2ZSB0aGUgaGFzaCBvZgogICAgIyB0aGUgY3VycmVudCBibG9jayBhcyBwYXJlbnQgaGFzaC4KICAgIG1vc3RfcmVjZW50X2Jsb2NrX2hhc2ggPSBrZWNjYWsyNTYocmxwLmVuY29kZShyZWNlbnRfYmxvY2tzWy0xXS5oZWFkZXIpKQogICAgcmVjZW50X2Jsb2NrX2hhc2hlcy5hcHBlbmQobW9zdF9yZWNlbnRfYmxvY2tfaGFzaCkKCiAgICByZXR1cm4gcmVjZW50X2Jsb2NrX2hhc2hlcwqUaAddlGg/WN8CAABkZWYgZ2V0X2xhc3RfMjU2X2Jsb2NrX2hhc2hlcyhjaGFpbjogQmxvY2tDaGFpbikgLT4gTGlzdFtIYXNoMzJdOgogICAgcmVjZW50X2Jsb2NrcyA9IGNoYWluLmJsb2Nrc1stMjU1Ol0KICAgICMgVE9ETzogVGhpcyBmdW5jdGlvbiBoYXMgbm90IGJlZW4gdGVzdGVkIHJpZ29yb3VzbHkKICAgIGlmIGxlbihyZWNlbnRfYmxvY2tzKSA9PSAwOgogICAgICAgIHJldHVybiBbXQoKICAgIHJlY2VudF9ibG9ja19oYXNoZXMgPSBbXQoKICAgIGZvciBibG9jayBpbiByZWNlbnRfYmxvY2tzOgogICAgICAgIHByZXZfYmxvY2tfaGFzaCA9IGJsb2NrLmhlYWRlci5wYXJlbnRfaGFzaAogICAgICAgIHJlY2VudF9ibG9ja19oYXNoZXMuYXBwZW5kKHByZXZfYmxvY2tfaGFzaCkKCiAgICAjIFdlIGFyZSBjb21wdXRpbmcgdGhlIGhhc2ggb25seSBmb3IgdGhlIG1vc3QgcmVjZW50IGJsb2NrIGFuZCBub3QgZm9yCiAgICAjIHRoZSByZXN0IG9mIHRoZSBibG9ja3MgYXMgdGhleSBoYXZlIHN1Y2Nlc3NvcnMgd2hpY2ggaGF2ZSB0aGUgaGFzaCBvZgogICAgIyB0aGUgY3VycmVudCBibG9jayBhcyBwYXJlbnQgaGFzaC4KICAgIG1vc3RfcmVjZW50X2Jsb2NrX2hhc2ggPSBrZWNjYWsyNTYocmxwLmVuY29kZShyZWNlbnRfYmxvY2tzWy0xXS5oZWFkZXIpKQogICAgcmVjZW50X2Jsb2NrX2hhc2hlcy5hcHBlbmQobW9zdF9yZWNlbnRfYmxvY2tfaGFzaCkKCiAgICByZXR1cm4gcmVjZW50X2Jsb2NrX2hhc2hlcwqUhZSBlH2UKGgFaAZoIGpEGgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwGc291cmNllIxNL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9zcmMvZXRoZXJldW0vbG9uZG9uL3NwZWMucHmUjAl4bWw6c3BhY2WUaqAFAACMBWZvcmNllImMCGxhbmd1YWdllIwGcHl0aG9ulIwOaGlnaGxpZ2h0X2FyZ3OUfZRqbREAAEsBc4wHbGluZW5vc5SJdWgcalURAABoHWgeaB9NLAFoIGrYGAAAdWJl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cGFydHMgb2YgdGhlIGJsb2Nr4oCZcyBjb250ZW50cyBuZWVkIHRvIGJlIHZlcmlmaWVkIGJlZm9yZSBiZWluZyBhZGRlZAp0byB0aGUgY2hhaW4uIEJsb2NrcyBhcmUgdmVyaWZpZWQgYnkgZW5zdXJpbmcgdGhhdCB0aGUgY29udGVudHMgb2YgdGhlCmJsb2NrIG1ha2UgbG9naWNhbCBzZW5zZSB3aXRoIHRoZSBjb250ZW50cyBvZiB0aGUgcGFyZW50IGJsb2NrLiBUaGUKaW5mb3JtYXRpb24gaW4gdGhlIGJsb2Nr4oCZcyBoZWFkZXIgbXVzdCBhbHNvIG1hdGNoIHRoZSBjb3JyZXNwb25kaW5nCmluZm9ybWF0aW9uIGluIHRoZSBibG9jay6UhZSBlH2UKGgFaAZoIGrrGgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1oHmgfTTkBaCBq2hoAAHViaGkpgZR9lChoBYz8VG8gaW1wbGVtZW50IEV0aGVyZXVtLCBpbiB0aGVvcnkgY2xpZW50cyBhcmUgb25seSByZXF1aXJlZCB0byBzdG9yZSB0aGUKbW9zdCByZWNlbnQgMjU1IGJsb2NrcyBvZiB0aGUgY2hhaW4gc2luY2UgYXMgZmFyIGFzIGV4ZWN1dGlvbiBpcwpjb25jZXJuZWQsIG9ubHkgdGhvc2UgYmxvY2tzIGFyZSBhY2Nlc3NlZC4gUHJhY3RpY2FsbHksIGhvd2V2ZXIsIGNsaWVudHMKc2hvdWxkIHN0b3JlIG1vcmUgYmxvY2tzIHRvIGhhbmRsZSByZW9yZ3MulGgHXZRoP4z8VG8gaW1wbGVtZW50IEV0aGVyZXVtLCBpbiB0aGVvcnkgY2xpZW50cyBhcmUgb25seSByZXF1aXJlZCB0byBzdG9yZSB0aGUKbW9zdCByZWNlbnQgMjU1IGJsb2NrcyBvZiB0aGUgY2hhaW4gc2luY2UgYXMgZmFyIGFzIGV4ZWN1dGlvbiBpcwpjb25jZXJuZWQsIG9ubHkgdGhvc2UgYmxvY2tzIGFyZSBhY2Nlc3NlZC4gUHJhY3RpY2FsbHksIGhvd2V2ZXIsIGNsaWVudHMKc2hvdWxkIHN0b3JlIG1vcmUgYmxvY2tzIHRvIGhh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LmhlYWRlciwgY2hhaW4pCiAgICAoCiAgICAgICAgZ2FzX3VzZWQsCiAgICAgICAgdHJhbnNhY3Rpb25zX3Jvb3QsCiAgICAgICAgcmVjZWlwdF9yb290LAogICAgICAgIGJsb2NrX2xvZ3NfYmxvb20sCiAgICAgICAgc3RhdGUsCiAgICApID0gYXBwbHlfYm9keSgKICAgICAgICBjaGFpbi5zdGF0ZSwKICAgICAgICBnZXRfbGFzdF8yNTZfYmxvY2tfaGFzaGVzKGNoYWluKSwKICAgICAgICBibG9jay5oZWFkZXIuY29pbmJhc2UsCiAgICAgICAgYmxvY2suaGVhZGVyLm51bWJlciwKICAgICAgICBibG9jay5oZWFkZXIuYmFzZV9mZWVfcGVyX2dhcywKICAgICAgICBibG9jay5oZWFkZXIuZ2FzX2xpbWl0LAogICAgICAgIGJsb2NrLmhlYWRlci50aW1lc3RhbXAsCiAgICAgICAgYmxvY2suaGVhZGVyLmRpZmZpY3VsdHksCiAgICAgICAgYmxvY2sudHJhbnNhY3Rpb25zLAogICAgICAgIGJsb2NrLm9tbWVycywKICAgICAgICBjaGFpbi5jaGFpbl9pZCwKICAgICkKICAgIGVuc3VyZShnYXNfdXNlZCA9PSBibG9jay5oZWFkZXIuZ2FzX3VzZWQsIEludmFsaWRCbG9jaykKICAgIGVuc3VyZSh0cmFuc2FjdGlvbnNfcm9vdCA9PSBibG9jay5oZWFkZXIudHJhbnNhY3Rpb25zX3Jvb3QsIEludmFsaWRCbG9jaykKICAgIGVuc3VyZShzdGF0ZV9yb290KHN0YXRlKSA9PSBibG9jay5oZWFkZXIuc3RhdGVfcm9vdCwgSW52YWxpZEJsb2NrKQogICAgZW5zdXJlKHJlY2VpcHRfcm9vdCA9PSBibG9jay5oZWFkZXIucmVjZWlwdF9yb290LCBJbnZhbGlkQmxvY2spCiAgICBlbnN1cmUoYmxvY2tfbG9nc19ibG9vbSA9PSBibG9jay5oZWFkZXIuYmxvb20sIEludmFsaWRCbG9jaykKCiAgICBjaGFpbi5ibG9ja3MuYXBwZW5kKGJsb2NrKQogICAgaWYgbGVuKGNoYWluLmJsb2NrcykgPiAyNTU6CiAgICAgICAgIyBSZWFsIGNsaWVudHMgaGF2ZSB0byBzdG9yZSBtb3JlIGJsb2NrcyB0byBkZWFsIHdpdGggcmVvcmdzLCBidXQgdGhlCiAgICAgICAgIyBwcm90b2NvbCBvbmx5IHJlcXVpcmVzIHRoZSBsYXN0IDI1NQogICAgICAgIGNoYWluLmJsb2NrcyA9IGNoYWluLmJsb2Nrc1stMjU1Ol0KlGgHXZRoP1jpBAAAZGVmIHN0YXRlX3RyYW5zaXRpb24oY2hhaW46IEJsb2NrQ2hhaW4sIGJsb2NrOiBCbG9jaykgLT4gTm9uZToKICAgIHBhcmVudF9oZWFkZXIgPSBjaGFpbi5ibG9ja3NbLTFdLmhlYWRlcgogICAgdmFsaWRhdGVfaGVhZGVyKGJsb2NrLmhlYWRlciwgcGFyZW50X2hlYWRlcikKICAgIHZhbGlkYXRlX29tbWVycyhibG9jay5vbW1lcnMsIGJsb2NrLmhlYWRlciwgY2hhaW4pCiAgICAoCiAgICAgICAgZ2FzX3VzZWQsCiAgICAgICAgdHJhbnNhY3Rpb25zX3Jvb3QsCiAgICAgICAgcmVjZWlwdF9yb290LAogICAgICAgIGJsb2NrX2xvZ3NfYmxvb20sCiAgICAgICAgc3RhdGUsCiAgICApID0gYXBwbHlfYm9keSgKICAgICAgICBjaGFpbi5zdGF0ZSwKICAgICAgICBnZXRfbGFzdF8yNTZfYmxvY2tfaGFzaGVzKGNoYWluKSwKICAgICAgICBibG9jay5oZWFkZXIuY29pbmJhc2UsCiAgICAgICAgYmxvY2suaGVhZGVyLm51bWJlciwKICAgICAgICBibG9jay5oZWFkZXIuYmFzZV9mZWVfcGVyX2dhcywKICAgICAgICBibG9jay5oZWFkZXIuZ2FzX2xpbWl0LAogICAgICAgIGJsb2NrLmhlYWRlci50aW1lc3RhbXAsCiAgICAgICAgYmxvY2suaGVhZGVyLmRpZmZpY3VsdHksCiAgICAgICAgYmxvY2sudHJhbnNhY3Rpb25zLAogICAgICAgIGJsb2NrLm9tbWVycywKICAgICAgICBjaGFpbi5jaGFpbl9pZCwKICAgICkKICAgIGVuc3VyZShnYXNfdXNlZCA9PSBibG9jay5oZWFkZXIuZ2FzX3VzZWQsIEludmFsaWRCbG9jaykKICAgIGVuc3VyZSh0cmFuc2FjdGlvbnNfcm9vdCA9PSBibG9jay5oZWFkZXIudHJhbnNhY3Rpb25zX3Jvb3QsIEludmFsaWRCbG9jaykKICAgIGVuc3VyZShzdGF0ZV9yb290KHN0YXRlKSA9PSBibG9jay5oZWFkZXIuc3RhdGVfcm9vdCwgSW52YWxpZEJsb2NrKQogICAgZW5zdXJlKHJlY2VpcHRfcm9vdCA9PSBibG9jay5oZWFkZXIucmVjZWlwdF9yb290LCBJbnZhbGlkQmxvY2spCiAgICBlbnN1cmUoYmxvY2tfbG9nc19ibG9vbSA9PSBibG9jay5oZWFkZXIuYmxvb20sIEludmFsaWRCbG9jaykKCiAgICBjaGFpbi5ibG9ja3MuYXBwZW5kKGJsb2NrKQogICAgaWYgbGVuKGNoYWluLmJsb2NrcykgPiAyNTU6CiAgICAgICAgIyBSZWFsIGNsaWVudHMgaGF2ZSB0byBzdG9yZSBtb3JlIGJsb2NrcyB0byBkZWFsIHdpdGggcmVvcmdzLCBidXQgdGhlCiAgICAgICAgIyBwcm90b2NvbCBvbmx5IHJlcXVpcmVzIHRoZSBsYXN0IDI1NQogICAgICAgIGNoYWluLmJsb2NrcyA9IGNoYWluLmJsb2Nrc1stMjU1Ol0KlIWUgZR9lChoBWgGaCBqrBsAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMBnNvdXJjZZSMTS9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3Mvc3JjL2V0aGVyZXVtL2xvbmRvbi9zcGVjLnB5lIwJeG1sOnNwYWNllGqgBQAAjAVmb3JjZZSJjAhsYW5ndWFnZZSMBnB5dGhvbpSMDmhpZ2hsaWdodF9hcmdzlH2Uam0RAABLAXOMB2xpbmVub3OUiXVoHGpVEQAAaB1oHmgfTUoBaCBqYhoAAHViZWgOfZQoaBBdlGoKAwAAYWgTXZRoFV2UjBBzdGF0ZV90cmFuc2l0aW9ulGFoF12UaBldlHVoHGgzaB1oHmgfTTEBaCBq4BAAAGghaAN1Ymg0KYGUfZQoaAVoBmgHXZQoaDkpgZR9lChoBYwPdmFs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HU5oH05oIGp1HAAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGrhFwAAaB1OaB9OaCBqQhwAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqPxEAAGgdaB5oH05oIGrmGwAAdWJlaA59lChoEF2UaBNdlChqOxwAAIwIZnVuY3Rpb26UZWgVXZRoF12UaBldlIwGZG9tYWlulGo7HAAAjAdvYmp0eXBllGoAHQAAjAhkZXNjdHlwZZRqAB0AAIwHbm9pbmRleJSJdWgcahERAABoHU5oH05oIGrKGwAAdWJqVhEAACmBlH2UKGgFWC0KAABkZWYgdmFsaWRhdGVfaGVhZGVyKGhlYWRlcjogSGVhZGVyLCBwYXJlbnRfaGVhZGVyOiBIZWFkZXIpIC0+IE5vbmU6CiAgICBpZiBoZWFkZXIubnVtYmVyID09IE1BSU5ORVRfRk9SS19CTE9DSzoKICAgICAgICBwYXJlbnRfZ2FzX2xpbWl0ID0gcGFyZW50X2hlYWRlci5nYXNfbGltaXQgKiBFTEFTVElDSVRZX01VTFRJUExJRVIKICAgICAgICBwYXJlbnRfZ2FzX3RhcmdldCA9IHBhcmVudF9oZWFkZXIuZ2FzX2xpbWl0CiAgICBlbHNlOgogICAgICAgIHBhcmVudF9nYXNfbGltaXQgPSBwYXJlbnRfaGVhZGVyLmdhc19saW1pdAogICAgICAgIHBhcmVudF9nYXNfdGFyZ2V0ID0gcGFyZW50X2hlYWRlci5nYXNfbGltaXQgLy8gRUxBU1RJQ0lUWV9NVUxUSVBMSUVSCiAgICAgICAgcGFyZW50X2Jhc2VfZmVlX3Blcl9nYXMgPSBwYXJlbnRfaGVhZGVyLmJhc2VfZmVlX3Blcl9nYXMKCiAgICBwYXJlbnRfZ2FzX3VzZWQgPSBwYXJlbnRfaGVhZGVyLmdhc191c2VkCgogICAgZW5zdXJlKGhlYWRlci5nYXNfdXNlZCA8PSBoZWFkZXIuZ2FzX2xpbWl0LCBJbnZhbGlkQmxvY2spCiAgICBlbnN1cmUoCiAgICAgICAgY2hlY2tfZ2FzX2xpbWl0KGhlYWRlci5nYXNfbGltaXQsIHBhcmVudF9nYXNfbGltaXQpLAogICAgICAgIEludmFsaWRCbG9jaywKICAgICkKCiAgICAjIGNoZWNrIGlmIHRoZSBiYXNlIGZlZSBpcyBjb3JyZWN0CiAgICBpZiBoZWFkZXIubnVtYmVyID09IE1BSU5ORVRfRk9SS19CTE9DSzoKICAgICAgICBleHBlY3RlZF9iYXNlX2ZlZV9wZXJfZ2FzID0gSU5JVElBTF9CQVNFX0ZFRQogICAgZWxpZiBwYXJlbnRfZ2FzX3VzZWQgPT0gcGFyZW50X2dhc190YXJnZXQ6CiAgICAgICAgZXhwZWN0ZWRfYmFzZV9mZWVfcGVyX2dhcyA9IHBhcmVudF9iYXNlX2ZlZV9wZXJfZ2FzCiAgICBlbGlmIHBhcmVudF9nYXNfdXNlZCA+IHBhcmVudF9nYXNfdGFyZ2V0OgogICAgICAgIGdhc191c2VkX2RlbHRhID0gcGFyZW50X2dhc191c2VkIC0gcGFyZW50X2dhc190YXJnZXQKCiAgICAgICAgcGFyZW50X2ZlZV9nYXNfZGVsdGEgPSBwYXJlbnRfYmFzZV9mZWVfcGVyX2dhcyAqIGdhc191c2VkX2RlbHRhCiAgICAgICAgdGFyZ2V0X2ZlZV9nYXNfZGVsdGEgPSBwYXJlbnRfZmVlX2dhc19kZWx0YSAvLyBwYXJlbnRfZ2FzX3RhcmdldAoKICAgICAgICBiYXNlX2ZlZV9wZXJfZ2FzX2RlbHRhID0gbWF4KAogICAgICAgICAgICB0YXJnZXRfZmVlX2dhc19kZWx0YSAvLyBCQVNFX0ZFRV9NQVhfQ0hBTkdFX0RFTk9NSU5BVE9SLAogICAgICAgICAgICAxLAogICAgICAgICkKCiAgICAgICAgZXhwZWN0ZWRfYmFzZV9mZWVfcGVyX2dhcyA9ICgKICAgICAgICAgICAgcGFyZW50X2Jhc2VfZmVlX3Blcl9nYXMgKyBiYXNlX2ZlZV9wZXJfZ2FzX2RlbHRhCiAgICAgICAgKQogICAgZWxzZToKICAgICAgICBnYXNfdXNlZF9kZWx0YSA9IHBhcmVudF9nYXNfdGFyZ2V0IC0gcGFyZW50X2dhc191c2VkCgogICAgICAgIHBhcmVudF9mZWVfZ2FzX2RlbHRhID0gcGFyZW50X2Jhc2VfZmVlX3Blcl9nYXMgKiBnYXNfdXNlZF9kZWx0YQogICAgICAgIHRhcmdldF9mZWVfZ2FzX2RlbHRhID0gcGFyZW50X2ZlZV9nYXNfZGVsdGEgLy8gcGFyZW50X2dhc190YXJnZXQKCiAgICAgICAgYmFzZV9mZWVfcGVyX2dhc19kZWx0YSA9ICgKICAgICAgICAgICAgdGFyZ2V0X2ZlZV9nYXNfZGVsdGEgLy8gQkFTRV9GRUVfTUFYX0NIQU5HRV9ERU5PTUlOQVRPUgogICAgICAgICkKCiAgICAgICAgZXhwZWN0ZWRfYmFzZV9mZWVfcGVyX2dhcyA9ICgKICAgICAgICAgICAgcGFyZW50X2Jhc2VfZmVlX3Blcl9nYXMgLSBiYXNlX2ZlZV9wZXJfZ2FzX2RlbHRhCiAgICAgICAgKQoKICAgIGVuc3VyZShleHBlY3RlZF9iYXNlX2ZlZV9wZXJfZ2FzID09IGhlYWRlci5iYXNlX2ZlZV9wZXJfZ2FzLCBJbnZhbGlkQmxvY2spCgogICAgcGFyZW50X2hhc19vbW1lcnMgPSBwYXJlbnRfaGVhZGVyLm9tbWVyc19oYXNoICE9IEVNUFRZX09NTUVSX0hBU0gKICAgIGVuc3VyZShoZWFkZXIudGltZXN0YW1wID4gcGFyZW50X2hlYWRlci50aW1lc3RhbXAsIEludmFsaWRCbG9jaykKICAgIGVuc3VyZShoZWFkZXIubnVtYmVyID09IHBhcmVudF9oZWFkZXIubnVtYmVyICsgMSwgSW52YWxpZEJsb2NrKQogICAgZW5zdXJlKGxlbihoZWFkZXIuZXh0cmFfZGF0YSkgPD0gMzIsIEludmFsaWRCbG9jaykKCiAgICBibG9ja19kaWZmaWN1bHR5ID0gY2FsY3VsYXRlX2Jsb2NrX2RpZmZpY3VsdHkoCiAgICAgICAgaGVhZGVyLm51bWJlciwKICAgICAgICBoZWFkZXIudGltZXN0YW1wLAogICAgICAgIHBhcmVudF9oZWFkZXIudGltZXN0YW1wLAogICAgICAgIHBhcmVudF9oZWFkZXIuZGlmZmljdWx0eSwKICAgICAgICBwYXJlbnRfaGFzX29tbWVycywKICAgICkKICAgIGVuc3VyZShoZWFkZXIuZGlmZmljdWx0eSA9PSBibG9ja19kaWZmaWN1bHR5LCBJbnZhbGlkQmxvY2spCgogICAgYmxvY2tfcGFyZW50X2hhc2ggPSBrZWNjYWsyNTYocmxwLmVuY29kZShwYXJlbnRfaGVhZGVyKSkKICAgIGVuc3VyZShoZWFkZXIucGFyZW50X2hhc2ggPT0gYmxvY2tfcGFyZW50X2hhc2gsIEludmFsaWRCbG9jaykKCiAgICB2YWxpZGF0ZV9wcm9vZl9vZl93b3JrKGhlYWRlcikKlGgHXZRoP1gtCgAAZGVmIHZhbGlkYXRlX2hlYWRlcihoZWFkZXI6IEhlYWRlciwgcGFyZW50X2hlYWRlcjogSGVhZGVyKSAtPiBOb25lOgogICAgaWYgaGVhZGVyLm51bWJlciA9PSBNQUlOTkVUX0ZPUktfQkxPQ0s6CiAgICAgICAgcGFyZW50X2dhc19saW1pdCA9IHBhcmVudF9oZWFkZXIuZ2FzX2xpbWl0ICogRUxBU1RJQ0lUWV9NVUxUSVBMSUVSCiAgICAgICAgcGFyZW50X2dhc190YXJnZXQgPSBwYXJlbnRfaGVhZGVyLmdhc19saW1pdAogICAgZWxzZToKICAgICAgICBwYXJlbnRfZ2FzX2xpbWl0ID0gcGFyZW50X2hlYWRlci5nYXNfbGltaXQKICAgICAgICBwYXJlbnRfZ2FzX3RhcmdldCA9IHBhcmVudF9oZWFkZXIuZ2FzX2xpbWl0IC8vIEVMQVNUSUNJVFlfTVVMVElQTElFUgogICAgICAgIHBhcmVudF9iYXNlX2ZlZV9wZXJfZ2FzID0gcGFyZW50X2hlYWRlci5iYXNlX2ZlZV9wZXJfZ2FzCgogICAgcGFyZW50X2dhc191c2VkID0gcGFyZW50X2hlYWRlci5nYXNfdXNlZAoKICAgIGVuc3VyZShoZWFkZXIuZ2FzX3VzZWQgPD0gaGVhZGVyLmdhc19saW1pdCwgSW52YWxpZEJsb2NrKQogICAgZW5zdXJlKAogICAgICAgIGNoZWNrX2dhc19saW1pdChoZWFkZXIuZ2FzX2xpbWl0LCBwYXJlbnRfZ2FzX2xpbWl0KSwKICAgICAgICBJbnZhbGlkQmxvY2ssCiAgICApCgogICAgIyBjaGVjayBpZiB0aGUgYmFzZSBmZWUgaXMgY29ycmVjdAogICAgaWYgaGVhZGVyLm51bWJlciA9PSBNQUlOTkVUX0ZPUktfQkxPQ0s6CiAgICAgICAgZXhwZWN0ZWRfYmFzZV9mZWVfcGVyX2dhcyA9IElOSVRJQUxfQkFTRV9GRUUKICAgIGVsaWYgcGFyZW50X2dhc191c2VkID09IHBhcmVudF9nYXNfdGFyZ2V0OgogICAgICAgIGV4cGVjdGVkX2Jhc2VfZmVlX3Blcl9nYXMgPSBwYXJlbnRfYmFzZV9mZWVfcGVyX2dhcwogICAgZWxpZiBwYXJlbnRfZ2FzX3VzZWQgPiBwYXJlbnRfZ2FzX3RhcmdldDoKICAgICAgICBnYXNfdXNlZF9kZWx0YSA9IHBhcmVudF9nYXNfdXNlZCAtIHBhcmVudF9nYXNfdGFyZ2V0CgogICAgICAgIHBhcmVudF9mZWVfZ2FzX2RlbHRhID0gcGFyZW50X2Jhc2VfZmVlX3Blcl9nYXMgKiBnYXNfdXNlZF9kZWx0YQogICAgICAgIHRhcmdldF9mZWVfZ2FzX2RlbHRhID0gcGFyZW50X2ZlZV9nYXNfZGVsdGEgLy8gcGFyZW50X2dhc190YXJnZXQKCiAgICAgICAgYmFzZV9mZWVfcGVyX2dhc19kZWx0YSA9IG1heCgKICAgICAgICAgICAgdGFyZ2V0X2ZlZV9nYXNfZGVsdGEgLy8gQkFTRV9GRUVfTUFYX0NIQU5HRV9ERU5PTUlOQVRPUiwKICAgICAgICAgICAgMSwKICAgICAgICApCgogICAgICAgIGV4cGVjdGVkX2Jhc2VfZmVlX3Blcl9nYXMgPSAoCiAgICAgICAgICAgIHBhcmVudF9iYXNlX2ZlZV9wZXJfZ2FzICsgYmFzZV9mZWVfcGVyX2dhc19kZWx0YQogICAgICAgICkKICAgIGVsc2U6CiAgICAgICAgZ2FzX3VzZWRfZGVsdGEgPSBwYXJlbnRfZ2FzX3RhcmdldCAtIHBhcmVudF9nYXNfdXNlZAoKICAgICAgICBwYXJlbnRfZmVlX2dhc19kZWx0YSA9IHBhcmVudF9iYXNlX2ZlZV9wZXJfZ2FzICogZ2FzX3VzZWRfZGVsdGEKICAgICAgICB0YXJnZXRfZmVlX2dhc19kZWx0YSA9IHBhcmVudF9mZWVfZ2FzX2RlbHRhIC8vIHBhcmVudF9nYXNfdGFyZ2V0CgogICAgICAgIGJhc2VfZmVlX3Blcl9nYXNfZGVsdGEgPSAoCiAgICAgICAgICAgIHRhcmdldF9mZWVfZ2FzX2RlbHRhIC8vIEJBU0VfRkVFX01BWF9DSEFOR0VfREVOT01JTkFUT1IKICAgICAgICApCgogICAgICAgIGV4cGVjdGVkX2Jhc2VfZmVlX3Blcl9nYXMgPSAoCiAgICAgICAgICAgIHBhcmVudF9iYXNlX2ZlZV9wZXJfZ2FzIC0gYmFzZV9mZWVfcGVyX2dhc19kZWx0YQogICAgICAgICkKCiAgICBlbnN1cmUoZXhwZWN0ZWRfYmFzZV9mZWVfcGVyX2dhcyA9PSBoZWFkZXIuYmFzZV9mZWVfcGVyX2dhcywgSW52YWxpZEJsb2NrKQoKICAgIHBhcmVudF9oYXNfb21tZXJzID0gcGFyZW50X2hlYWRlci5vbW1lcnNfaGFzaCAhPSBFTVBUWV9PTU1FUl9IQVNICiAgICBlbnN1cmUoaGVhZGVyLnRpbWVzdGFtcCA+IHBhcmVudF9oZWFkZXIudGltZXN0YW1wLCBJbnZhbGlkQmxvY2spCiAgICBlbnN1cmUoaGVhZGVyLm51bWJlciA9PSBwYXJlbnRfaGVhZGVyLm51bWJlciArIDEsIEludmFsaWRCbG9jaykKICAgIGVuc3VyZShsZW4oaGVhZGVyLmV4dHJhX2RhdGEpIDw9IDMyLCBJbnZhbGlkQmxvY2spCgogICAgYmxvY2tfZGlmZmljdWx0eSA9IGNhbGN1bGF0ZV9ibG9ja19kaWZmaWN1bHR5KAogICAgICAgIGhlYWRlci5udW1iZXIsCiAgICAgICAgaGVhZGVyLnRpbWVzdGFtcCwKICAgICAgICBwYXJlbnRfaGVhZGVyLnRpbWVzdGFtcCwKICAgICAgICBwYXJlbnRfaGVhZGVyLmRpZmZpY3VsdHksCiAgICAgICAgcGFyZW50X2hhc19vbW1lcnMsCiAgICApCiAgICBlbnN1cmUoaGVhZGVyLmRpZmZpY3VsdHkgPT0gYmxvY2tfZGlmZmljdWx0eSwgSW52YWxpZEJsb2NrKQoKICAgIGJsb2NrX3BhcmVudF9oYXNoID0ga2VjY2FrMjU2KHJscC5lbmNvZGUocGFyZW50X2hlYWRlcikpCiAgICBlbnN1cmUoaGVhZGVyLnBhcmVudF9o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ICAgICAgaGVhZGVyLmJsb29tLAogICAgICAgIGhlYWRlci5kaWZmaWN1bHR5LAogICAgICAgIGhlYWRlci5udW1iZXIsCiAgICAgICAgaGVhZGVyLmdhc19saW1pdCwKICAgICAgICBoZWFkZXIuZ2FzX3VzZWQsCiAgICAgICAgaGVhZGVyLnRpbWVzdGFtcCwKICAgICAgICBoZWFkZXIuZXh0cmFfZGF0YSwKICAgICAgICBoZWFkZXIuYmFzZV9mZWVfcGVyX2dhcywKICAgIF0KCiAgICByZXR1cm4gcmxwLnJscF9oYXNoKGhlYWRlcl9kYXRhX3dpdGhvdXRfcG93X2FydGVmYWN0cykKlGgHXZRoP1gkAgAAZGVmIGdlbmVyYXRlX2hlYWRlcl9oYXNoX2Zvcl9wb3coaGVhZGVyOiBIZWFkZXIpIC0+IEhhc2gzMjoKICAgIGhlYWRlcl9kYXRhX3dpdGhvdXRfcG93X2FydGVmYWN0cyA9IFsKICAgICAgICBoZWFkZXIucGFyZW50X2hhc2gsCiAgICAgICAgaGVhZGVyLm9tbWVyc19oYXNoLAogICAgICAgIGhlYWRlci5jb2luYmFzZSwKICAgICAgICBoZWFkZXIuc3RhdGVfcm9vdCwKICAgICAgICBoZWFkZXIudHJhbnNhY3Rpb25zX3Jvb3QsCiAgICAgICAgaGVhZGVyLnJlY2VpcHRfcm9vdCwKICAgICAgICBoZWFkZXIuYmxvb20sCiAgICAgICAgaGVhZGVyLmRpZmZpY3VsdHksCiAgICAgICAgaGVhZGVyLm51bWJlciwKICAgICAgICBoZWFkZXIuZ2FzX2xpbWl0LAogICAgICAgIGhlYWRlci5nYXNfdXNlZCwKICAgICAgICBoZWFkZXIudGltZXN0YW1wLAogICAgICAgIGhlYWRlci5leHRyYV9kYXRhLAogICAgICAgIGhlYWRlci5iYXNlX2ZlZV9wZXJfZ2FzLAogICAgXQoKICAgIHJldHVybiBybHAucmxwX2hhc2goaGVhZGVyX2RhdGFfd2l0aG91dF9wb3dfYXJ0ZWZhY3RzKQqUhZSBlH2UKGgFaAZoIGrIHgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwGc291cmNl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cm9vZl9vZl93b3JrKGhlYWRlcjogSGVhZGVyKSAtPiBOb25lOgogICAgaGVhZGVyX2hhc2ggPSBnZW5lcmF0ZV9oZWFkZXJfaGFzaF9mb3JfcG93KGhlYWRlcikKICAgICMgVE9ETzogTWVtb2l6ZSB0aGlzIHNvbWV3aGVyZSBhbmQgcmVhZCBmcm9tIHRoYXQgZGF0YSBpbnN0ZWFkIG9mCiAgICAjIGNhbGN1bGF0aW5nIGNhY2hlIGZvciBldmVyeSBibG9jayB2YWxpZGF0aW9uLgogICAgY2FjaGUgPSBnZW5lcmF0ZV9jYWNoZShoZWFkZXIubnVtYmVyKQogICAgbWl4X2RpZ2VzdCwgcmVzdWx0ID0gaGFzaGltb3RvX2xpZ2h0KAogICAgICAgIGhlYWRlcl9oYXNoLCBoZWFkZXIubm9uY2UsIGNhY2hlLCBkYXRhc2V0X3NpemUoaGVhZGVyLm51bWJlcikKICAgICkKCiAgICBlbnN1cmUobWl4X2RpZ2VzdCA9PSBoZWFkZXIubWl4X2RpZ2VzdCwgSW52YWxpZEJsb2NrKQogICAgZW5zdXJlKAogICAgICAgIFVpbnQuZnJvbV9iZV9ieXRlcyhyZXN1bHQpIDw9IChVMjU2X0NFSUxfVkFMVUUgLy8gaGVhZGVyLmRpZmZpY3VsdHkpLAogICAgICAgIEludmFsaWRCbG9jaywKICAgICkKlGgHXZRoP1g2AgAAZGVmIHZhbGlkYXRlX3Byb29mX29mX3dvcmsoaGVhZGVyOiBIZWFkZXIpIC0+IE5vbmU6CiAgICBoZWFkZXJfaGFzaCA9IGdlbmVyYXRlX2hlYWRlcl9oYXNoX2Zvcl9wb3coaGVhZGVyKQogICAgIyBUT0RPOiBNZW1vaXplIHRoaXMgc29tZXdoZXJlIGFuZCByZWFkIGZyb20gdGhhdCBkYXRhIGluc3RlYWQgb2YKICAgICMgY2FsY3VsYXRpbmcgY2FjaGUgZm9yIGV2ZXJ5IGJsb2NrIHZhbGlkYXRpb24uCiAgICBjYWNoZSA9IGdlbmVyYXRlX2NhY2hlKGhlYWRlci5udW1iZXIpCiAgICBtaXhfZGlnZXN0LCByZXN1bHQgPSBoYXNoaW1vdG9fbGlnaHQoCiAgICAgICAgaGVhZGVyX2hhc2gsIGhl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aWVbQnl0ZXMsIE9wdGlvbmFsW1VuaW9uW0J5dGVzLCBSZWNlaXB0XV1dID0gVHJpZSgKICAgICAgICBzZWN1cmVkPUZhbHNlLCBkZWZhdWx0PU5vbmUKICAgICkKICAgIGJsb2NrX2xvZ3M6IFR1cGxlW0xvZywgLi4uXSA9ICgpCgogICAgZm9yIGksIHR4IGluIGVudW1lcmF0ZShtYXAoZGVjb2RlX3RyYW5zYWN0aW9uLCB0cmFuc2FjdGlvbnMpKToKICAgICAgICB0cmllX3NldCgKICAgICAgICAgICAgdHJhbnNhY3Rpb25zX3RyaWUsIHJscC5lbmNvZGUoVWludChpKSksIGVuY29kZV90cmFuc2FjdGlvbih0eCkKICAgICAgICApCgogICAgICAgIGVuc3VyZSh0eC5nYXMgPD0gZ2FzX2F2YWlsYWJsZSwgSW52YWxpZEJsb2NrKQogICAgICAgIHNlbmRlcl9hZGRyZXNzID0gcmVjb3Zlcl9zZW5kZXIoY2hhaW5faWQsIHR4KQoKICAgICAgICBpZiBpc2luc3RhbmNlKHR4LCBGZWVNYXJrZXRUcmFuc2FjdGlvbik6CiAgICAgICAgICAgIGVuc3VyZSgKICAgICAgICAgICAgICAgIHR4Lm1heF9mZWVfcGVyX2dhcyA+PSB0eC5tYXhfcHJpb3JpdHlfZmVlX3Blcl9nYXMsIEludmFsaWRCbG9jawogICAgICAgICAgICApCgogICAgICAgICAgICBwcmlvcml0eV9mZWVfcGVyX2dhcyA9IG1pbigKICAgICAgICAgICAgICAgIHR4Lm1heF9wcmlvcml0eV9mZWVfcGVyX2dhcywKICAgICAgICAgICAgICAgIHR4Lm1heF9mZWVfcGVyX2dhcyAtIGJhc2VfZmVlX3Blcl9nYXMsCiAgICAgICAgICAgICkKICAgICAgICAgICAgZWZmZWN0aXZlX2dhc19wcmljZSA9IHByaW9yaXR5X2ZlZV9wZXJfZ2FzICsgYmFzZV9mZWVfcGVyX2dhcwogICAgICAgIGVsc2U6CiAgICAgICAgICAgIGVuc3VyZSh0eC5nYXNfcHJpY2UgPj0gYmFzZV9mZWVfcGVyX2dhcywgSW52YWxpZEJsb2NrKQogICAgICAgICAgICBlZmZlY3RpdmVfZ2FzX3ByaWNlID0gdHguZ2FzX3ByaWNlCgogICAgICAgIGVudiA9IHZtLkVudmlyb25tZW50KAogICAgICAgICAgICBjYWxsZXI9c2VuZGVyX2FkZHJlc3MsCiAgICAgICAgICAgIG9yaWdpbj1zZW5kZXJfYWRkcmVzcywKICAgICAgICAgICAgYmxvY2tfaGFzaGVzPWJsb2NrX2hhc2hlcywKICAgICAgICAgICAgY29pbmJhc2U9Y29pbmJhc2UsCiAgICAgICAgICAgIG51bWJlcj1ibG9ja19udW1iZXIsCiAgICAgICAgICAgIGdhc19saW1pdD1ibG9ja19nYXNfbGltaXQsCiAgICAgICAgICAgIGJhc2VfZmVlX3Blcl9nYXM9YmFzZV9mZWVfcGVyX2dhcywKICAgICAgICAgICAgZ2FzX3ByaWNlPWVmZmVjdGl2ZV9nYXNfcHJpY2UsCiAgICAgICAgICAgIHRpbWU9YmxvY2tfdGltZSwKICAgICAgICAgICAgZGlmZmljdWx0eT1ibG9ja19kaWZmaWN1bHR5LAogICAgICAgICAgICBzdGF0ZT1zdGF0ZSwKICAgICAgICAgICAgY2hhaW5faWQ9Y2hhaW5faWQsCiAgICAgICAgKQoKICAgICAgICBnYXNfdXNlZCwgbG9ncywgaGFzX2VycmVkID0gcHJvY2Vzc190cmFuc2FjdGlvbihlbnYsIHR4KQogICAgICAgIGdhc19hdmFpbGFibGUgLT0gZ2FzX3VzZWQKCiAgICAgICAgcmVjZWlwdDogVW5pb25bQnl0ZXMsIFJlY2VpcHRdID0gUmVjZWlwdCgKICAgICAgICAgICAgc3VjY2VlZGVkPW5vdCBoYXNfZXJyZWQsCiAgICAgICAgICAgIGN1bXVsYXRpdmVfZ2FzX3VzZWQ9KGJsb2NrX2dhc19saW1pdCAtIGdhc19hdmFpbGFibGUpLAogICAgICAgICAgICBibG9vbT1sb2dzX2Jsb29tKGxvZ3MpLAogICAgICAgICAgICBsb2dzPWxvZ3MsCiAgICAgICAgKQoKICAgICAgICBpZiBpc2luc3RhbmNlKHR4LCBBY2Nlc3NMaXN0VHJhbnNhY3Rpb24pOgogICAgICAgICAgICByZWNlaXB0ID0gYiJceDAxIiArIHJscC5lbmNvZGUocmVjZWlwdCkKICAgICAgICBpZiBpc2luc3RhbmNlKHR4LCBGZWVNYXJrZXRUcmFuc2FjdGlvbik6CiAgICAgICAgICAgIHJlY2VpcHQgPSBiIlx4MDIiICsgcmxwLmVuY29kZShyZWNlaXB0KQoKICAgICAgICB0cmllX3NldCgKICAgICAgICAgICAgcmVjZWlwdHNfdHJpZSwKICAgICAgICAgICAgcmxwLmVuY29kZShVaW50KGkpKSwKICAgICAgICAgICAgcmVjZWlwdCwKICAgICAgICApCgogICAgICAgIGJsb2NrX2xvZ3MgKz0gbG9ncwoKICAgIHBheV9yZXdhcmRzKHN0YXRlLCBibG9ja19udW1iZXIsIGNvaW5iYXNlLCBvbW1lcnMpCgogICAgZ2FzX3JlbWFpbmluZyA9IGJsb2NrX2dhc19saW1pdCAtIGdhc19hdmFpbGFibGUKCiAgICBibG9ja19sb2dzX2Jsb29tID0gbG9nc19ibG9vbShibG9ja19sb2dzKQoKICAgIHJldHVybiAoCiAgICAgICAgZ2FzX3JlbWFpbmluZywKICAgICAgICByb290KHRyYW5zYWN0aW9uc190cmllKSwKICAgICAgICByb290KHJlY2VpcHRzX3RyaWUpLAogICAgICAgIGJsb2NrX2xvZ3NfYmxvb20sCiAgICAgICAgc3RhdGUsCiAgICApCpRoB12UaD9YdAsAAGRlZiBhcHBseV9ib2R5KAogICAgc3RhdGU6IFN0YXRlLAogICAgYmxvY2tfaGFzaGVzOiBMaXN0W0hhc2gzMl0sCiAgICBjb2luYmFzZTogQWRkcmVzcywKICAgIGJsb2NrX251bWJlcjogVWludCwKICAgIGJhc2VfZmVlX3Blcl9nYXM6IFVpbnQsCiAgICBibG9ja19nYXNfbGltaXQ6IFVpbnQsCiAgICBibG9ja190aW1lOiBVMjU2LAogICAgYmxvY2tfZGlmZmljdWx0eTogVWludCwKICAgIHRyYW5zYWN0aW9uczogVHVwbGVbVW5pb25bTGVnYWN5VHJhbnNhY3Rpb24sIEJ5dGVzXSwgLi4uXSwKICAgIG9tbWVyczogVHVwbGVbSGVhZGVyLCAuLi5dLAogICAgY2hhaW5faWQ6IFVpbnQ2NCwKKSAtPiBUdXBsZVtVaW50LCBSb290LCBSb290LCBCbG9vbSwgU3RhdGVdOgogICAgZ2FzX2F2YWlsYWJsZSA9IGJsb2NrX2dhc19saW1pdAogICAgdHJhbnNhY3Rpb25zX3RyaWU6IFRyaWVbCiAgICAgICAgQnl0ZXMsIE9wdGlvbmFsW1VuaW9uW0J5dGVzLCBMZWdhY3lUcmFuc2FjdGlvbl1dCiAgICBdID0gVHJpZShzZWN1cmVkPUZhbHNlLCBkZWZhdWx0PU5vbmUpCiAgICByZWNlaXB0c190cmllOiBUcmllW0J5dGVzLCBPcHRpb25hbFtVbmlvbltCeXRlcywgUmVjZWlwdF1dXSA9IFRyaWUoCiAgICAgICAgc2VjdXJlZD1GYWxzZSwgZGVmYXVsdD1Ob25lCiAgICApCiAgICBibG9ja19sb2dzOiBUdXBsZVtMb2csIC4uLl0gPSAoKQoKICAgIGZvciBpLCB0eCBpbiBlbnVtZXJhdGUobWFwKGRlY29kZV90cmFuc2FjdGlvbiwgdHJhbnNhY3Rpb25zKSk6CiAgICAgICAgdHJpZV9zZXQoCiAgICAgICAgICAgIHRyYW5zYWN0aW9uc190cmllLCBybHAuZW5jb2RlKFVpbnQoaSkpLCBlbmNvZGVfdHJhbnNhY3Rpb24odHgpCiAgICAgICAgKQoKICAgICAgICBlbnN1cmUodHguZ2FzIDw9IGdhc19hdmFpbGFibGUsIEludmFsaWRCbG9jaykKICAgICAgICBzZW5kZXJfYWRkcmVzcyA9IHJlY292ZXJfc2VuZGVyKGNoYWluX2lkLCB0eCkKCiAgICAgICAgaWYgaXNpbnN0YW5jZSh0eCwgRmVlTWFya2V0VHJhbnNhY3Rpb24pOgogICAgICAgICAgICBlbnN1cmUoCiAgICAgICAgICAgICAgICB0eC5tYXhfZmVlX3Blcl9nYXMgPj0gdHgubWF4X3ByaW9yaXR5X2ZlZV9wZXJfZ2FzLCBJbnZhbGlkQmxvY2sKICAgICAgICAgICAgKQoKICAgICAgICAgICAgcHJpb3JpdHlfZmVlX3Blcl9nYXMgPSBtaW4oCiAgICAgICAgICAgICAgICB0eC5tYXhfcHJpb3JpdHlfZmVlX3Blcl9nYXMsCiAgICAgICAgICAgICAgICB0eC5tYXhfZmVlX3Blcl9nYXMgLSBiYXNlX2ZlZV9wZXJfZ2FzLAogICAgICAgICAgICApCiAgICAgICAgICAgIGVmZmVjdGl2ZV9nYXNfcHJpY2UgPSBwcmlvcml0eV9mZWVfcGVyX2dhcyArIGJhc2VfZmVlX3Blcl9nYXMKICAgICAgICBlbHNlOgogICAgICAgICAgICBlbnN1cmUodHguZ2FzX3ByaWNlID49IGJhc2VfZmVlX3Blcl9nYXMsIEludmFsaWRCbG9jaykKICAgICAgICAgICAgZWZmZWN0aXZlX2dhc19wcmljZSA9IHR4Lmdhc19wcmljZQoKICAgICAgICBlbnYgPSB2bS5FbnZpcm9ubWVudCgKICAgICAgICAgICAgY2FsbGVyPXNlbmRlcl9hZGRyZXNzLAogICAgICAgICAgICBvcmlnaW49c2VuZGVyX2FkZHJlc3MsCiAgICAgICAgICAgIGJsb2NrX2hhc2hlcz1ibG9ja19oYXNoZXMsCiAgICAgICAgICAgIGNvaW5iYXNlPWNvaW5iYXNlLAogICAgICAgICAgICBudW1iZXI9YmxvY2tfbnVtYmVyLAogICAgICAgICAgICBnYXNfbGltaXQ9YmxvY2tfZ2FzX2xpbWl0LAogICAgICAgICAgICBiYXNlX2ZlZV9wZXJfZ2FzPWJhc2VfZmVlX3Blcl9nYXMsCiAgICAgICAgICAgIGdhc19wcmljZT1lZmZlY3RpdmVfZ2FzX3ByaWNlLAogICAgICAgICAgICB0aW1lPWJsb2NrX3RpbWUsCiAgICAgICAgICAgIGRpZmZpY3VsdHk9YmxvY2tfZGlmZmljdWx0eSwKICAgICAgICAgICAgc3RhdGU9c3RhdGUsCiAgICAgICAgICAgIGNoYWluX2lkPWNoYWluX2lkLAogICAgICAgICkKCiAgICAgICAgZ2FzX3VzZWQsIGxvZ3MsIGhhc19lcnJlZCA9IHByb2Nlc3NfdHJhbnNhY3Rpb24oZW52LCB0eCkKICAgICAgICBnYXNfYXZhaWxhYmxlIC09IGdhc191c2VkCgogICAgICAgIHJlY2VpcHQ6IFVuaW9uW0J5dGVzLCBSZWNlaXB0XSA9IFJlY2VpcHQoCiAgICAgICAgICAgIHN1Y2NlZWRlZD1ub3QgaGFzX2VycmVkLAogICAgICAgICAgICBjdW11bGF0aXZlX2dhc191c2VkPShibG9ja19nYXNfbGltaXQgLSBnYXNfYXZhaWxhYmxlKSwKICAgICAgICAgICAgYmxvb209bG9nc19ibG9vbShsb2dzKSwKICAgICAgICAgICAgbG9ncz1sb2dzLAogICAgICAgICkKCiAgICAgICAgaWYgaXNpbnN0YW5jZSh0eCwgQWNjZXNzTGlzdFRyYW5zYWN0aW9uKToKICAgICAgICAgICAgcmVjZWlwdCA9IGIiXHgwMSIgKyBybHAuZW5jb2RlKHJlY2VpcHQpCiAgICAgICAgaWYgaXNpbnN0YW5jZSh0eCwgRmVlTWFya2V0VHJhbnNhY3Rpb24pOgogICAgICAgICAgICByZWNlaXB0ID0gYiJceDAyIiArIHJscC5lbmNvZGUocmVjZWlwdCkKCiAgICAgICAgdHJpZV9zZXQoCiAgICAgICAgICAgIHJlY2VpcHRzX3RyaWUsCiAgICAgICAgICAgIHJscC5lbmNvZGUoVWludChpKSksCiAgICAgICAgICAgIHJlY2VpcHQsCiAgICAgICAgKQoKICAgICAgICBibG9ja19sb2dzICs9IGxvZ3MKCiAgICBwYXlfcmV3YXJkcyhzdGF0ZSwgYmxvY2tfbnVtYmVyLCBjb2luYmFzZSwgb21tZXJzKQoKICAgIGdhc19yZW1haW5pbmcgPSBibG9ja19nYXNfbGltaXQgLSBnYXNfYXZhaWxhYmxlCgogICAgYmxvY2tfbG9nc19ibG9vbSA9IGxvZ3NfYmxvb20oYmxvY2tfbG9ncykKCiAgICByZXR1cm4gKAogICAgICAgIGdhc19yZW1haW5pbmcsCiAgICAgICAgcm9vdCh0cmFuc2FjdGlvbnNfdHJpZSksCiAgICAgICAgcm9vdChyZWNlaXB0c190cmllKSwKICAgICAgICBibG9ja19sb2dzX2Jsb29tLAogICAgICAgIHN0YXRlLAogICAgKQqUhZSBlH2UKGgFaAZoIGrFJAAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwGc291cmNllIxNL2hvbWUvcnVubmVyL3dvcmsv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YWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdaB5oH03RAWgganMlAAB1YmhpKYGUfZQoaAWMpEFuIG9tbWVyIGJsb2NrIGlzIGEgYmxvY2sgdGhhdCB3YXNuJ3QgY2Fub25pY2FsbHkgYWRkZWQgdG8gdGhlCmJsb2NrY2hhaW4gYmVjYXVzZSBpdCB3YXNuJ3QgdmFsaWRhdGVkIGFzIGZhc3QgYXMgdGhlIGNhbm9uaWNhbCBibG9jawpidXQgd2FzIG1pbmVkIGF0IHRoZSBzYW1lIHRpbWUulGgHXZRoP4yoQW4gb21tZXIgYmxvY2sgaXMgYSBibG9jayB0aGF0IHdhc27igJl0IGNhbm9uaWNhbGx5IGFkZGVkIHRvIHRoZQpibG9ja2NoYWluIGJlY2F1c2UgaXQgd2FzbuKAmXQgdmFsaWRhdGVkIGFzIGZhc3QgYXMgdGhlIGNhbm9uaWNhbCBibG9jawpidXQgd2FzIG1pbmVkIGF0IHRoZSBzYW1lIHRpbWUulIWUgZR9lChoBWgGaCBqhCUAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdaB5oH03TAWgganMlAAB1YmhpKYGUfZQoaAVYEgEAAFRvIGJlIGNvbnNpZGVyZWQgdmFsaWQsIHRoZSBvbW1lcnMgbXVzdCBhZGhlcmUgdG8gdGhlIHJ1bGVzIGRlZmluZWQgaW4KdGhlIEV0aGVyZXVtIHByb3RvY29sLiBUaGUgbWF4aW11bSBhbW91bnQgb2Ygb21tZXJzIGlzIDIgcGVyIGJsb2NrIGFuZAp0aGVyZSBjYW5ub3QgYmUgZHVwbGljYXRlIG9tbWVycyBpbiBhIGJsb2NrLiBNYW55IG9mIHRoZSBvdGhlciBvbW1lcgpjb250cmFpbnRzIGFyZSBsaXN0ZWQgaW4gdGhlIGluLWxpbmUgY29tbWVudHMgb2YgdGhpcyBmdW5jdGlvbi6UaAddlGg/WBIBAABUbyBiZSBjb25zaWRlcmVkIHZhbGlkLCB0aGUgb21tZXJzIG11c3QgYWRoZXJlIHRvIHRoZSBydWxlcyBkZWZpbmVkIGluCnRoZSBFdGhlcmV1bSBwcm90b2NvbC4gVGhlIG1heGltdW0gYW1vdW50IG9m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dWgcauYXAABoHU5oH05oIGqgJQAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGrhFwAAaB1OaB9OaCBqcyUAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqPxEAAGgdaB5oH05oIGr/JAAAdWJlaA59lChoEF2UaBNdlChqbCUAAIwIZnVuY3Rpb26UZWgVXZRoF12UaBldlIwGZG9tYWlulGpsJQAAjAdvYmp0eXBllGpTJgAAjAhkZXNjdHlwZZRqUyYAAIwHbm9pbmRleJSJdWgcahERAABoHU5oH05oIGrjJAAAdWJqVhEAACmBlH2UKGgFWAEJAABkZWYgdmFsaWRhdGVfb21tZXJzKAogICAgb21tZXJzOiBUdXBsZVtIZWFkZXIsIC4uLl0sIGJsb2NrX2hlYWRlcjogSGVhZGVyLCBjaGFpbjogQmxvY2tDaGFpbgopIC0+IE5vbmU6CiAgICBibG9ja19oYXNoID0gcmxwLnJscF9oYXNoKGJsb2NrX2hlYWRlcikKCiAgICBlbnN1cmUocmxwLnJscF9oYXNoKG9tbWVycykgPT0gYmxvY2tfaGVhZGVyLm9tbWVyc19oYXNoLCBJbnZhbGlkQmxvY2spCgogICAgaWYgbGVuKG9tbWVycykgPT0gMDoKICAgICAgICAjIE5vdGhpbmcgdG8gdmFsaWRhdGUKICAgICAgICByZXR1cm4KCiAgICAjIENoZWNrIHRoYXQgZWFjaCBvbW1lciBzYXRpc2ZpZXMgdGhlIGNvbnN0cmFpbnRzIG9mIGEgaGVhZGVyCiAgICBmb3Igb21tZXIgaW4gb21tZXJzOgogICAgICAgIGVuc3VyZSgxIDw9IG9tbWVyLm51bWJlciA8IGJsb2NrX2hlYWRlci5udW1iZXIsIEludmFsaWRCbG9jaykKICAgICAgICBvbW1lcl9wYXJlbnRfaGVhZGVyID0gY2hhaW4uYmxvY2tzWwogICAgICAgICAgICAtKGJsb2NrX2hlYWRlci5udW1iZXIgLSBvbW1lci5udW1iZXIpIC0gMQogICAgICAgIF0uaGVhZGVyCiAgICAgICAgdmFsaWRhdGVfaGVhZGVyKG9tbWVyLCBvbW1lcl9wYXJlbnRfaGVhZGVyKQoKICAgICMgQ2hlY2sgdGhhdCB0aGVyZSBjYW4gYmUgb25seSBhdCBtb3N0IDIgb21tZXJzIGZvciBhIGJsb2NrLgogICAgZW5zdXJlKGxlbihvbW1lcnMpIDw9IDIsIEludmFsaWRCbG9jaykKCiAgICBvbW1lcnNfaGFzaGVzID0gW3JscC5ybHBfaGFzaChvbW1lcikgZm9yIG9tbWVyIGluIG9tbWVyc10KICAgICMgQ2hlY2sgdGhhdCB0aGVyZSBhcmUgbm8gZHVwbGljYXRlcyBpbiB0aGUgb21tZXJzIG9mIGN1cnJlbnQgYmxvY2sKICAgIGVuc3VyZShsZW4ob21tZXJzX2hhc2hlcykgPT0gbGVuKHNldChvbW1lcnNfaGFzaGVzKSksIEludmFsaWRCbG9jaykKCiAgICByZWNlbnRfY2Fub25pY2FsX2Jsb2NrcyA9IGNoYWluLmJsb2Nrc1stKE1BWF9PTU1FUl9ERVBUSCArIDEpIDpdCiAgICByZWNlbnRfY2Fub25pY2FsX2Jsb2NrX2hhc2hlcyA9IHsKICAgICAgICBybHAucmxwX2hhc2goYmxvY2suaGVhZGVyKSBmb3IgYmxvY2sgaW4gcmVjZW50X2Nhbm9uaWNhbF9ibG9ja3MKICAgIH0KICAgIHJlY2VudF9vbW1lcnNfaGFzaGVzOiBTZXRbSGFzaDMyXSA9IHNldCgpCiAgICBmb3IgYmxvY2sgaW4gcmVjZW50X2Nhbm9uaWNhbF9ibG9ja3M6CiAgICAgICAgcmVjZW50X29tbWVyc19oYXNoZXMgPSByZWNlbnRfb21tZXJzX2hhc2hlcy51bmlvbigKICAgICAgICAgICAge3JscC5ybHBfaGFzaChvbW1lcikgZm9yIG9tbWVyIGluIGJsb2NrLm9tbWVyc30KICAgICAgICApCgogICAgZm9yIG9tbWVyX2luZGV4LCBvbW1lciBpbiBlbnVtZXJhdGUob21tZXJzKToKICAgICAgICBvbW1lcl9oYXNoID0gb21tZXJzX2hhc2hlc1tvbW1lcl9pbmRleF0KICAgICAgICAjIFRoZSBjdXJyZW50IGJsb2NrIHNob3VsZG4ndCBiZSB0aGUgb21tZXIKICAgICAgICBlbnN1cmUob21tZXJfaGFzaCAhPSBibG9ja19oYXNoLCBJbnZhbGlkQmxvY2spCgogICAgICAgICMgT21tZXIgc2hvdWxkbid0IGJlIG9uZSBvZiB0aGUgcmVjZW50IGNhbm9uaWNhbCBibG9ja3MKICAgICAgICBlbnN1cmUob21tZXJfaGFzaCBub3QgaW4gcmVjZW50X2Nhbm9uaWNhbF9ibG9ja19oYXNoZXMsIEludmFsaWRCbG9jaykKCiAgICAgICAgIyBPbW1lciBzaG91bGRuJ3QgYmUgb25lIG9mIHRoZSB1bmNsZXMgbWVudGlvbmVkIGluIHRoZSByZWNlbnQKICAgICAgICAjIGNhbm9uaWNhbCBibG9ja3MKICAgICAgICBlbnN1cmUob21tZXJfaGFzaCBub3QgaW4gcmVjZW50X29tbWVyc19oYXNoZXMsIEludmFsaWRCbG9jaykKCiAgICAgICAgIyBPbW1lciBhZ2Ugd2l0aCByZXNwZWN0IHRvIHRoZSBjdXJyZW50IGJsb2NrLiBGb3IgZXhhbXBsZSwgYW4gYWdlIG9mCiAgICAgICAgIyAxIGluZGljYXRlcyB0aGF0IHRoZSBvbW1lciBpcyBhIHNpYmxpbmcgb2YgcHJldmlvdXMgYmxvY2suCiAgICAgICAgb21tZXJfYWdlID0gYmxvY2tfaGVhZGVyLm51bWJlciAtIG9tbWVyLm51bWJlcgogICAgICAgIGVuc3VyZSgxIDw9IG9tbWVyX2FnZSA8PSBNQVhfT01NRVJfREVQVEgsIEludmFsaWRCbG9jaykKCiAgICAgICAgZW5zdXJlKAogICAgICAgICAgICBvbW1lci5wYXJlbnRfaGFzaCBpbiByZWNlbnRfY2Fub25pY2FsX2Jsb2NrX2hhc2hlcywgSW52YWxpZEJsb2NrCiAgICAgICAgKQogICAgICAgIGVuc3VyZShvbW1lci5wYXJlbnRfaGFzaCAhPSBibG9ja19oZWFkZXIucGFyZW50X2hhc2gsIEludmFsaWRCbG9jaykKlJVOAQEAAAAAAGgHXZRoP1gBCQAAZGVmIHZhbGlkYXRlX29tbWVycygKICAgIG9tbWVyczogVHVwbGVbSGVhZGVyLCAuLi5dLCBibG9ja19oZWFkZXI6IEhlYWRlciwgY2hhaW46IEJsb2NrQ2hhaW4KKSAtPiBOb25lOgogICAgYmxvY2tfaGFzaCA9IHJscC5ybHBfaGFzaChibG9ja19oZWFkZXIpCgogICAgZW5zdXJlKHJscC5ybHBfaGFzaChvbW1lcnMpID09IGJsb2NrX2hlYWRlci5vbW1lcnNfaGFzaCwgSW52YWxpZEJsb2NrKQoKICAgIGlmIGxlbihvbW1lcnMpID09IDA6CiAgICAgICAgIyBOb3RoaW5nIHRvIHZhbGlkYXRlCiAgICAgICAgcmV0dXJuCgogICAgIyBDaGVjayB0aGF0IGVhY2ggb21tZXIgc2F0aXNmaWVzIHRoZSBjb25zdHJhaW50cyBvZiBhIGhlYWRlcgogICAgZm9yIG9tbWVyIGluIG9tbWVyczoKICAgICAgICBlbnN1cmUoMSA8PSBvbW1lci5udW1iZXIgPCBibG9ja19oZWFkZXIubnVtYmVyLCBJbnZhbGlkQmxvY2spCiAgICAgICAgb21tZXJfcGFyZW50X2hlYWRlciA9IGNoYWluLmJsb2Nrc1sKICAgICAgICAgICAgLShibG9ja19oZWFkZXIubnVtYmVyIC0gb21tZXIubnVtYmVyKSAtIDEKICAgICAgICBdLmhlYWRlcgogICAgICAgIHZhbGlkYXRlX2hlYWRlcihvbW1lciwgb21tZXJfcGFyZW50X2hlYWRlcikKCiAgICAjIENoZWNrIHRoYXQgdGhlcmUgY2FuIGJlIG9ubHkgYXQgbW9zdCAyIG9tbWVycyBmb3IgYSBibG9jay4KICAgIGVuc3VyZShsZW4ob21tZXJzKSA8PSAyLCBJbnZhbGlkQmxvY2spCgogICAgb21tZXJzX2hhc2hlcyA9IFtybHAucmxwX2hhc2gob21tZXIpIGZvciBvbW1lciBpbiBvbW1lcnNdCiAgICAjIENoZWNrIHRoYXQgdGhlcmUgYXJlIG5vIGR1cGxpY2F0ZXMgaW4gdGhlIG9tbWVycyBvZiBjdXJyZW50IGJsb2NrCiAgICBlbnN1cmUobGVuKG9tbWVyc19oYXNoZXMpID09IGxlbihzZXQob21tZXJzX2hhc2hlcykpLCBJbnZhbGlkQmxvY2spCgogICAgcmVjZW50X2Nhbm9uaWNhbF9ibG9ja3MgPSBjaGFpbi5ibG9ja3NbLShNQVhfT01NRVJfREVQVEggKyAxKSA6XQogICAgcmVjZW50X2Nhbm9uaWNhbF9ibG9ja19oYXNoZXMgPSB7CiAgICAgICAgcmxwLnJscF9oYXNoKGJsb2NrLmhlYWRlcikgZm9yIGJsb2NrIGluIHJlY2VudF9jYW5vbmljYWxfYmxvY2tzCiAgICB9CiAgICByZWNlbnRfb21tZXJzX2hhc2hlczogU2V0W0hhc2gzMl0gPSBzZXQoKQogICAgZm9yIGJsb2NrIGluIHJlY2VudF9jYW5vbmljYWxfYmxvY2tzOgogICAgICAgIHJlY2VudF9vbW1lcnNfaGFzaGVzID0gcmVjZW50X29tbWVyc19oYXNoZXMudW5pb24oCiAgICAgICAgICAgIHtybHAucmxwX2hhc2gob21tZXIpIGZvciBvbW1lciBpbiBibG9jay5vbW1lcnN9CiAgICAgICAgKQoKICAgIGZvciBvbW1lcl9pbmRleCwgb21tZXIgaW4gZW51bWVyYXRlKG9tbWVycyk6CiAgICAgICAgb21tZXJfaGFzaCA9IG9tbWVyc19oYXNoZXNbb21tZXJfaW5kZXhdCiAgICAgICAgIyBUaGUgY3VycmVudCBibG9jayBzaG91bGRuJ3QgYmUgdGhlIG9tbWVyCiAgICAgICAgZW5zdXJlKG9tbWVyX2hhc2ggIT0gYmxvY2tfaGFzaCwgSW52YWxpZEJsb2NrKQoKICAgICAgICAjIE9tbWVyIHNob3VsZG4ndCBiZSBvbmUgb2YgdGhlIHJlY2VudCBjYW5vbmljYWwgYmxvY2tzCiAgICAgICAgZW5zdXJlKG9tbWVyX2hhc2ggbm90IGluIHJlY2VudF9jYW5vbmljYWxfYmxvY2tfaGFzaGVzLCBJbnZhbGlkQmxvY2spCgogICAgICAgICMgT21tZXIgc2hvdWxkbid0IGJlIG9uZSBvZiB0aGUgdW5jbGVzIG1lbnRpb25lZCBpbiB0aGUgcmVjZW50CiAgICAgICAgIyBjYW5vbmljYWwgYmxvY2tzCiAgICAgICAgZW5zdXJlKG9tbWVyX2hhc2ggbm90IGluIHJlY2VudF9vbW1lcnNfaGFzaGVzLCBJbnZhbGlkQmxvY2spCgogICAgICAgICMgT21tZXIgYWdlIHdpdGggcmVzcGVjdCB0byB0aGUgY3VycmVudCBibG9jay4gRm9yIGV4YW1wbGUsIGFuIGFnZSBvZgogICAgICAgICMgMSBpbmRpY2F0ZXMgdGhhdCB0aGUgb21tZXIgaXMgYSBzaWJsaW5nIG9mIHByZXZpb3VzIGJsb2NrLgogICAgICAgIG9tbWVyX2FnZSA9IGJsb2NrX2hlYWRlci5udW1iZXIgLSBvbW1lci5udW1iZXIKICAgICAgICBlbnN1cmUoMSA8PSBvbW1lcl9hZ2UgPD0gTUFYX09NTUVSX0RFUFRILCBJbnZhbGlkQmxvY2spCgogICAgICAgIGVuc3VyZSgKICAgICAgICAgICAgb21tZXIucGFyZW50X2hhc2ggaW4gcmVjZW50X2Nhbm9uaWNhbF9ibG9ja19oYXNoZXMsIEludmFsaWRCbG9jawogICAgICAgICkKICAgICAgICBlbnN1cmUob21tZXIucGFyZW50X2hhc2ggIT0gYmxvY2tfaGVhZGVyLnBhcmVudF9oYXNoLCBJbnZhbGlkQmxvY2spCpSFlIGUfZQoaAVoBmggalsmAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAZzb3VyY2WUjE0vaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL3NyYy9ldGhlcmV1bS9sb25kb24vc3BlYy5weZSMCXhtbDpzcGFjZZRqoAUAAIwFZm9yY2WUiYwIbGFuZ3VhZ2WUjAZweXRob26UjA5oaWdobGlnaHRfYXJnc5R9lGptEQAASwFzjAdsaW5lbm9zlIl1aBxqVREAAGgdaB5oH03jAWggauMkAAB1YmVoDn2UKGgQXZRqtAMAAGFoE12UaBVdlIwPdmFsaWRhdGVfb21tZXJzlGFoF12UaBldlHVoHGgzaB1oHmgfTcsBaCBq4BAAAGghaAN1Ymg0KYGUfZQoaAVoBmgHXZQoaDkpgZR9lChoBYwLcGF5X3Jld2FyZHOUaAddlGg/jAtwYXlfcmV3YXJkc5SFlIGUfZQoaAVoBmgganwmAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaDhoHWgeaB9N6AFoIGp5JgAAdWJoJCmBlH2UKGgFaAZoB12UaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwHZW50cmllc5RdlHVoHGgjaB1OaB9OaCBqeSYAAHViahIRAAApgZR9lChoBWgGaAddlChqFxEAACmBlH2UKGgFjDJwYXlfcmV3YXJkcyhzdGF0ZSwgYmxvY2tfbnVtYmVyLCBjb2luYmFzZSwgb21tZXJzKZRoB12UKGodEQAAKYGUfZQoaAWMC3BheV9yZXdhcmRzlGgHXZRoP4wLcGF5X3Jld2FyZHOUhZSBlH2UKGgFaAZoIGqcJgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlChqKBEAAGopEQAAaioRAABqKxEAAGVoFV2UaBddlGgZXZSMCXhtbDpzcGFjZZRqoAUAAHVoHGocEQAAaB1oHmgfTmggapgmAAB1YmpeFwAAKYGUfZQoaAWMJXN0YXRlLCBibG9ja19udW1iZXIsIGNvaW5iYXNlLCBvbW1lcnOUaAddlChqZBcAACmBlH2UKGgFjAVzdGF0ZZRoB12UauEUAAApgZR9lChoBWgGaAddlGg/jAVzdGF0ZZSFlIGUfZQoaAVoBmggarMmAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UanMXAABhaBVdlGgXXZRoGV2UdWgcauAUAABoHU5oH05oIGqvJgAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwJeG1sOnNwYWNllGqgBQAAdWgcamMXAABoHU5oH05oIGqrJgAAdWJqZBcAACmBlH2UKGgFjAxibG9ja19udW1iZXKUaAddlGrhFAAAKYGUfZQoaAVoBmgHXZRoP4wMYmxvY2tfbnVtYmVylIWUgZR9lChoBWgGaCBqyyYAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRqcxcAAGFoFV2UaBddlGgZXZR1aBxq4BQAAGgdTmgfTmggascmAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAl4bWw6c3BhY2WUaqAFAAB1aBxqYxcAAGgdTmgfTmggaqsmAAB1YmpkFwAAKYGUfZQoaAWMCGNvaW5iYXNllGgHXZRq4RQAACmBlH2UKGgFaAZoB12UaD+MCGNvaW5iYXNllIWUgZR9lChoBWgGaCBq4yYAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRqcxcAAGFoFV2UaBddlGgZXZR1aBxq4BQAAGgdTmgfTmggat8mAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAl4bWw6c3BhY2WUaqAFAAB1aBxqYxcAAGgdTmgfTmggaqsmAAB1YmpkFwAAKYGUfZQoaAWMBm9tbWVyc5RoB12UauEUAAApgZR9lChoBWgGaAddlGg/jAZvbW1lcnOUhZSBlH2UKGgFaAZoIGr7JgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGpzFwAAYWgVXZRoF12UaBldlHVoHGrgFAAAaB1OaB9OaCBq9yYAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCXhtbDpzcGFjZZRqoAUAAHVoHGpjFwAAaB1OaB9OaCBqqyYAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCXhtbDpzcGFjZZRqoAUAAHVoHGpdFwAAaB1oHmgfTmggapgmAAB1YmVoDn2UKGgQXZSMIGV0aGVyZXVtLmxvbmRvbi5zcGVjLnBheV9yZXdhcmRzlGFoE12UKGozEQAAajQRAACMAnB5lGo2EQAAajcRAABlaBVdlGgXXZRoGV2UjAZtb2R1bGWUajwRAACMBWNsYXNzlGgGjAhmdWxsbmFtZZRqniYAAHVoHGoWEQAAaB1oHmgfTesBaCBqlSYAAHViakARAAApgZR9lChoBWgGaAddlChoaSmBlH2UKGgFjDxQYXkgcmV3YXJkcyB0byB0aGUgYmxvY2sgbWluZXIgYXMgd2VsbCBhcyB0aGUgb21tZXJzIG1pbmVycy6UaAddlGg/jDxQYXkgcmV3YXJkcyB0byB0aGUgYmxvY2sgbWluZXIgYXMgd2VsbCBhcyB0aGUgb21tZXJzIG1pbmVycy6UhZSBlH2UKGgFaAZoIGokJwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1oHmgfTe4BaCBqIScAAHViaGkpgZR9lChoBViPAgAAVGhlIG1pbmVyIG9mIHRoZSBjYW5vbmljYWwgYmxvY2sgaXMgcmV3YXJkZWQgd2l0aCB0aGUgcHJlZGV0ZXJtaW5lZApibG9jayByZXdhcmQsIGBgQkxPQ0tfUkVXQVJEYGAsIHBsdXMgYSB2YXJpYWJsZSBhd2FyZCBiYXNlZCBvZmYgb2YgdGhlCm51bWJlciBvZiBvbW1lciBibG9ja3MgdGhhdCB3ZXJlIG1pbmVkIGFyb3VuZCB0aGUgc2FtZSB0aW1lLCBhbmQgaW5jbHVkZWQKaW4gdGhlIGNhbm9uaWNhbCBibG9jaydzIGhlYWRlci4gQW4gb21tZXIgYmxvY2sgaXMgYSBibG9jayB0aGF0IHdhc24ndAphZGRlZCB0byB0aGUgY2Fub25pY2FsIGJsb2NrY2hhaW4gYmVjYXVzZSBpdCB3YXNuJ3QgdmFsaWRhdGVkIGFzIGZhc3QgYXMKdGhlIGFjY2VwdGVkIGJsb2NrIGJ1dCB3YXMgbWluZWQgYXQgdGhlIHNhbWUgdGltZS4gQWx0aG91Z2ggbm90IGFsbCBibG9ja3MKdGhhdCBhcmUgbWluZWQgYXJlIGFkZGVkIHRvIHRoZSBjYW5vbmljYWwgY2hhaW4sIG1pbmVycyBhcmUgc3RpbGwgcGFpZCBhCnJld2FyZCBmb3IgdGhlaXIgZWZmb3J0cy4gVGhpcyByZXdhcmQgaXMgY2FsbGVkIGFuIG9tbWVyIHJld2FyZCBhbmQgaXMKY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgbnVtYmVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgb21tZXIgYmxvY2sgdGhhdCB0aGV5Cm1pbmVkLpRoB12UKGg/jFJUaGUgbWluZXIgb2YgdGhlIGNhbm9uaWNhbCBibG9jayBpcyByZXdhcmRlZCB3aXRoIHRoZSBwcmVkZXRlcm1pbmVkCmJsb2NrIHJld2FyZCwglIWUgZR9lChoBWgGaCBqMicAAGghaANoHWhEaB9LAHViahYGAAApgZR9lChoBYwQYGBCTE9DS19SRVdBUkRgYJRoB12UaD+MDEJMT0NLX1JFV0FSRJSFlIGUfZQoaAVoBmggajonAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcahUGAABoHU5oH05oIGoyJwAAdWJoP1gzAgAALCBwbHVzIGEgdmFyaWFibGUgYXdhcmQgYmFzZWQgb2ZmIG9mIHRoZQpudW1iZXIgb2Ygb21tZXIgYmxvY2tzIHRoYXQgd2VyZSBtaW5lZCBhcm91bmQg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FV2UaBddlGgZXZR1aBxqPxEAAGgdaB5oH05oIGqVJgAAdWJlaA59lChoEF2UaBNdlChqGicAAIwIZnVuY3Rpb26UZWgVXZRoF12UaBldlIwGZG9tYWlulGoaJwAAjAdvYmp0eXBllGotKAAAjAhkZXNjdHlwZZRqLSgAAIwHbm9pbmRleJSJdWgcahERAABoHU5oH05oIGp5JgAAdWJqVhEAACmBlH2UKGgFWP4BAABkZWYgcGF5X3Jld2FyZHMoCiAgICBzdGF0ZTogU3RhdGUsCiAgICBibG9ja19udW1iZXI6IFVpbnQsCiAgICBjb2luYmFzZTogQWRkcmVzcywKICAgIG9tbWVyczogVHVwbGVbSGVhZGVyLCAuLi5dLAopIC0+IE5vbmU6CiAgICBtaW5lcl9yZXdhcmQgPSBCTE9DS19SRVdBUkQgKyAobGVuKG9tbWVycykgKiAoQkxPQ0tfUkVXQVJEIC8vIDMyKSkKICAgIGNyZWF0ZV9ldGhlcihzdGF0ZSwgY29pbmJhc2UsIG1pbmVyX3Jld2FyZCkKCiAgICBmb3Igb21tZXIgaW4gb21tZXJzOgogICAgICAgICMgT21tZXIgYWdlIHdpdGggcmVzcGVjdCB0byB0aGUgY3VycmVudCBibG9jay4KICAgICAgICBvbW1lcl9hZ2UgPSBVMjU2KGJsb2NrX251bWJlciAtIG9tbWVyLm51bWJlcikKICAgICAgICBvbW1lcl9taW5lcl9yZXdhcmQgPSAoKDggLSBvbW1lcl9hZ2UpICogQkxPQ0tfUkVXQVJEKSAvLyA4CiAgICAgICAgY3JlYXRlX2V0aGVyKHN0YXRlLCBvbW1lci5jb2luYmFzZSwgb21tZXJfbWluZXJfcmV3YXJkKQqUaAddlGg/WP4BAABkZWYgcGF5X3Jld2FyZHMoCiAgICBzdGF0ZTogU3RhdGUsCiAgICBibG9ja19udW1iZXI6IFVpbnQsCiAgICBjb2luYmFzZTogQWRkcmVzcywKICAgIG9tbWVyczogVHVwbGVbSGVhZGVyLCAuLi5dLAopIC0+IE5vbmU6CiAgICBtaW5lcl9yZXdhcmQgPSBCTE9DS19SRVdBUkQgKyAobGVuKG9tbWVycykgKiAoQkxPQ0tfUkVXQVJEIC8vIDMyKSkKICAgIGNy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BmgHXZQoaGkpgZR9lChoBYw3RXhlY3V0ZSBhIHRyYW5zYWN0aW9uIGFnYWluc3QgdGhlIHByb3ZpZGVkIGVudmlyb25tZW50LpRoB12UaD+MN0V4ZWN1dGUgYSB0cmFuc2FjdGlvbiBhZ2FpbnN0IHRoZSBwcm92aWRlZCBlbnZpcm9ubWVudC6UhZSBlH2UKGgFaAZoIGrOKAAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1oHmgfTQ4CaCBqyygAAHViaGkpgZR9lChoBVhbAQAAVGhpcyBmdW5jdGlvbiBwcm9jZXNzZXMgdGhlIGFjdGlvbnMgbmVlZGVkIHRvIGV4ZWN1dGUgYSB0cmFuc2FjdGlvbi4KSXQgZGVjcmVtZW50cyB0aGUgc2VuZGVyJ3MgYWNjb3VudCBhZnRlciBjYWxjdWxhdGluZyB0aGUgZ2FzIGZlZSBhbmQKcmVmdW5kcyB0aGVtIHRoZSBwcm9wZXIgYW1vdW50IGFmdGVyIGV4ZWN1dGlvbi4gQ2FsbGluZyBjb250cmFjdHMsCmRlcGxveWluZyBjb2RlLCBhbmQgaW5jcmVtZW50aW5nIG5vbmNlcyBhcmUgYWxsIGV4YW1wbGVzIG9mIGFjdGlvbnMgdGhhdApoYXBwZW4gd2l0aGluIHRoaXMgZnVuY3Rpb24gb3IgZnJvbSBhIGNhbGwgbWFkZSB3aXRoaW4gdGhpcyBmdW5jdGlvbi6UaAddlGg/WF0BAABUaGlzIGZ1bmN0aW9uIHByb2Nlc3NlcyB0aGUgYWN0aW9ucyBuZWVkZWQgdG8gZXhlY3V0ZSBhIHRyYW5zYWN0aW9uLgpJdCBkZWNyZW1lbnRzIHRoZSBzZW5kZXLigJlzIGFjY291bnQgYWZ0ZXIgY2FsY3VsYXRpbmcgdGhlIGdhcyBmZWUgYW5kCnJlZnVuZHMgdGhlbSB0aGUgcHJvcGVyIGFtb3VudCBhZnRlciBleGVjdXRpb24uIENhbGxpbmcgY29udHJhY3RzLApkZXBsb3lpbmcgY29kZSwgYW5kIGluY3JlbWVudGluZyBub25jZXMgYXJlIGFsbCBleGFtcGxlcyBvZiBhY3Rpb25zIHRoYXQKaGFwcGVuIHdpdGhpbiB0aGlzIGZ1bmN0aW9u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OiBUcmFuc2FjdGlvbgopIC0+IFR1cGxlW1UyNTYsIFR1cGxlW0xvZywgLi4uXSwgYm9vbF06CiAgICBlbnN1cmUodmFsaWRhdGVfdHJhbnNhY3Rpb24odHgpLCBJbnZhbGlkQmxvY2spCgogICAgc2VuZGVyID0gZW52Lm9yaWdpbgogICAgc2VuZGVyX2FjY291bnQgPSBnZXRfYWNjb3VudChlbnYuc3RhdGUsIHNlbmRlcikKCiAgICBpZiBpc2luc3RhbmNlKHR4LCBGZWVNYXJrZXRUcmFuc2FjdGlvbik6CiAgICAgICAgZ2FzX2ZlZSA9IHR4LmdhcyAqIHR4Lm1heF9mZWVfcGVyX2dhcwogICAgZWxzZToKICAgICAgICBnYXNfZmVlID0gdHguZ2FzICogdHguZ2FzX3ByaWNlCgogICAgZW5zdXJlKHNlbmRlcl9hY2NvdW50Lm5vbmNlID09IHR4Lm5vbmNlLCBJbnZhbGlkQmxvY2spCiAgICBlbnN1cmUoc2VuZGVyX2FjY291bnQuYmFsYW5jZSA+PSBnYXNfZmVlICsgdHgudmFsdWUsIEludmFsaWRCbG9jaykKICAgIGVuc3VyZShzZW5kZXJfYWNjb3VudC5jb2RlID09IGJ5dGVhcnJheSgpLCBJbnZhbGlkQmxvY2spCgogICAgZWZmZWN0aXZlX2dhc19mZWUgPSB0eC5nYXMgKiBlbnYuZ2FzX3ByaWNlCgogICAgZ2FzID0gdHguZ2FzIC0gY2FsY3VsYXRlX2ludHJpbnNpY19jb3N0KHR4KQogICAgaW5jcmVtZW50X25vbmNlKGVudi5zdGF0ZSwgc2VuZGVyKQoKICAgIHNlbmRlcl9iYWxhbmNlX2FmdGVyX2dhc19mZWUgPSBzZW5kZXJfYWNjb3VudC5iYWxhbmNlIC0gZWZmZWN0aXZlX2dhc19mZWUKICAgIHNldF9hY2NvdW50X2JhbGFuY2UoZW52LnN0YXRlLCBzZW5kZXIsIHNlbmRlcl9iYWxhbmNlX2FmdGVyX2dhc19mZWUpCgogICAgcHJlYWNjZXNzZWRfYWRkcmVzc2VzID0gc2V0KCkKICAgIHByZWFjY2Vzc2VkX3N0b3JhZ2Vfa2V5cyA9IHNldCgpCiAgICBpZiBpc2luc3RhbmNlKHR4LCAoQWNjZXNzTGlzdFRyYW5zYWN0aW9uLCBGZWVNYXJrZXRUcmFuc2FjdGlvbikpOgogICAgICAgIGZvciAoYWRkcmVzcywga2V5cykgaW4gdHguYWNjZXNzX2xpc3Q6CiAgICAgICAgICAgIHByZWFjY2Vzc2VkX2FkZHJlc3Nlcy5hZGQoYWRkcmVzcykKICAgICAgICAgICAgZm9yIGtleSBpbiBrZXlzOgogICAgICAgICAgICAgICAgcHJlYWNjZXNzZWRfc3RvcmFnZV9rZXlzLmFkZCgoYWRkcmVzcywga2V5KSkKCiAgICBtZXNzYWdlID0gcHJlcGFyZV9tZXNzYWdlKAogICAgICAgIHNlbmRlciwKICAgICAgICB0eC50bywKICAgICAgICB0eC52YWx1ZSwKICAgICAgICB0eC5kYXRhLAogICAgICAgIGdhcywKICAgICAgICBlbnYsCiAgICAgICAgcHJlYWNjZXNzZWRfYWRkcmVzc2VzPWZyb3plbnNldChwcmVhY2Nlc3NlZF9hZGRyZXNzZXMpLAogICAgICAgIHByZWFjY2Vzc2VkX3N0b3JhZ2Vfa2V5cz1mcm96ZW5zZXQocHJlYWNjZXNzZWRfc3RvcmFnZV9rZXlzKSwKICAgICkKCiAgICBvdXRwdXQgPSBwcm9jZXNzX21lc3NhZ2VfY2FsbChtZXNzYWdlLCBlbnYpCgogICAgZ2FzX3VzZWQgPSB0eC5nYXMgLSBvdXRwdXQuZ2FzX2xlZnQKICAgIGdhc19yZWZ1bmQgPSBtaW4oZ2FzX3VzZWQgLy8gNSwgb3V0cHV0LnJlZnVuZF9jb3VudGVyKQogICAgZ2FzX3JlZnVuZF9hbW91bnQgPSAob3V0cHV0Lmdhc19sZWZ0ICsgZ2FzX3JlZnVuZCkgKiBlbnYuZ2FzX3ByaWNlCgogICAgIyBGb3Igbm9uLTE1NTkgdHJhbnNhY3Rpb25zIGVudi5nYXNfcHJpY2UgPT0gdHguZ2FzX3ByaWNlCiAgICBwcmlvcml0eV9mZWVfcGVyX2dhcyA9IGVudi5nYXNfcHJpY2UgLSBlbnYuYmFzZV9mZWVfcGVyX2dhcwogICAgdHJhbnNhY3Rpb25fZmVlID0gKAogICAgICAgIHR4LmdhcyAtIG91dHB1dC5nYXNfbGVmdCAtIGdhc19yZWZ1bmQKICAgICkgKiBwcmlvcml0eV9mZWVfcGVyX2dhcwoKICAgIHRvdGFsX2dhc191c2VkID0gZ2FzX3VzZWQgLSBnYXNfcmVmdW5kCgogICAgIyByZWZ1bmQgZ2FzCiAgICBzZW5kZXJfYmFsYW5jZV9hZnRlcl9yZWZ1bmQgPSAoCiAgICAgICAgZ2V0X2FjY291bnQoZW52LnN0YXRlLCBzZW5kZXIpLmJhbGFuY2UgKyBnYXNfcmVmdW5kX2Ftb3VudAogICAgKQogICAgc2V0X2FjY291bnRfYmFsYW5jZShlbnYuc3RhdGUsIHNlbmRlciwgc2VuZGVyX2JhbGFuY2VfYWZ0ZXJfcmVmdW5kKQoKICAgICMgdHJhbnNmZXIgbWluZXIgZmVlcwogICAgY29pbmJhc2VfYmFsYW5jZV9hZnRlcl9taW5pbmdfZmVlID0gKAogICAgICAgIGdldF9hY2NvdW50KGVudi5zdGF0ZSwgZW52LmNvaW5iYXNlKS5iYWxhbmNlICsgdHJhbnNhY3Rpb25fZmVlCiAgICApCiAgICBpZiBjb2luYmFzZV9iYWxhbmNlX2FmdGVyX21pbmluZ19mZWUgIT0gMDoKICAgICAgICBzZXRfYWNjb3VudF9iYWxhbmNlKAogICAgICAgICAgICBlbnYuc3RhdGUsIGVudi5jb2luYmFzZSwgY29pbmJhc2VfYmFsYW5jZV9hZnRlcl9taW5pbmdfZmVlCiAgICAgICAgKQogICAgZWxpZiBhY2NvdW50X2V4aXN0c19hbmRfaXNfZW1wdHkoZW52LnN0YXRlLCBlbnYuY29pbmJhc2UpOgogICAgICAgIGRlc3Ryb3lfYWNjb3VudChlbnYuc3RhdGUsIGVudi5jb2luYmFzZSkKCiAgICBmb3IgYWRkcmVzcyBpbiBvdXRwdXQuYWNjb3VudHNfdG9fZGVsZXRlOgogICAgICAgIGRlc3Ryb3lfYWNjb3VudChlbnYuc3RhdGUsIGFkZHJlc3MpCgogICAgZm9yIGFkZHJlc3MgaW4gb3V0cHV0LnRvdWNoZWRfYWNjb3VudHM6CiAgICAgICAgaWYgYWNjb3VudF9leGlzdHNfYW5kX2lzX2VtcHR5KGVudi5zdGF0ZSwgYWRkcmVzcyk6CiAgICAgICAgICAgIGRlc3Ryb3lfYWNjb3VudChlbnYuc3RhdGUsIGFkZHJlc3MpCgogICAgcmV0dXJuIHRvdGFsX2dhc191c2VkLCBvdXRwdXQubG9ncywgb3V0cHV0Lmhhc19lcnJlZAqUaAddlGg/WCULAABkZWYgcHJvY2Vzc190cmFuc2FjdGlvbigKICAgIGVudjogdm0uRW52aXJvbm1lbnQsIHR4OiBUcmFuc2FjdGlvbgopIC0+IFR1cGxlW1UyNTYsIFR1cGxlW0xvZywgLi4uXSwgYm9vbF06CiAgICBlbnN1cmUodmFsaWRhdGVfdHJhbnNhY3Rpb24odHgpLCBJbnZhbGlkQmxvY2spCgogICAgc2VuZGVyID0gZW52Lm9yaWdpbgogICAgc2VuZGVyX2FjY291bnQgPSBnZXRfYWNjb3VudChlbnYuc3RhdGUsIHNlbmRlcikKCiAgICBpZiBpc2luc3RhbmNlKHR4LCBGZWVNYXJrZXRUcmFuc2FjdGlvbik6CiAgICAgICAgZ2FzX2ZlZSA9IHR4LmdhcyAqIHR4Lm1heF9mZWVfcGVyX2dhcwogICAgZWxzZToKICAgICAgICBnYXNfZmVlID0gdHguZ2FzICogdHguZ2FzX3ByaWNlCgogICAgZW5zdXJlKHNlbmRlcl9hY2NvdW50Lm5vbmNlID09IHR4Lm5vbmNlLCBJbnZhbGlkQmxvY2spCiAgICBlbnN1cmUoc2VuZGVyX2FjY291bnQuYmFsYW5jZSA+PSBnYXNfZmVlICsgdHgudmFsdWUsIEludmFsaWRCbG9jaykKICAgIGVuc3VyZShzZW5kZXJfYWNjb3VudC5jb2RlID09IGJ5dGVhcnJheSgpLCBJbnZhbGlkQmxvY2spCgogICAgZWZmZWN0aXZlX2dhc19mZWUgPSB0eC5nYXMgKiBlbnYuZ2FzX3ByaWNlCgogICAgZ2FzID0gdHguZ2FzIC0gY2FsY3VsYXRlX2ludHJpbnNpY19jb3N0KHR4KQogICAgaW5jcmVtZW50X25vbmNlKGVudi5zdGF0ZSwgc2VuZGVyKQoKICAgIHNlbmRlcl9iYWxhbmNlX2FmdGVyX2dhc19mZWUgPSBzZW5kZXJfYWNjb3VudC5iYWxhbmNlIC0gZWZmZWN0aXZlX2dhc19mZWUKICAgIHNldF9hY2NvdW50X2JhbGFuY2UoZW52LnN0YXRlLCBzZW5kZXIsIHNlbmRlcl9iYWxhbmNlX2FmdGVyX2dhc19mZWUpCgogICAgcHJlYWNjZXNzZWRfYWRkcmVzc2VzID0gc2V0KCkKICAgIHByZWFjY2Vzc2VkX3N0b3JhZ2Vfa2V5cyA9IHNldCgpCiAgICBpZiBpc2luc3RhbmNlKHR4LCAoQWNjZXNzTGlzdFRyYW5zYWN0aW9uLCBGZWVNYXJrZXRUcmFuc2FjdGlvbikpOgogICAgICAgIGZvciAoYWRkcmVzcywga2V5cykgaW4gdHguYWNjZXNzX2xpc3Q6CiAgICAgICAgICAgIHByZWFjY2Vzc2VkX2FkZHJlc3Nlcy5hZGQoYWRkcmVzcykKICAgICAgICAgICAgZm9yIGtleSBpbiBrZXlzOgogICAgICAgICAgICAgICAgcHJlYWNjZXNzZWRfc3RvcmFnZV9rZXlzLmFkZCgoYWRkcmVzcywga2V5KSkKCiAgICBtZXNzYWdlID0gcHJlcGFyZV9tZXNzYWdlKAogICAgICAgIHNlbmRlciwKICAgICAgICB0eC50bywKICAgICAgICB0eC52YWx1ZSwKICAgICAgICB0eC5kYXRhLAogICAgICAgIGdhcywKICAgICAgICBlbnYsCiAgICAgICAgcHJlYWNjZXNzZWRfYWRkcmVzc2VzPWZyb3plbnNldChwcmVhY2Nlc3NlZF9hZGRyZXNzZXMpLAogICAgICAgIHByZWFjY2Vzc2VkX3N0b3JhZ2Vfa2V5cz1mcm96ZW5zZXQocHJlYWNjZXNzZWRfc3RvcmFnZV9rZXlzKSwKICAgICkKCiAgICBvdXRwdXQgPSBwcm9jZXNzX21lc3NhZ2VfY2FsbChtZXNzYWdlLCBlbnYpCgogICAgZ2FzX3VzZWQgPSB0eC5nYXMgLSBvdXRwdXQuZ2FzX2xlZnQKICAgIGdhc19yZWZ1bmQgPSBtaW4oZ2FzX3VzZWQgLy8gNSwgb3V0cHV0LnJlZnVuZF9jb3VudGVyKQogICAgZ2FzX3JlZnVuZF9hbW91bnQgPSAob3V0cHV0Lmdhc19sZWZ0ICsgZ2FzX3JlZnVuZCkgKiBlbnYuZ2FzX3ByaWNlCgogICAgIyBGb3Igbm9uLTE1NTkgdHJhbnNhY3Rpb25zIGVudi5nYXNfcHJpY2UgPT0gdHguZ2FzX3ByaWNlCiAgICBwcmlvcml0eV9mZWVfcGVyX2dhcyA9IGVudi5nYXNfcHJpY2UgLSBlbnYuYmFzZV9mZWVfcGVyX2dhcwogICAgdHJhbnNhY3Rpb25fZmVlID0gKAogICAgICAgIHR4LmdhcyAtIG91dHB1dC5nYXNfbGVmdCAtIGdhc19yZWZ1bmQKICAgICkgKiBwcmlvcml0eV9mZWVfcGVyX2dhcwoKICAgIHRvdGFsX2dhc191c2VkID0gZ2FzX3VzZWQgLSBnYXNfcmVmdW5kCgogICAgIyByZWZ1bmQgZ2FzCiAgICBzZW5kZXJfYmFsYW5jZV9hZnRlcl9yZWZ1bmQgPSAoCiAgICAgICAgZ2V0X2FjY291bnQoZW52LnN0YXRlLCBzZW5kZXIpLmJhbGFuY2UgKyBnYXNfcmVmdW5kX2Ftb3VudAogICAgKQogICAgc2V0X2FjY291bnRfYmFsYW5jZShlbnYuc3RhdGUsIHNlbmRlciwgc2VuZGVyX2JhbGFuY2VfYWZ0ZXJfcmVmdW5kKQoKICAgICMgdHJhbnNmZXIgbWluZXIgZmVlcwogICAgY29pbmJhc2VfYmFsYW5jZV9hZnRlcl9taW5pbmdfZmVlID0gKAogICAgICAgIGdldF9hY2NvdW50KGVudi5zdGF0ZSwgZW52LmNvaW5iYXNlKS5iYWxhbmNlICsgdHJhbnNhY3Rpb25fZmVlCiAgICApCiAgICBpZiBjb2luYmFzZV9iYWxhbmNlX2FmdGVyX21pbmluZ19mZWUgIT0gMDoKICAgICAgICBzZXRfYWNjb3VudF9iYWxhbmNlKAogICAgICAgICAgICBlbnYuc3RhdGUsIGVudi5jb2luYmFzZSwgY29pbmJhc2VfYmFsYW5jZV9hZnRlcl9taW5pbmdfZmVlCiAgICAgICAgKQogICAgZWxpZiBhY2NvdW50X2V4aXN0c19hbmRfaXNfZW1wdHkoZW52LnN0YXRlLCBlbnYuY29pbmJhc2UpOgogICAgICAgIGRlc3Ryb3lfYWNjb3VudChlbnYuc3RhdGUsIGVudi5jb2luYmFzZSkKCiAgICBmb3IgYWRkcmVzcyBpbiBvdXRwdXQuYWNjb3VudHNf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b25zLCB0aGVyZWZvcmUgaWYgdGhlcmUgaXMgaW5zdWZmaWNpZW50IGdhcyB0aGVuIGl0IHdvdWxkIG5vdApiZSBwb3NzaWJsZSB0byBleGVjdXRlIGEgdHJhbnNhY3Rpb24gYW5kIGl0IHdpbGwgYmUgZGVjbGFyZWQgaW52YWxpZC6UaAddlGg/jM5UaGUgZ2FzIGluIGEgdHJhbnNhY3Rpb24gZ2V0cyB1c2VkIHRvIHBheSBmb3IgdGhlIGludHJpbnNpYyBjb3N0IG9mCm9wZXJhdGlvbnMsIHRoZXJlZm9yZSBpZiB0aGVyZSBpcyBpbnN1ZmZpY2llbnQgZ2FzIHRoZW4gaXQgd291bGQgbm90CmJlIHBvc3NpYmxlIHRvIGV4ZWN1dGUgYSB0cmFuc2FjdGlvbiBhbmQgaXQgd2lsbCBiZSBkZWNsYXJlZCBpbnZhbGlkLpSFlIGUfZQoaAVoBmggarwqAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHWgeaB9NLwJoIGqrKgAAdWJoaSmBlH2UKGgFWKEBAABBZGRpdGlvbmFsbHksIHRoZSBub25jZSBvZiBhIHRyYW5zYWN0aW9uIG11c3Qgbm90IGVxdWFsIG9yIGV4Y2VlZCB0aGUKbGltaXQgZGVmaW5lZCBpbiBgRUlQLTI2ODEgPGh0dHBzOi8vZWlwcy5ldGhlcmV1bS5vcmcvRUlQUy9laXAtMjY4MT5gXy4KSW4gcHJhY3RpY2UsIGRlZmluaW5nIHRoZSBsaW1pdCBhcyBgYDIqKjY0LTFgYCBoYXMgbm8gaW1wYWN0IGJlY2F1c2UKc2VuZGluZyBgYDIqKjY0LTFgYCB0cmFuc2FjdGlvbnMgaXMgaW1wcm9iYWJsZS4gSXQncyBub3Qgc3RyaWN0bHkKaW1wb3NzaWJsZSB0aG91Z2gsIGBgMioqNjQtMWBgIHRyYW5zYWN0aW9ucyBpcyB0aGUgZW50aXJlIGNhcGFjaXR5IG9mIHRoZQpFdGhlcmV1bSBibG9ja2NoYWluIGF0IDIwMjIgZ2FzIGxpbWl0cyBmb3IgYSBsaXR0bGUgb3ZlciAyMiB5ZWFycy6UaAddlChoP4xXQWRkaXRpb25hbGx5LCB0aGUgbm9uY2Ugb2YgYSB0cmFuc2FjdGlvbiBtdXN0IG5vdCBlcXVhbCBvciBleGNlZWQgdGhlCmxpbWl0IGRlZmluZWQgaW4glIWUgZR9lChoBWgGaCBqyioAAGghaANoHWhEaB9LAHViaG4pgZR9lChoBYw1YEVJUC0yNjgxIDxodHRwczovL2VpcHMuZXRoZXJldW0ub3JnL0VJUFMvZWlwLTI2ODE+YF+UaAddlGg/jAhFSVAtMjY4MZSFlIGUfZQoaAVoBmggatIqAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjARuYW1llIwIRUlQLTI2ODGUjAZyZWZ1cmmUjCdodHRwczovL2VpcHMuZXRoZXJldW0ub3JnL0VJUFMvZWlwLTI2ODGUdWgcaG1oHU5oH05oIGrKKgAAdWJoCimBlH2UKGgFjCogPGh0dHBzOi8vZWlwcy5ldGhlcmV1bS5vcmcvRUlQUy9laXAtMjY4MT6UaAddlGgOfZQoaBBdlIwIZWlwLTI2ODGUYWgTXZRoFV2UjAhlaXAtMjY4MZRhaBddlGgZXZSMBnJlZnVyaZRq4yoAAHVoHGgJaB1OaB9OaCBqyioAAHViaD+MJS4KSW4gcHJhY3RpY2UsIGRlZmluaW5nIHRoZSBsaW1pdCBhcyCUhZSBlH2UKGgFaAZoIGrKKgAAaCFoA2gdaERoH0sAdWJqFgYAACmBlH2UKGgFjAtgYDIqKjY0LTFgYJRoB12UaD+MBzIqKjY0LTGUhZSBlH2UKGgFaAZoIGr1KgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGoVBgAAaB1OaB9OaCBqyioAAHViaD+MHyBoYXMgbm8gaW1wYWN0IGJlY2F1c2UKc2VuZGluZyCUhZSBlH2UKGgFaAZoIGrKKgAAaCFoA2gdaERoH0sAdWJqFgYAACmBlH2UKGgFjAtgYDIqKjY0LTFgYJRoB12UaD+MBzIqKjY0LTGUhZSBlH2UKGgFaAZoIGoHKwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGoVBgAAaB1OaB9OaCBqyioAAHViaD+MRCB0cmFuc2FjdGlvbnMgaXMgaW1wcm9iYWJsZS4gSXTigJlzIG5vdCBzdHJpY3RseQppbXBvc3NpYmxlIHRob3VnaCwglIWUgZR9lChoBWgGaCBqyioAAGghaANoHWhEaB9LAHViahYGAAApgZR9lChoBYwLYGAyKio2NC0xYGCUaAddlGg/jAcyKio2NC0xlIWUgZR9lChoBWgGaCBqGSsAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqFQYAAGgdTmgfTmggasoqAAB1Ymg/jG4gdHJhbnNhY3Rpb25zIGlzIHRoZSBlbnRpcmUgY2FwYWNpdHkgb2YgdGhlCkV0aGVyZXVtIGJsb2NrY2hhaW4gYXQgMjAyMiBnYXMgbGltaXRzIGZvciBhIGxpdHRsZSBvdmVyIDIyIHllYXJzLpSFlIGUfZQoaAVoBmggasoqAABoIWgDaB1oRGgfSwB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHWgeaB9NMwJoIGqrKgAAdWJq4hcAACmBlH2UKGgFaAZoB12UKGrnFwAAKYGUfZQoaAVoBmgHXZQoauwXAAApgZR9lChoBYwKUGFyYW1ldGVyc5RoB12UaD+MClBhcmFtZXRlcnOUhZSBlH2UKGgFaAZoIGo3KwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGrrFwAAaB1oHmgfSwBoIGo0KwAAdWJq/BcAACmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYwedHggLS0gVHJhbnNhY3Rpb24gdG8gdmFsaWRhdGUulGgHXZQoagUYAAApgZR9lChoBYwCdHiUaAddlGg/jAJ0eJSFlIGUfZQoaAVoBmggakwrAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAtyZWZzcGVjaWZpY5SIjAlweTptb2R1bGWUajwRAACMCHB5OmNsYXNzlE51aBxqBBgAAGgdTmgfTmggakgrAAB1Ymg/jB0g4oCTIFRyYW5zYWN0aW9uIHRvIHZhbGlkYXRlLpSFlIGUfZQoaAVoBmggakgrAABoIWgDaB1oRGgfSwB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHU5oH05oIGpFKwAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGr7FwAAaB1OaB9OaCBqNCsAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq5hcAAGgdTmgfTmggajErAAB1YmrnFwAAKYGUfZQoaAVoBmgHXZQoauwXAAApgZR9lChoBYwHUmV0dXJuc5RoB12UaD+MB1JldHVybnOUhZSBlH2UKGgFaAZoIGp2KwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGrrFwAAaB1oHmgfSwBoIGpzKwAAdWJq/BcAACmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYxIdmVyaWZpZWQgLS0gVHJ1ZSBpZiB0aGUgdHJhbnNhY3Rpb24gY2FuIGJlIGV4ZWN1dGVkLCBvciBGYWxzZSBvdGhlcndpc2UulGgHXZQoakYYAAApgZR9lChoBYwMKip2ZXJpZmllZCoqlGgHXZRoP4wIdmVyaWZpZWSUhZSBlH2UKGgFaAZoIGqLKwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGpFGAAAaB1OaB9OaCBqhysAAHViaD+MQSDigJMgVHJ1ZSBpZiB0aGUgdHJhbnNhY3Rpb24gY2FuIGJlIGV4ZWN1dGVkLCBvciBGYWxzZSBvdGhlcndpc2UulIWUgZR9lChoBWgGaCBqhysAAGghaANoHWhEaB9LAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggaoQrAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcavsXAABoHU5oH05oIGpzKwAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGrmFwAAaB1OaB9OaCBqMSsAAHViaucXAAApgZR9lChoBWgGaAddlChq7BcAACmBlH2UKGgFjAtSZXR1cm4gdHlwZZRoB12UaD+MC1JldHVybiB0eXBllIWUgZR9lChoBWgGaCBqsisAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq6xcAAGgdaB5oH0sAaCBqrysAAHViavwXAAApgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMBGJvb2yUaAddlGr/BgAAKYGUfZQoaAWMBmBib29sYJRoB12UaD+MBGJvb2yUhZSBlH2UKGgFaAZoIGrHKwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGr+BgAAaB1OaB9OaCBqwysAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggasArAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcavsXAABoHU5oH05oIGqvKwAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGrmFwAAaB1OaB9OaCBqMSsAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq4RcAAGgdTmgfTmggaqsqAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaj8RAABoHWgeaB9OaCBqZyoAAHViZWgOfZQoaBBdlGgTXZQoaqQqAACMCGZ1bmN0aW9ulGVoFV2UaBddlGgZXZSMBmRvbWFpbpRqpCoAAIwHb2JqdHlwZZRq9isAAIwIZGVzY3R5cGWUavYrAACMB25vaW5kZXiUiXVoHGoREQAAaB1OaB9OaCBqSyoAAHVialYRAAApgZR9lChoBYx+ZGVmIHZhbGlkYXRlX3RyYW5zYWN0aW9uKHR4OiBUcmFuc2FjdGlvbikgLT4gYm9vbDoKICAgIHJldHVybiBjYWxjdWxhdGVfaW50cmluc2ljX2Nvc3QodHgpIDw9IHR4LmdhcyBhbmQgdHgubm9uY2UgPCAyKio2NCAtIDEKlGgHXZRoP4x+ZGVmIHZhbGlkYXRlX3RyYW5zYWN0aW9uKHR4OiBUcmFuc2FjdGlvbikgLT4gYm9vbDoKICAgIHJldHVybiBjYWxjdWxhdGVfaW50cmluc2ljX2Nvc3QodHgpIDw9IHR4LmdhcyBhbmQgdHgubm9uY2UgPCAyKio2NCAtIDEKlIWUgZR9lChoBWgGaCBq/isAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMBnNvdXJjZZSMTS9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3Mvc3JjL2V0aGVyZXVtL2xvbmRvbi9zcGVjLnB5lIwJeG1sOnNwYWNllGqgBQAAjAVmb3JjZZSJjAhsYW5ndWFnZZSMBnB5dGhvbpSMDmhpZ2hsaWdodF9hcmdzlH2Uam0RAABLAXOMB2xpbmVub3OUiXVoHGpVEQAAaB1oHmgfTUICaCBqSyoAAHViZWgOfZQoaBBdlGoaBAAAYWgTXZRoFV2UjBR2YWxpZGF0ZV90cmFuc2FjdGlvbpRhaBddlGgZXZR1aBxoM2gdaB5oH00nAmggauAQAABoIWgDdWJoNCmBlH2UKGgFaAZoB12UKGg5KYGUfZQoaAWMGGNhbGN1bGF0ZV9pbnRyaW5zaWNfY29zdJRoB12UaD+MGGNhbGN1bGF0ZV9pbnRyaW5zaWNfY29zdJSFlIGUfZQoaAVoBmggah8sAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaDhoHWgeaB9NRwJoIGocLAAAdWJoJCmBlH2UKGgFaAZoB12UaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwHZW50cmllc5RdlHVoHGgjaB1OaB9OaCBqHCwAAHViahIRAAApgZR9lChoBWgGaAddlChqFxEAACmBlH2UKGgFjBxjYWxjdWxhdGVfaW50cmluc2ljX2Nvc3QodHgplGgHXZQoah0RAAApgZR9lChoBYwYY2FsY3VsYXRlX2ludHJpbnNpY19jb3N0lGgHXZRoP4wYY2FsY3VsYXRlX2ludHJpbnNpY19jb3N0lIWUgZR9lChoBWgGaCBqPywAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZQoaigRAABqKREAAGoqEQAAaisRAABlaBVdlGgXXZRoGV2UjAl4bWw6c3BhY2WUaqAFAAB1aBxqHBEAAGgdaB5oH05oIGo7LAAAdWJqXhcAACmBlH2UKGgFjAJ0eJRoB12UamQXAAApgZR9lChoBYwCdHiUaAddlGrhFAAAKYGUfZQoaAVoBmgHXZRoP4wCdHiUhZSBlH2UKGgFaAZoIGpWLAAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGpzFwAAYWgVXZRoF12UaBldlHVoHGrgFAAAaB1OaB9OaCBqUiwAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCXhtbDpzcGFjZZRqoAUAAHVoHGpjFwAAaB1OaB9OaCBqTiwAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCXhtbDpzcGFjZZRqoAUAAHVoHGpdFwAAaB1oHmgfTmggajssAAB1YmVoDn2UKGgQXZSMLWV0aGVyZXVtLmxvbmRvbi5zcGVjLmNhbGN1bGF0ZV9pbnRyaW5zaWNfY29zdJRhaBNdlChqMxEAAGo0EQAAjAJweZRqNhEAAGo3EQAAZWgVXZRoF12UaBldlIwGbW9kdWxllGo8EQAAjAVjbGFzc5RoBowIZnVsbG5hbWWUakEsAAB1aBxqFhEAAGgdaB5oH01KAmggajgsAAB1YmpAEQAAKYGUfZQoaAVoBmgHXZQoaGkpgZR9lChoBYw/Q2FsY3VsYXRlcyB0aGUgZ2FzIHRoYXQgaXMgY2hhcmdlZCBiZWZvcmUgZXhlY3V0aW9uIGlzIHN0YXJ0ZWQulGgHXZRoP4w/Q2FsY3VsYXRlcyB0aGUgZ2FzIHRoYXQgaXMgY2hhcmdlZCBiZWZvcmUgZXhlY3V0aW9uIGlzIHN0YXJ0ZWQulIWUgZR9lChoBWgGaCBqfywAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdaB5oH01NAmgganwsAAB1YmhpKYGUfZQoaAVYEQIAAFRoZSBpbnRyaW5zaWMgY29zdCBvZiB0aGUgdHJhbnNhY3Rpb24gaXMgY2hhcmdlZCBiZWZvcmUgZXhlY3V0aW9uIGhhcwpiZWd1bi4gRnVuY3Rpb25zL29wZXJhdGlvbnMgaW4gdGhlIEVWTSBjb3N0IG1vbmV5IHRvIGV4ZWN1dGUgc28gdGhpcwppbnRyaW5zaWMgY29zdCBpcyBmb3IgdGhlIG9wZXJhdGlvbnMgdGhhdCBuZWVkIHRvIGJlIHBhaWQgZm9yIGFzIHBhcnQgb2YKdGhlIHRyYW5zYWN0aW9uLiBEYXRhIHRyYW5zZmVyLCBmb3IgZXhhbXBsZSwgaXMgcGFydCBvZiB0aGlzIGludHJpbnNpYwpjb3N0LiBJdCBjb3N0cyBldGhlciB0byBzZW5kIGRhdGEgb3ZlciB0aGUgd2lyZSBhbmQgdGhhdCBldGhlciBpcwphY2NvdW50ZWQgZm9yIGluIHRoZSBpbnRyaW5zaWMgY29zdCBjYWxjdWxhdGVkIGluIHRoaXMgZnVuY3Rpb24uIFRoaXMKaW50cmluc2ljIGNvc3QgbXVzdCBiZSBjYWxjdWxhdGVkIGFuZCBwYWlkIGZvciBiZWZvcmUgZXhlY3V0aW9uIGluIG9yZGVyCmZvciBhbGwgb3BlcmF0aW9ucyB0byBiZSBpbXBsZW1lbnRlZC6UaAddlGg/WBECAABUaGUgaW50cmluc2ljIGNvc3Qgb2YgdGhlIHRyYW5zYWN0aW9uIGlzIGNoYXJnZWQgYmVmb3JlIGV4ZWN1dGlvbiBoYXMKYmVndW4uIEZ1bmN0aW9ucy9vcGVyYXRpb25zIGluIHRoZSBFVk0gY29zdCBtb25leSB0byBleGVjdXRlIHNvIHRoaXMKaW50cmluc2ljIGNvc3QgaXMgZm9yIHRoZSBvcGVyYXRpb25zIHRoYXQgbmVlZCB0byBiZSBwYWlkIGZvciBhcyBwYXJ0IG9mCnRoZSB0cmFuc2FjdGlvbi4gRGF0YSB0cmFuc2ZlciwgZm9yIGV4YW1wbGUsIGlzIHBhcnQgb2YgdGhpcyBpbnRyaW5zaWMKY29zdC4gSXQgY29zdHMgZXRoZXIgdG8gc2VuZCBkYXRhIG92ZXIgdGhlIHdpcmUgYW5kIHRoYXQgZXRoZXIgaXMKYWNjb3VudGVkIGZvciBpbiB0aGUgaW50cmluc2ljIGNvc3QgY2FsY3VsYXRlZCBpbiB0aGlzIGZ1bmN0aW9uLiBUaGlzCmludHJpbnNpYyBjb3N0IG11c3QgYmUgY2FsY3VsYXRlZCBhbmQgcGFpZCBmb3IgYmVmb3JlIGV4ZWN1dGlvbiBpbiBvcmRlcgpmb3IgYWxsIG9wZXJhdGlvbnMgdG8gYmUgaW1wbGVtZW50ZWQulIWUgZR9lChoBWgGaCBqjSwAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdaB5oH01PAmgganwsAAB1YmriFwAAKYGUfZQoaAVoBmgHXZQoaucXAAApgZR9lChoBWgGaAddlChq7BcAACmBlH2UKGgFjApQYXJhbWV0ZXJzlGgHXZRoP4wKUGFyYW1ldGVyc5SFlIGUfZQoaAVoBmggaqEsAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVd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EQAAaB1OaB9OaCBqHCwAAHVialYRAAApgZR9lChoBViyAgAAZGVmIGNhbGN1bGF0ZV9pbnRyaW5zaWNfY29zdCh0eDogVHJhbnNhY3Rpb24pIC0+IFVpbnQ6CiAgICBkYXRhX2Nvc3QgPSAwCgogICAgZm9yIGJ5dGUgaW4gdHguZGF0YToKICAgICAgICBpZiBieXRlID09IDA6CiAgICAgICAgICAgIGRhdGFfY29zdCArPSBUWF9EQVRBX0NPU1RfUEVSX1pFUk8KICAgICAgICBlbHNlOgogICAgICAgICAgICBkYXRhX2Nvc3QgKz0gVFhfREFUQV9DT1NUX1BFUl9OT05fWkVSTwoKICAgIGlmIHR4LnRvID09IEJ5dGVzMChiIiIpOgogICAgICAgIGNyZWF0ZV9jb3N0ID0gVFhfQ1JFQVRFX0NPU1QKICAgIGVsc2U6CiAgICAgICAgY3JlYXRlX2Nvc3QgPSAwCgogICAgYWNjZXNzX2xpc3RfY29zdCA9IDAKICAgIGlmIGlzaW5zdGFuY2UodHgsIChBY2Nlc3NMaXN0VHJhbnNhY3Rpb24sIEZlZU1hcmtldFRyYW5zYWN0aW9uKSk6CiAgICAgICAgZm9yIChfYWRkcmVzcywga2V5cykgaW4gdHguYWNjZXNzX2xpc3Q6CiAgICAgICAgICAgIGFjY2Vzc19saXN0X2Nvc3QgKz0gVFhfQUNDRVNTX0xJU1RfQUREUkVTU19DT1NUCiAgICAgICAgICAgIGFjY2Vzc19saXN0X2Nvc3QgKz0gbGVuKGtleXMpICogVFhfQUNDRVNTX0xJU1RfU1RPUkFHRV9LRVlfQ09TVAoKICAgIHJldHVybiBVaW50KFRYX0JBU0VfQ09TVCArIGRhdGFfY29zdCArIGNyZWF0ZV9jb3N0ICsgYWNjZXNzX2xpc3RfY29zdCkKlGgHXZRoP1iyAgAAZGVmIGNhbGN1bGF0ZV9pbnRyaW5zaWNfY29zdCh0eDogVHJhbnNhY3Rpb24pIC0+IFVpbnQ6CiAgICBkYXRhX2Nvc3QgPSAwCgogICAgZm9yIGJ5dGUgaW4gdHguZGF0YToKICAgICAgICBpZiBieXRlID09IDA6CiAgICAgICAgICAgIGRhdGFfY29zdCArPSBUWF9EQVRBX0NPU1RfUEVSX1pFUk8KICAgICAgICBlbHNlOgogICAgICAgICAgICBkYXRhX2Nvc3QgKz0gVFhfREFUQV9DT1NUX1BFUl9OT05fWkVSTwoKICAgIGlmIHR4LnRvID09IEJ5dGVzMChiIiIpOgogICAgICAgIGNyZWF0ZV9jb3N0ID0gVFhfQ1JFQVRFX0NPU1QKICAgIGVsc2U6CiAgICAgICAgY3JlYXRlX2Nvc3QgPSAwCgogICAgYWNjZXNzX2xpc3RfY29zdCA9IDAKICAgIGlmIGlzaW5zdGFuY2UodHgsIChBY2Nlc3NMaXN0VHJhbnNhY3Rpb24sIEZlZU1hcmtldFRyYW5zYWN0aW9uKSk6CiAgICAgICAgZm9yIChfYWRkcmVzcywga2V5cykgaW4gdHguYWNjZXNzX2xpc3Q6CiAgICAgICAgICAgIGFjY2Vzc19saXN0X2Nvc3QgKz0gVFhfQUNDRVNTX0xJU1RfQUREUkVTU19DT1NUCiAgICAgICAgICAgIGFjY2Vzc19saXN0X2Nvc3QgKz0gbGVuKGtleXMpICogVFhfQUNDRVNTX0xJU1RfU1RPUkFHRV9LRVlfQ09TVAoKICAgIHJldHVybiBVaW50KFRYX0JBU0VfQ09TVCArIGRhdGFfY29zdCArIGNyZWF0ZV9jb3N0ICsgYWNjZXNzX2xpc3RfY29zdCkKlIWUgZR9lChoBWgGaCBqaC0AAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMBnNvdXJjZZSMTS9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3Mvc3JjL2V0aGVyZXVtL2xvbmRvbi9zcGVjLnB5lIwJeG1sOnNwYWNllGqgBQAAjAVmb3JjZZSJjAhsYW5ndWFnZZSMBnB5dGhvbpSMDmhpZ2hsaWdodF9hcmdzlH2Uam0RAABLAXOMB2xpbmVub3OUiXVoHGpVEQAAaB1oHmgfTWACaCBqHCwAAHViZWgOfZQoaBBdlGo8BAAAYWgTXZRoFV2UjBhjYWxjdWxhdGVfaW50cmluc2ljX2Nvc3SUYWgXXZRoGV2UdWgcaDNoHWgeaB9NRwJoIGrgEAAAaCFoA3ViaDQpgZR9lChoBWgGaAddlChoOSmBlH2UKGgFjA5yZWNvdmVyX3NlbmRlcpRoB12UaD+MDnJlY292ZXJfc2VuZGVylIWUgZR9lChoBWgGaCBqiS0AAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoOGgdaB5oH01lAmggaoYtAAB1YmgkKYGUfZQoaAVoBmgHXZRoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAdlbnRyaWVzlF2UdWgcaCNoHU5oH05oIGqGLQAAdWJqEhEAACmBlH2UKGgFaAZoB12UKGoXEQAAKYGUfZQoaAWMHHJlY292ZXJfc2VuZGVyKGNoYWluX2lkLCB0eCmUaAddlChqHREAACmBlH2UKGgFjA5yZWNvdmVyX3NlbmRlcpRoB12UaD+MDnJlY292ZXJfc2VuZGVylIWUgZR9lChoBWgGaCBqqS0AAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZQoaigRAABqKREAAGoqEQAAaisRAABlaBVdlGgXXZRoGV2UjAl4bWw6c3BhY2WUaqAFAAB1aBxqHBEAAGgdaB5oH05oIGqlLQAAdWJqXhcAACmBlH2UKGgFjAxjaGFpbl9pZCwgdHiUaAddlChqZBcAACmBlH2UKGgFjAhjaGFpbl9pZJRoB12UauEUAAApgZR9lChoBWgGaAddlGg/jAhjaGFpbl9pZJSFlIGUfZQoaAVoBmggasAtAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UanMXAABhaBVdlGgXXZRoGV2UdWgcauAUAABoHU5oH05oIGq8LQAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwJeG1sOnNwYWNllGqgBQAAdWgcamMXAABoHU5oH05oIGq4LQAAdWJqZBcAACmBlH2UKGgFjAJ0eJRoB12UauEUAAApgZR9lChoBWgGaAddlGg/jAJ0eJSFlIGUfZQoaAVoBmggatgtAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UanMXAABhaBVdlGgXXZRoGV2UdWgcauAUAABoHU5oH05oIGrULQAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwJeG1sOnNwYWNllGqgBQAAdWgcamMXAABoHU5oH05oIGq4LQAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwJeG1sOnNwYWNllGqgBQAAdWgcal0XAABoHWgeaB9OaCBqpS0AAHViZWgOfZQoaBBdlIwjZXRoZXJldW0ubG9uZG9uLnNwZWMucmVjb3Zlcl9zZW5kZXKUYWgTXZQoajMRAABqNBEAAIwCcHmUajYRAABqNxEAAGVoFV2UaBddlGgZXZSMBm1vZHVsZZRqPBEAAIwFY2xhc3OUaAaMCGZ1bGxuYW1llGqrLQAAdWgcahYRAABoHWgeaB9NaAJoIGqiLQAAdWJqQBEAACmBlH2UKGgFaAZoB12UKGhpKYGUfZQoaAWML0V4dHJhY3RzIHRoZSBzZW5kZXIgYWRkcmVzcyBmcm9tIGEgdHJhbnNhY3Rpb24ulGgHXZRoP4wvRXh0cmFjdHMgdGhlIHNlbmRlciBhZGRyZXNzIGZyb20gYSB0cmFuc2FjdGlvbi6UhZSBlH2UKGgFaAZoIGoBLgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1oHmgfTWsCaCBq/i0AAHViaGkpgZR9lChoBVhnAQAAVGhlIHYsIHIsIGFuZCBzIHZhbHVlcyBhcmUgdGhlIHRocmVlIHBhcnRzIHRoYXQgbWFrZSB1cCB0aGUgc2lnbmF0dXJlCm9mIGEgdHJhbnNhY3Rpb24uIEluIG9yZGVyIHRvIHJlY292ZXIgdGhlIHNlbmRlciBvZiBhIHRyYW5zYWN0aW9uIHRoZSB0d28KY29tcG9uZW50cyBuZWVkZWQgYXJlIHRoZSBzaWduYXR1cmUgKGBgdmBgLCBgYHJgYCwgYW5kIGBgc2BgKSBhbmQgdGhlCnNpZ25pbmcgaGFzaCBvZiB0aGUgdHJhbnNhY3Rpb24uIFRoZSBzZW5kZXIncyBwdWJsaWMga2V5IGNhbiBiZSBvYnRhaW5lZAp3aXRoIHRoZXNlIHR3byB2YWx1ZXMgYW5kIHRoZXJlZm9yZSB0aGUgc2VuZGVyIGFkZHJlc3MgY2FuIGJlIHJldHJpZXZlZC6UaAddlChoP4y1VGhlIHYsIHIsIGFuZCBzIHZhbHVlcyBhcmUgdGhlIHRocmVlIHBhcnRzIHRoYXQgbWFrZSB1cCB0aGUgc2lnbmF0dXJlCm9mIGEgdHJhbnNhY3Rpb24uIEluIG9yZGVyIHRvIHJlY292ZXIgdGhlIHNlbmRlciBvZiBhIHRyYW5zYWN0aW9uIHRoZSB0d28KY29tcG9uZW50cyBuZWVkZWQgYXJlIHRoZSBzaWduYXR1cmUgKJSFlIGUfZQoaAVoBmggag8uAABoIWgDaB1oRGgfSwB1YmoWBgAAKYGUfZQoaAWMBWBgdmBglGgHXZRoP4wBdpSFlIGUfZQoaAVoBmggahcuAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcahUGAABoHU5oH05oIGoPLgAAdWJoP4wCLCCUhZSBlH2UKGgFaAZoIGoPLgAAaCFoA2gdaERoH0sAdWJqFgYAACmBlH2UKGgFjAVgYHJgYJRoB12UaD+MAXKUhZSBlH2UKGgFaAZoIGopLgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGoVBgAAaB1OaB9OaCBqDy4AAHViaD+MBiwgYW5kIJSFlIGUfZQoaAVoBmggag8uAABoIWgDaB1oRGgfSwB1YmoWBgAAKYGUfZQoaAWMBWBgc2BglGgHXZRoP4wBc5SFlIGUfZQoaAVoBmggajsuAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcahUGAABoHU5oH05oIGoPLgAAdWJoP4ydKSBhbmQgdGhlCnNpZ25pbmcgaGFzaCBvZiB0aGUgdHJhbnNhY3Rpb24uIFRoZSBzZW5kZXLigJlzIHB1YmxpYyBrZXkgY2FuIGJlIG9idGFpbmVkCndpdGggdGhlc2UgdHdvIHZhbHVlcyBhbmQgdGhlcmVmb3JlIHRoZSBzZW5kZXIgYWRkcmVzcyBjYW4gYmUgcmV0cmlldmVkLpSFlIGUfZQoaAVoBmggag8uAABoIWgDaB1oRGgfSwB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHWgeaB9NbQJoIGr+LQAAdWJq4hcAACmBlH2UKGgFaAZoB12UKGrnFwAAKYGUfZQoaAVoBmgHXZQoauwXAAApgZR9lChoBYwKUGFyYW1ldGVyc5RoB12UaD+MClBhcmFtZXRlcnOUhZSBlH2UKGgFaAZoIGpZLgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGrrFwAAaB1oHmgfSwBoIGpWLgAAdWJq/BcAACmBlH2UKGgFaAZoB12UaF8pgZR9lChoBWgGaAddlChoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYwedHggLS0gVHJhbnNhY3Rpb24gb2YgaW50ZXJlc3QulGgHXZQoagUYAAApgZR9lChoBYwCdHiUaAddlGg/jAJ0eJSFlIGUfZQoaAVoBmgganQuAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAtyZWZzcGVjaWZpY5SIjAlweTptb2R1bGWUajwRAACMCHB5OmNsYXNzlE51aBxqBBgAAGgdTmgfTmgganAuAAB1Ymg/jB0g4oCTIFRyYW5zYWN0aW9uIG9mIGludGVyZXN0LpSFlIGUfZQoaAVoBmgganAuAABoIWgDaB1oRGgfSwB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHU5oH05oIGptLgAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhjaB1OaB9OaCBqai4AAHViaGQpgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMJmNoYWluX2lkIC0tIElEIG9mIHRoZSBleGVjdXRpbmcgY2hhaW4ulGgHXZQoagUYAAApgZR9lChoBYwIY2hhaW5faWSUaAddlGg/jAhjaGFpbl9pZJSFlIGUfZQoaAVoBmggapwuAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAtyZWZzcGVjaWZpY5SIjAlweTptb2R1bGWUajwRAACMCHB5OmNsYXNzlE51aBxqBBgAAGgdTmgfTmggapguAAB1Ymg/jB8g4oCTIElEIG9mIHRoZSBleGVjdXRpbmcgY2hhaW4ulIWUgZR9lChoBWgGaCBqmC4AAGghaANoHWhEaB9LAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggapUuAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHU5oH05oIGpqLgAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGheaB1OaB9OaCBqZy4AAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq+xcAAGgdTmgfTmggalYuAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcauYXAABoHU5oH05oIGpTLgAAdWJq5xcAACmBlH2UKGgFaAZoB12UKGrsFwAAKYGUfZQoaAWMB1JldHVybnOUaAddlGg/jAdSZXR1cm5zlIWUgZR9lChoBWgGaCBq0i4AAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq6xcAAGgdaB5oH0sAaCBqzy4AAHViavwXAAApgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMQXNlbmRlciAtLSBUaGUgYWRkcmVzcyBvZiB0aGUgYWNjb3VudCB0aGF0IHNpZ25lZCB0aGUgdHJhbnNhY3Rpb24ulGgHXZQoakYYAAApgZR9lChoBYwKKipzZW5kZXIqKpRoB12UaD+MBnNlbmRlcpSFlIGUfZQoaAVoBmggaucuAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcakUYAABoHU5oH05oIGrjLgAAdWJoP4w8IOKAkyBUaGUgYWRkcmVzcyBvZiB0aGUgYWNjb3VudCB0aGF0IHNpZ25lZCB0aGUgdHJhbnNhY3Rpb24ulIWUgZR9lChoBWgGaCBq4y4AAGghaANoHWhEaB9LAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggauAuAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcavsXAABoHU5oH05oIGrPLgAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGrmFwAAaB1OaB9OaCBqUy4AAHViaucXAAApgZR9lChoBWgGaAddlChq7BcAACmBlH2UKGgFjAtSZXR1cm4gdHlwZZRoB12UaD+MC1JldHVybiB0eXBllIWUgZR9lChoBWgGaCBqDi8AAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq6xcAAGgdaB5oH0sAaCBqCy8AAHViavwXAAApgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMGmV0aGVyZXVtLmV0aF90eXBlcy5BZGRyZXNzlGgHXZRq/wYAACmBlH2UKGgFjBxgZXRoZXJldW0uZXRoX3R5cGVzLkFkZHJlc3NglGgHXZRoP4waZXRoZXJldW0uZXRoX3R5cGVzLkFkZHJlc3OUhZSBlH2UKGgFaAZoIGojLwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGr+BgAAaB1OaB9OaCBqHy8AAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggahwvAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcavsXAABoHU5oH05oIGoLLwAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGrmFwAAaB1OaB9OaCBqUy4AAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq4RcAAGgdTmgfTmggav4tAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaj8RAABoHWgeaB9OaCBqoi0AAHViZWgOfZQoaBBdlGgTXZQoavctAACMCGZ1bmN0aW9ulGVoFV2UaBddlGgZXZSMBmRvbWFpbpRq9y0AAIwHb2JqdHlwZZRqUi8AAIwIZGVzY3R5cGWUalIvAACMB25vaW5kZXiUiXVoHGoREQAAaB1OaB9OaCBqhi0AAHVialYRAAApgZR9lChoBViiAwAAZGVmIHJlY292ZXJfc2VuZGVyKGNoYWluX2lkOiBVaW50NjQsIHR4OiBUcmFuc2FjdGlvbikgLT4gQWRkcmVzczoKICAgIHYsIHIsIHMgPSB0eC52LCB0eC5yLCB0eC5zCgogICAgZW5zdXJlKDAgPCByIGFuZCByIDwgU0VDUDI1NksxTiwgSW52YWxpZEJsb2NrKQogICAgZW5zdXJlKDAgPCBzIGFuZCBzIDw9IFNFQ1AyNTZLMU4gLy8gMiwgSW52YWxpZEJsb2NrKQoKICAgIGlmIGlzaW5zdGFuY2UodHgsIExlZ2FjeVRyYW5zYWN0aW9uKToKICAgICAgICBpZiB2ID09IDI3IG9yIHYgPT0gMjg6CiAgICAgICAgICAgIHB1YmxpY19rZXkgPSBzZWNwMjU2azFfcmVjb3ZlcigKICAgICAgICAgICAgICAgIHIsIHMsIHYgLSAyNywgc2lnbmluZ19oYXNoX3ByZTE1NSh0eCkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIGVuc3VyZSgKICAgICAgICAgICAgICAgIHYgPT0gMzUgKyBjaGFpbl9pZCAqIDIgb3IgdiA9PSAzNiArIGNoYWluX2lkICogMiwgSW52YWxpZEJsb2NrCiAgICAgICAgICAgICkKICAgICAgICAgICAgcHVibGljX2tleSA9IHNlY3AyNTZrMV9yZWNvdmVyKAogICAgICAgICAgICAgICAgciwgcywgdiAtIDM1IC0gY2hhaW5faWQgKiAyLCBzaWduaW5nX2hhc2hfMTU1KHR4KQogICAgICAgICAgICApCiAgICBlbGlmIGlzaW5zdGFuY2UodHgsIEFjY2Vzc0xpc3RUcmFuc2FjdGlvbik6CiAgICAgICAgcHVibGljX2tleSA9IHNlY3AyNTZrMV9yZWNvdmVyKHIsIHMsIHYsIHNpZ25pbmdfaGFzaF8yOTMwKHR4KSkKICAgIGVsaWYgaXNpbnN0YW5jZSh0eCwgRmVlTWFya2V0VHJhbnNhY3Rpb24pOgogICAgICAgIHB1YmxpY19rZXkgPSBzZWNwMjU2azFfcmVjb3ZlcihyLCBzLCB2LCBzaWduaW5nX2hhc2hfMTU1OSh0eCkpCgogICAgcmV0dXJuIEFkZHJlc3Moa2VjY2FrMjU2KHB1YmxpY19rZXkpWzEyOjMyXSkKlGgHXZRoP1iiAwAAZGVmIHJlY292ZXJfc2VuZGVyKGNoYWluX2lkOiBVaW50NjQsIHR4OiBUcmFuc2FjdGlvbikgLT4gQWRkcmVzczoKICAgIHYsIHIsIHMgPSB0eC52LCB0eC5yLCB0eC5zCgogICAgZW5zdXJlKDAgPCByIGFuZCByIDwgU0VDUDI1NksxTiwgSW52YWxpZEJsb2NrKQogICAgZW5zdXJlKDAgPCBzIGFuZCBzIDw9IFNFQ1AyNTZLMU4gLy8gMiwgSW52YWxpZEJsb2NrKQoKICAgIGlmIGlzaW5zdGFuY2UodHgsIExlZ2FjeVRyYW5zYWN0aW9uKToKICAgICAgICBpZiB2ID09IDI3IG9yIHYgPT0gMjg6CiAgICAgICAgICAgIHB1YmxpY19rZXkgPSBzZWNwMjU2azFfcmVjb3ZlcigKICAgICAgICAgICAgICAgIHIsIHMsIHYgLSAyNywgc2lnbmluZ19oYXNoX3ByZTE1NSh0eCkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIGVuc3VyZSgKICAgICAgICAgICAgICAgIHYgPT0gMzUgKyBjaGFpbl9pZCAqIDIgb3IgdiA9PSAzNiArIGNoYWluX2lkICogMiwgSW52YWxpZEJsb2NrCiAgICAgICAgICAgICkKICAgICAgICAgICAgcHVibGljX2tleSA9IHNlY3AyNTZrMV9yZWNvdmVyKAogICAgICAgICAgICAgICAgciwgcywgdiAtIDM1IC0gY2hhaW5faWQgKiAyLCBzaWduaW5nX2hhc2hfMTU1KHR4KQogICAgICAgICAgICApCiAgICBlbGlmIGlzaW5zdGFuY2UodHgsIEFjY2Vzc0xpc3RUcmFuc2FjdGlvbik6CiAgICAgICAgcHVibGljX2tleSA9IHNlY3AyNTZrMV9yZWNvdmVyKHIsIHMsIHYsIHNpZ25pbmdfaGFzaF8yOTMwKHR4KSkKICAgIGVsaWYgaXNpbnN0YW5jZSh0eCwgRmVlTWFya2V0VHJhbnNhY3Rpb24pOgogICAgICAgIHB1YmxpY19rZXkgPSBzZWNwMjU2azFfcmVjb3ZlcihyLCBzLCB2LCBzaWduaW5nX2hhc2hfMTU1OSh0eCkpCgogICAgcmV0dXJuIEFkZHJlc3Moa2VjY2FrMjU2KHB1YmxpY19rZXkpWzEyOjMyXSkKlIWUgZR9lChoBWgGaCBqWi8AAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMBnNvdXJjZZSMTS9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3Mvc3JjL2V0aGVyZXVtL2xvbmRvbi9zcGVjLnB5lIwJeG1sOnNwYWNllGqgBQAAjAVmb3JjZZSJjAhsYW5ndWFnZZSMBnB5dGhvbpSMDmhpZ2hsaWdodF9hcmdzlH2Uam0RAABLAXOMB2xpbmVub3OUiXVoHGpVEQAAaB1oHmgfTXwCaCBqhi0AAHVi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Lkhhc2gzMpSFlIGUfZQoaAVoBmggan8wAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcav4GAABoHU5oH05oIGp7MAAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1OaB9OaCBqeDAAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq+xcAAGgdTmgfTmggamcwAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcauYXAABoHU5oH05oIGrpLwAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGrhFwAAaB1OaB9OaCBq2C8AAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqPxEAAGgdaB5oH05oIGqULwAAdWJlaA59lChoEF2UaBNdlChq0S8AAIwIZnVuY3Rpb26UZWgVXZRoF12UaBldlIwGZG9tYWlulGrRLwAAjAdvYmp0eXBllGquMAAAjAhkZXNjdHlwZZRqrjAAAIwHbm9pbmRleJSJdWgcahERAABoHU5oH05oIGp4LwAAdWJqVhEAACmBlH2UKGgFWCoBAABkZWYgc2lnbmluZ19oYXNoX3ByZTE1NSh0eDogTGVnYWN5VHJhbnNhY3Rpb24pIC0+IEhhc2gzMjoKICAgIHJldHVybiBrZWNjYWsyNTYoCiAgICAgICAgcmxwLmVuY29kZSgKICAgICAgICAgICAgKAogICAgICAgICAgICAgICAgdHgubm9uY2UsCiAgICAgICAgICAgICAgICB0eC5nYXNfcHJpY2UsCiAgICAgICAgICAgICAgICB0eC5nYXMsCiAgICAgICAgICAgICAgICB0eC50bywKICAgICAgICAgICAgICAgIHR4LnZhbHVlLAogICAgICAgICAgICAgICAgdHguZGF0YSwKICAgICAgICAgICAgKQogICAgICAgICkKICAgICkKlGgHXZRoP1gqAQAAZGVmIHNpZ25pbmdfaGFzaF9wcmUxNTUodHg6IExlZ2FjeVRyYW5zYWN0aW9uKSAtPiBIYXNoMzI6CiAgICByZXR1cm4ga2VjY2FrMjU2KAogICAgICAgIHJscC5lbmNvZGUoCiAgICAgICAgICAgICgKICAg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Z2FjeVRyYW5zYWN0aW9uKSAtPiBIYXNoMzI6CiAgICByZXR1cm4ga2VjY2FrMjU2KAogICAgICAgIHJscC5lbmNvZGUoCiAgICAgICAgICAgICgKICAgICAgICAgICAgICAgIHR4Lm5vbmNlLAogICAgICAgICAgICAgICAgdHguZ2FzX3ByaWNlLAogICAgICAgICAgICAgICAgdHguZ2FzLAogICAgICAgICAgICAgICAgdHgudG8sCiAgICAgICAgICAgICAgICB0eC52YWx1ZSwKICAgICAgICAgICAgICAgIHR4LmRhdGEsCiAgICAgICAgICAgICAgICBVaW50KDEpLAogICAgICAgICAgICAgICAgVWludCgwKSwKICAgICAgICAgICAgICAgIFVpbnQoMCksCiAgICAgICAgICAgICkKICAgICAgICApCiAgICApCpRoB12UaD9YcgEAAGRlZiBzaWduaW5nX2hhc2hfMTU1KHR4OiBMZWdhY3lUcmFuc2FjdGlvbikgLT4gSGFzaDMyOgogICAgcmV0dXJuIGtlY2NhazI1NigKICAgICAgICBybHAuZW5jb2RlKAogICAgICAgICAgICAoCiAgICAgICAgICAgICAgICB0eC5ub25jZSwKICAgICAgICAgICAgICAgIHR4Lmdhc19wcmljZSwKICAgICAgICAgICAgICAgIHR4LmdhcywKICAgICAgICAgICAgICAgIHR4LnRvLAogICAgICAgICAgICAgICAgdHgudmFsdWUsCiAgICAgICAgICAgICAgICB0eC5kYXRhLAogICAgICAgICAgICAgICAgVWludCgxKSwKICAgICAgICAgICAgICAgIFVpbnQoMCksCiAgICAgICAgICAgICAgICBVaW50KDApLAogICAgICAgICAgICApCiAgICAgICAgKQogICAgKQqUhZSBlH2UKGgFaAZoIGoSMgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwGc291cmNllIxNL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9zcmMvZXRoZXJldW0vbG9uZG9uL3NwZWMucHmUjAl4bWw6c3BhY2WUaqAFAACMBWZvcmNllImMCGxhbmd1YWdllIwGcHl0aG9ulIwOaGlnaGxpZ2h0X2FyZ3OUfZRqbREAAEsBc4wHbGluZW5vc5SJdWgcalURAABoHWgeaB9NpgJoIGrUMAAAdWJlaA59lChoEF2UaqIEAABhaBNdlGgVXZSMEHNpZ25pbmdfaGFzaF8xNTWUYWgXXZRoGV2UdWgcaDNoHWgeaB9NlgJoIGrgEAAAaCFoA3ViaDQpgZR9lChoBWgGaAddlChoOSmBlH2UKGgFjBFzaWduaW5nX2hhc2hfMjkzMJRoB12UaD+MEXNpZ25pbmdfaGFzaF8yOTMwlIWUgZR9lChoBWgGaCBqMzIAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoOGgdaB5oH02rAmggajAyAAB1YmgkKYGUfZQoaAVoBmgHXZRoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAdlbnRyaWVzlF2UdWgcaCNoHU5oH05oIGowMgAAdWJqEhEAACmBlH2UKGgFaAZoB12UKGoXEQAAKYGUfZQoaAWMFXNpZ25pbmdfaGFzaF8yOTMwKHR4KZRoB12UKGodEQAAKYGUfZQoaAWMEXNpZ25pbmdfaGFzaF8yOTMwlGgHXZRoP4wRc2lnbmluZ19oYXNoXzI5MzCUhZSBlH2UKGgFaAZoIGpTMgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlChqKBEAAGopEQAAaioRAABqKxEAAGVoFV2UaBddlGgZXZSMCXhtbDpzcGFjZZRqoAUAAHVoHGocEQAAaB1oHmgfTmggak8yAAB1YmpeFwAAKYGUfZQoaAWMAnR4lGgHXZRqZBcAACmBlH2UKGgFjAJ0eJRoB12UauEUAAApgZR9lChoBWgGaAddlGg/jAJ0eJSFlIGUfZQoaAVoBmggamoyAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UanMXAABhaBVdlGgXXZRoGV2UdWgcauAUAABoHU5oH05oIGpmMgAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwJeG1sOnNwYWNllGqgBQAAdWgcamMXAABoHU5oH05oIGpiMgAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwJeG1sOnNwYWNllGqgBQAAdWgcal0XAABoHWgeaB9OaCBqTzIAAHViZWgOfZQoaBBdlIwmZXRoZXJldW0ubG9uZG9uLnNwZWMuc2lnbmluZ19oYXNoXzI5MzCUYWgTXZQoajMRAABqNBEAAIwCcHmUajYRAABqNxEAAGVoFV2UaBddlGgZXZSMBm1vZHVsZZRqPBEAAIwFY2xhc3OUaAaMCGZ1bGxuYW1llGpVMgAAdWgcahYRAABoHWgeaB9NrgJoIGpMMgAAdWJqQBEAACmBlH2UKGgFaAZoB12UKGhpKYGUfZQoaAWMP0NvbXB1dGUgdGhlIGhhc2ggb2YgYSB0cmFuc2FjdGlvbiB1c2VkIGluIGEgRUlQIDI5MzAgc2lnbmF0dXJlLpRoB12UaD+MP0NvbXB1dGUgdGhlIGhhc2ggb2YgYSB0cmFuc2FjdGlvbiB1c2VkIGluIGEgRUlQIDI5MzAgc2lnbmF0dXJlLpSFlIGUfZQoaAVoBmggapMyAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHWgeaB9NsQJoIGqQMgAAdWJq4hcAACmBlH2UKGgFaAZoB12UKGrnFwAAKYGUfZQoaAVoBmgHXZQoauwXAAApgZR9lChoBYwKUGFyYW1ldGVyc5RoB12UaD+MClBhcmFtZXRlcnOUhZSBlH2UKGgFaAZoIGqnMgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGrrFwAAaB1oHmgfSwBoIGqkMgAAdWJq/BcAACmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYwedHggLS0gVHJhbnNhY3Rpb24gb2YgaW50ZXJlc3QulGgHXZQoagUYAAApgZR9lChoBYwCdHiUaAddlGg/jAJ0eJSFlIGUfZQoaAVoBmggarwyAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAtyZWZzcGVjaWZpY5SIjAlweTptb2R1bGWUajwRAACMCHB5OmNsYXNzlE51aBxqBBgAAGgdTmgfTmggargyAAB1Ymg/jB0g4oCTIFRyYW5zYWN0aW9uIG9mIGludGVyZXN0LpSFlIGUfZQoaAVoBmggargyAABoIWgDaB1oRGgfSwB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHU5oH05oIGq1MgAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGr7FwAAaB1OaB9OaCBqpDIAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq5hcAAGgdTmgfTmggaqEyAAB1YmrnFwAAKYGUfZQoaAVoBmgHXZQoauwXAAApgZR9lChoBYwHUmV0dXJuc5RoB12UaD+MB1JldHVybnOUhZSBlH2UKGgFaAZoIGrmMgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGrrFwAAaB1oHmgfSwBoIGrjMgAAdWJq/BcAACmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYwgaGFzaCAtLSBIYXNoIG9mIHRoZSB0cmFuc2FjdGlvbi6UaAddlChqRhgAACmBlH2UKGgFjAgqKmhhc2gqKpRoB12UaD+MBGhhc2iUhZSBlH2UKGgFaAZoIGr7MgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGpFGAAAaB1OaB9OaCBq9zIAAHViaD+MHSDigJMgSGFzaCBvZiB0aGUgdHJhbnNhY3Rpb24ulIWUgZR9lChoBWgGaCBq9zIAAGghaANoHWhEaB9LAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggavQyAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcavsXAABoHU5oH05oIGrjMgAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGrmFwAAaB1OaB9OaCBqoTIAAHViaucXAAApgZR9lChoBWgGaAddlChq7BcAACmBlH2UKGgFjAtSZXR1cm4gdHlwZZRoB12UaD+MC1JldHVybiB0eXBllIWUgZR9lChoBWgGaCBqIjMAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq6xcAAGgdaB5oH0sAaCBqHzMAAHViavwXAAApgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMGWV0aGVyZXVtLmV0aF90eXBlcy5IYXNoMzKUaAddlGr/BgAAKYGUfZQoaAWMG2BldGhlcmV1bS5ldGhfdHlwZXMuSGFzaDMyYJRoB12UaD+MGWV0aGVyZXVtLmV0aF90eXBlcy5IYXNoMzKUhZSBlH2UKGgFaAZoIGo3MwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGr+BgAAaB1OaB9OaCBqMzMAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggajAzAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcavsXAABoHU5oH05oIGofMwAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGrmFwAAaB1OaB9OaCBqoTIAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq4RcAAGgdTmgfTmggapAyAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaj8RAABoHWgeaB9OaCBqTDIAAHViZWgOfZQoaBBdlGgTXZQoaokyAACMCGZ1bmN0aW9ulGVoFV2UaBddlGgZXZSMBmRvbWFpbpRqiTIAAIwHb2JqdHlwZZRqZjMAAIwIZGVzY3R5cGWUamYzAACMB25vaW5kZXiUiXVoHGoREQAAaB1OaB9OaCBqMDIAAHVialYRAAApgZR9lChoBVh7AQAAZGVmIHNpZ25pbmdfaGFzaF8yOTMwKHR4OiBBY2Nlc3NMaXN0VHJhbnNhY3Rpb24pIC0+IEhhc2gzMjoKICAgIHJldHVybiBrZWNjYWsyNTYoCiAgICAgICAgYiJceDAxIgogICAgICAgICsgcmxwLmVuY29kZSgKICAgICAgICAgICAgKAogICAgICAgICAgICAgICAgdHguY2hhaW5faWQsCiAgICAgICAgICAgICAgICB0eC5ub25jZSwKICAgICAgICAgICAgICAgIHR4Lmdhc19wcmljZSwKICAgICAgICAgICAgICAgIHR4LmdhcywKICAgICAgICAgICAgICAgIHR4LnRvLAogICAgICAgICAgICAgICAgdHgudmFsdWUsCiAgICAgICAgICAgICAgICB0eC5kYXRhLAogICAgICAgICAgICAgICAgdHguYWNjZXNzX2xpc3QsCiAgICAgICAgICAgICkKICAgICAgICApCiAgICApCpRoB12UaD9YewEAAGRlZiBzaWduaW5nX2hhc2hfMjkzMCh0eDogQWNjZXNzTGlzdFRyYW5zYWN0aW9uKSAtPiBIYXNoMzI6CiAgICByZXR1cm4ga2VjY2FrMjU2KAogICAgICAgIGIiXHgwMSIKICAgICAgICArIHJscC5lbmNvZGUoCiAgICAgICAgICAgICgKICAgICAgICAgICAgICAgIHR4LmNoYWluX2lkLAogICAgICAgICAgICAgICAgdHgubm9uY2UsCiAgICAgICAgICAgICAgICB0eC5nYXNfcHJpY2UsCiAgICAgICAgICAgICAgICB0eC5nYXMsCiAgICAgICAgICAgICAgICB0eC50bywKICAgICAgICAgICAgICAgIHR4LnZhbHVlLAogICAgICAgICAgICAgICAgdHguZGF0YSwKICAgICAgICAgICAgICAgIHR4LmFjY2Vzc19saXN0LAogICAgICAgICAgICApCiAgICAgICAgKQogICAgKQqUhZSBlH2UKGgFaAZoIGpuMwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwGc291cmNllIxNL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9zcmMvZXRoZXJldW0vbG9uZG9uL3NwZWMucHmUjAl4bWw6c3BhY2WUaqAFAACMBWZvcmNllImMCGxhbmd1YWdllIwGcHl0aG9ulIwOaGlnaGxpZ2h0X2FyZ3OUfZRqbREAAEsBc4wHbGluZW5vc5SJdWgcalURAABoHWgeaB9NuwJoIGowMgAAdWJlaA59lChoEF2UasQEAABhaBNdlGgVXZSMEXNpZ25pbmdfaGFzaF8yOTMwlGFoF12UaBldlHVoHGgzaB1oHmgfTasCaCBq4BAAAGghaAN1Ymg0KYGUfZQoaAVoBmgHXZQoaDkpgZR9lChoBYwRc2lnbmluZ19oYXNoXzE1NTmUaAddlGg/jBFzaWduaW5nX2hhc2hfMTU1OZSFlIGUfZQoaAVoBmggao8zAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaDhoHWgeaB9NwAJoIGqMMwAAdWJoJCmBlH2UKGgFaAZoB12U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aA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGo/EQAAaB1oHmgfTmggaqgzAAB1YmVoDn2UKGgQXZRoE12UKGrlMwAAjAhmdW5jdGlvbpRlaBVdlGgXXZRoGV2UjAZkb21haW6UauUzAACMB29ianR5cGWUasI0AACMCGRlc2N0eXBllGrCNAAAjAdub2luZGV4lIl1aBxqEREAAGgdTmgfTmggaowzAAB1YmpWEQAAKYGUfZQoaAVYrQEAAGRlZiBzaWduaW5nX2hhc2hfMTU1OSh0eDogRmVlTWFya2V0VHJhbnNhY3Rpb24pIC0+IEhhc2gzMjoKICAgIHJldHVybiBrZWNjYWsyNTYoCiAgICAgICAgYiJceDAyIgogICAgICAgICsgcmxwLmVuY29kZSgKICAgICAgICAgICAgKAogICAgICAgICAgICAgICAgdHguY2hhaW5faWQsCiAgICAgICAgICAgICAgICB0eC5ub25jZSwKICAgICAgICAgICAgICAgIHR4Lm1heF9wcmlvcml0eV9mZWVfcGVyX2dhcywKICAgICAgICAgICAgICAgIHR4Lm1heF9mZWVfcGVyX2dhcywKICAgICAgICAgICAgICAgIHR4LmdhcywKICAgICAgICAgICAgICAgIHR4LnRvLAogICAgICAgICAgICAgICAgdHgudmFsdWUsCiAgICAgICAgICAgICAgICB0eC5kYXRhLAogICAgICAgICAgICAgICAgdHguYWNjZXNzX2xpc3QsCiAgICAgICAgICAgICkKICAgICAgICApCiAgICApCpRoB12UaD9YrQEAAGRlZiBzaWduaW5nX2hhc2hfMTU1OSh0eDogRmVlTWFya2V0VHJhbnNhY3Rpb24pIC0+IEhhc2gzMjoKICAgIHJldHVybiBrZWNjYWsyNTYoCiAgICAgICAgYiJceDAyIgogICAgICAgICsgcmxwLmVuY29kZSgKICAgICAgICAgICAgKAogICAgICAgICAgICAgICAgdHguY2hhaW5faWQsCiAgICAgICAgICAgICAgICB0eC5ub25jZSwKICAgICAgICAgICAgICAgIHR4Lm1heF9wcmlvcml0eV9mZWVfcGVyX2dhcywKICAgICAgICAgICAgICAgIHR4Lm1heF9mZWVfcGVyX2dhcywKICAgICAgICAgICAgICAgIHR4LmdhcywKICAgICAgICAgICAgICAgIHR4LnRvLAogICAgICAgICAgICAgICAgdHgudmFsdWUsCiAgICAgICAgICAgICAgICB0eC5kYXRhLAogICAgICAgICAgICAgICAgdHguYWNjZXNzX2xpc3QsCiAgICAgICAgICAgICkKICAgICAgICApCiAgICApCpSFlIGUfZQoaAVoBmggaso0AABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAZzb3VyY2WUjE0vaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL3NyYy9ldGhlcmV1bS9sb25kb24vc3BlYy5weZSMCXhtbDpzcGFjZZRqoAUAAIwFZm9yY2WUiYwIbGFuZ3VhZ2WUjAZweXRob26UjA5oaWdobGlnaHRfYXJnc5R9lGptEQAASwFzjAdsaW5lbm9zlIl1aBxqVREAAGgdaB5oH03QAmggaowzAAB1YmVoDn2UKGgQXZRq5gQAAGFoE12UaBVdlIwRc2lnbmluZ19oYXNoXzE1NTmUYWgXXZRoGV2UdWgcaDNoHWgeaB9NwAJoIGrgEAAAaCFoA3ViaDQpgZR9lChoBWgGaAddlChoOSmBlH2UKGgFjBNjb21wdXRlX2hlYWRlcl9oYXNolGgHXZRoP4wTY29tcHV0ZV9oZWFkZXJfaGFzaJSFlIGUfZQoaAVoBmggaus0AABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaDhoHWgeaB9N1QJoIGroNAAAdWJoJCmBlH2UKGgFaAZoB12UaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwHZW50cmllc5RdlHVoHGgjaB1OaB9OaCBq6DQAAHViahIRAAApgZR9lChoBWgGaAddlChqFxEAACmBlH2UKGgFjBtjb21wdXRlX2hlYWRlcl9oYXNoKGhlYWRlcimUaAddlChqHREAACmBlH2UKGgFjBNjb21wdXRlX2hlYWRlcl9oYXNolGgHXZRoP4wTY29tcHV0ZV9oZWFkZXJfaGFzaJSFlIGUfZQoaAVoBmggags1AABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UKGooEQAAaikRAABqKhEAAGorEQAAZWgVXZRoF12UaBldlIwJeG1sOnNwYWNllGqgBQAAdWgcahwRAABoHWgeaB9OaCBqBzUAAHVial4XAAApgZR9lChoBYwGaGVhZGVylGgHXZRqZBcAACmBlH2UKGgFjAZoZWFkZXKUaAddlGrhFAAAKYGUfZQoaAVoBmgHXZRoP4wGaGVhZGVylIWUgZR9lChoBWgGaCBqIjUAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRqcxcAAGFoFV2UaBddlGgZXZR1aBxq4BQAAGgdTmgfTmggah41AAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAl4bWw6c3BhY2WUaqAFAAB1aBxqYxcAAGgdTmgfTmggaho1AAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAl4bWw6c3BhY2WUaqAFAAB1aBxqXRcAAGgdaB5oH05oIGoHNQAAdWJlaA59lChoEF2UjChldGhlcmV1bS5sb25kb24uc3BlYy5jb21wdXRlX2hlYWRlcl9oYXNolGFoE12UKGozEQAAajQRAACMAnB5lGo2EQAAajcRAABlaBVdlGgXXZRoGV2UjAZtb2R1bGWUajwRAACMBWNsYXNzlGgGjAhmdWxsbmFtZZRqDTUAAHVoHGoWEQAAaB1oHmgfTdgCaCBqBDUAAHViakARAAApgZR9lChoBWgGaAddlChoaSmBlH2UKGgFjCRDb21wdXRlcyB0aGUgaGFzaCBvZiBhIGJsb2NrIGhlYWRlci6UaAddlGg/jCRDb21wdXRlcyB0aGUgaGFzaCBvZiBhIGJsb2NrIGhlYWRlci6UhZSBlH2UKGgFaAZoIGpLNQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1oHmgfTdsCaCBqSDUAAHViaGkpgZR9lChoBYyNVGhlIGhlYWRlciBoYXNoIG9mIGEgYmxvY2sgaXMgdGhlIGNhbm9uaWNhbCBoYXNoIHRoYXQgaXMgdXNlZCB0byByZWZlcgp0byBhIHNwZWNpZmljIGJsb2NrIGFuZCBjb21wbGV0ZWx5IGRpc3Rpbmd1aXNoZXMgYSBibG9jayBmcm9tIGFub3RoZXIulGgHXZRoP4yNVGhlIGhlYWRlciBoYXNoIG9mIGEgYmxvY2sgaXMgdGhlIGNhbm9uaWNhbCBoYXNoIHRoYXQgaXMgdXNlZCB0byByZWZlcgp0byBhIHNwZWNpZmljIGJsb2NrIGFuZCBjb21wbGV0ZWx5IGRpc3Rpbmd1aXNoZXMgYSBibG9jayBmcm9tIGFub3RoZXIulIWUgZR9lChoBWgGaCBqWTUAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdaB5oH03dAmggakg1AAB1YmhpKYGUfZQoaAVYMAEAAGBga2VjY2FrMjU2YGAgaXMgYSBmdW5jdGlvbiB0aGF0IHByb2R1Y2VzIGEgMjU2IGJpdCBoYXNoIG9mIGFueSBpbnB1dC4KSXQgYWxzbyB0YWtlcyBpbiBhbnkgbnVtYmVyIG9mIGJ5dGVzIGFzIGFuIGlucHV0IGFuZCBwcm9kdWNlcyBhIHNpbmdsZQpoYXNoIGZvciB0aGVtLiBBIGhhc2ggaXMgYSBjb21wbGV0ZWx5IHVuaXF1ZSBvdXRwdXQgZm9yIGEgc2luZ2xlIGlucHV0LgpTbyBhbiBpbnB1dCBjb3JyZXNwb25kcyB0byBvbmUgdW5pcXVlIGhhc2ggdGhhdCBjYW4gYmUgdXNlZCB0byBpZGVudGlmeQp0aGUgaW5wdXQgZXhhY3RseS6UaAddlChqFgYAACmBlH2UKGgFjA1gYGtlY2NhazI1NmBglGgHXZRoP4wJa2VjY2FrMjU2lIWUgZR9lChoBWgGaCBqazUAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqFQYAAGgdTmgfTmggamc1AAB1Ymg/WCMBAAAgaXMgYSBmdW5jdGlvbiB0aGF0IHByb2R1Y2VzIGEgMjU2IGJpdCBoYXNoIG9mIGFueSBpbnB1dC4KSXQgYWxzbyB0YWtlcyBpbiBhbnkgbnVtYmVyIG9mIGJ5dGVzIGFzIGFuIGlucHV0IGFuZCBwcm9kdWNlcyBhIHNpbmdsZQpoYXNoIGZvciB0aGVtLiBBIGhhc2ggaXMgYSBjb21wbGV0ZWx5IHVuaXF1ZSBvdXRwdXQgZm9yIGEgc2luZ2xlIGlucHV0LgpTbyBhbiBpbnB1dCBjb3JyZXNwb25kcyB0byBvbmUgdW5pcXVlIGhhc2ggdGhhdCBjYW4gYmUgdXNlZCB0byBpZGVudGlmeQp0aGUgaW5wdXQgZXhhY3RseS6UhZSBlH2UKGgFaAZoIGpnNQAAaCFoA2gdaERoH0sAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1oHmgfTeACaCBqSDUAAHViaGkpgZR9lChoBVgoAgAAUHJpb3IgdG8gdXNpbmcgdGhlIGBga2VjY2FrMjU2YGAgaGFzaCBmdW5jdGlvbiwgdGhlIGhlYWRlciBtdXN0IGJlCmVuY29kZWQgdXNpbmcgdGhlIFJlY3Vyc2l2ZS1MZW5ndGggUHJlZml4LiBTZWUgOnJlZjpgcmxwYC4KUkxQIGVuY29kaW5nIHRoZSBoZWFkZXIgY29udmVydHMgaXQgaW50byBhIHNwYWNlLWVmZmljaWVudCBmb3JtYXQgdGhhdAphbGxvd3MgZm9yIGVhc3kgdHJhbnNmZXIgb2YgZGF0YSBiZXR3ZWVuIG5vZGVzLiBUaGUgcHVycG9zZSBvZiBSTFAgaXMgdG8KZW5jb2RlIGFyYml0cmFyaWx5IG5lc3RlZCBhcnJheXMgb2YgYmluYXJ5IGRhdGEsIGFuZCBSTFAgaXMgdGhlIHByaW1hcnkKZW5jb2RpbmcgbWV0aG9kIHVzZWQgdG8gc2VyaWFsaXplIG9iamVjdHMgaW4gRXRoZXJldW0ncyBleGVjdXRpb24gbGF5ZXIuClRoZSBvbmx5IHB1cnBvc2Ugb2YgUkxQIGlzIHRvIGVuY29kZSBzdHJ1Y3R1cmU7IGVuY29kaW5nIHNwZWNpZmljIGRhdGEKdHlwZXMgKGUuZy4gc3RyaW5ncywgZmxvYXRzKSBpcyBsZWZ0IHVwIHRvIGhpZ2hlci1vcmRlciBwcm90b2NvbHMulGgHXZQoaD+ME1ByaW9yIHRvIHVzaW5nIHRoZSCUhZSBlH2UKGgFaAZoIGqDNQAAaCFoA2gdaERoH0sAdWJqFgYAACmBlH2UKGgFjA1gYGtlY2NhazI1NmBglGgHXZRoP4wJa2VjY2FrMjU2lIWUgZR9lChoBWgGaCBqizUAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqFQYAAGgdTmgfTmggaoM1AAB1Ymg/jFIgaGFzaCBmdW5jdGlvbiwgdGhlIGhlYWRlciBtdXN0IGJlCmVuY29kZWQgdXNpbmcgdGhlIFJlY3Vyc2l2ZS1MZW5ndGggUHJlZml4LiBTZWUglIWUgZR9lChoBWgGaCBqgzUAAGghaANoHWhEaB9LAHViaG4pgZR9lChoBWgGaAddlGrhFAAAKYGUfZQoaAWMJlJlY3Vyc2l2ZSBMZW5ndGggUHJlZml4IChSTFApIEVuY29kaW5nlGgHXZRoP4wmUmVjdXJzaXZlIExlbmd0aCBQcmVmaXggKFJMUCkgRW5jb2RpbmeUhZSBlH2UKGgFaAZoIGqgNQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlChqyRcAAIwHc3RkLXJlZpRlaBVdlGgXXZRoGV2UdWgcauAUAABoHU5oH05oIGqdNQAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwIaW50ZXJuYWyUiIwGcmVmdXJplIwaLi4vLi4vcmxwL2luZGV4LnBpY2tsZSNybHCUdWgcaG1oHU5oH05oIGqDNQAAdWJoP1iuAQAALgpSTFAgZW5jb2RpbmcgdGhlIGhlYWRlciBjb252ZXJ0cyBpdCBpbnRvIGEgc3BhY2UtZWZmaWNpZW50IGZvcm1hdCB0aGF0CmFsbG93cyBmb3IgZWFzeSB0cmFuc2ZlciBvZiBkYXRhIGJldHdlZW4gbm9kZXMuIFRoZSBwdXJwb3NlIG9mIFJMUCBpcyB0bwplbmNvZGUgYXJiaXRyYXJpbHkgbmVzdGVkIGFycmF5cyBvZiBiaW5hcnkgZGF0YSwgYW5kIFJMUCBpcyB0aGUgcHJpbWFyeQplbmNvZGluZyBtZXRob2QgdXNlZCB0byBzZXJpYWxpemUgb2JqZWN0cyBpbiBFdGhlcmV1beKAmXMgZXhlY3V0aW9uIGxheWVyLgpUaGUgb25seSBwdXJwb3NlIG9mIFJMUCBpcyB0byBlbmNvZGUgc3RydWN0dXJlOyBlbmNvZGluZyBzcGVjaWZpYyBkYXRhCnR5cGVzIChlLmcuIHN0cmluZ3MsIGZsb2F0cykgaXMgbGVmdCB1cCB0byBoaWdoZXItb3JkZXIgcHJvdG9jb2xzLpSFlIGUfZQoaAVoBmggaoM1AABoIWgDaB1oRGgfSwB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHWgeaB9N5gJoIGpINQAAdWJq4hcAACmBlH2UKGgFaAZoB12UKGrnFwAAKYGUfZQoaAVoBmgHXZQoauwXAAApgZR9lChoBYwKUGFyYW1ldGVyc5RoB12UaD+MClBhcmFtZXRlcnOUhZSBlH2UKGgFaAZoIGrINQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGrrFwAAaB1oHmgfSwBoIGrFNQAAdWJq/BcAACmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYwdaGVhZGVyIC0tIEhlYWRlciBvZiBpbnRlcmVzdC6UaAddlChqBRgAACmBlH2UKGgFjAZoZWFkZXKUaAddlGg/jAZoZWFkZXKUhZSBlH2UKGgFaAZoIGrdNQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwLcmVmc3BlY2lmaWOUiIwJcHk6bW9kdWxllGo8EQAAjAhweTpjbGFzc5ROdWgcagQYAABoHU5oH05oIGrZNQAAdWJoP4wYIOKAkyBIZWFkZXIgb2YgaW50ZXJlc3QulIWUgZR9lChoBWgGaCBq2TUAAGghaANoHWhEaB9LAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggatY1AAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcavsXAABoHU5oH05oIGrFNQAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGrmFwAAaB1OaB9OaCBqwjUAAHViaucXAAApgZR9lChoBWgGaAddlChq7BcAACmBlH2UKGgFjAdSZXR1cm5zlGgHXZRoP4wHUmV0dXJuc5SFlIGUfZQoaAVoBmggagc2AABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcausXAABoHWgeaB9LAGggagQ2AAB1Ymr8FwAAKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjBtoYXNoIC0tIEhhc2ggb2YgdGhlIGhlYWRlci6UaAddlChqRhgAACmBlH2UKGgFjAgqKmhhc2gqKpRoB12UaD+MBGhhc2iUhZSBlH2UKGgFaAZoIGocNgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGpFGAAAaB1OaB9OaCBqGDYAAHViaD+MGCDigJMgSGFzaCBvZiB0aGUgaGVhZGVyLpSFlIGUfZQoaAVoBmggahg2AABoIWgDaB1oRGgfSwB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHU5oH05oIGoVNgAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGr7FwAAaB1OaB9OaCBqBDYAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq5hcAAGgdTmgfTmggasI1AAB1YmrnFwAAKYGUfZQoaAVoBmgHXZQoauwXAAApgZR9lChoBYwLUmV0dXJuIHR5cGWUaAddlGg/jAtSZXR1cm4gdHlwZZSFlIGUfZQoaAVoBmggakM2AABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcausXAABoHWgeaB9LAGggakA2AAB1Ymr8FwAAKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjBlldGhlcmV1bS5ldGhfdHlwZXMuSGFzaDMylGgHXZRq/wYAACmBlH2UKGgFjBtgZXRoZXJldW0uZXRoX3R5cGVzLkhhc2gzMmCUaAddlGg/jBlldGhlcmV1bS5ldGhfdHlwZXMuSGFzaDMylIWUgZR9lChoBWgGaCBqWDYAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq/gYAAGgdTmgfTmggalQ2AAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHU5oH05oIGpRNgAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGr7FwAAaB1OaB9OaCBqQDYAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq5hcAAGgdTmgfTmggasI1AAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcauEXAABoHU5oH05oIGpINQAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGo/EQAAaB1oHmgfTmggagQ1AAB1YmVoDn2UKGgQXZRoE12UKGpBNQAAjAhmdW5jdGlvbpRlaBVdlGgXXZRoGV2UjAZkb21haW6UakE1AACMB29ianR5cGWUaoc2AACMCGRlc2N0eXBllGqHNgAAjAdub2luZGV4lIl1aBxqEREAAGgdTmgfTmggaug0AAB1YmpWEQAAKYGUfZQoaAWMXGRlZiBjb21wdXRlX2hlYWRlcl9oYXNoKGhlYWRlcjogSGVhZGVyKSAtPiBIYXNoMzI6CiAgICByZXR1cm4ga2VjY2FrMjU2KHJscC5lbmNvZGUoaGVhZGVyKSkKlGgHXZRoP4xcZGVmIGNvbXB1dGVfaGVhZGVyX2hhc2goaGVhZGVyOiBIZWFkZXIpIC0+IEhhc2gzMjoKICAgIHJldHVybiBrZWNjYWsyNTYocmxwLmVuY29kZShoZWFkZXIpKQqUhZSBlH2UKGgFaAZoIGqPNgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwGc291cmNllIxNL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9zcmMvZXRoZXJldW0vbG9uZG9uL3NwZWMucHmUjAl4bWw6c3BhY2WUaqAFAACMBWZvcmNllImMCGxhbmd1YWdllIwGcHl0aG9ulIwOaGlnaGxpZ2h0X2FyZ3OUfZRqbREAAEsBc4wHbGluZW5vc5SJdWgcalURAABoHWgeaB9N9wJoIGroNAAAdWJlaA59lChoEF2UaggFAABhaBNdlGgVXZSME2NvbXB1dGVfaGVhZGVyX2hhc2iUYWgXXZRoGV2UdWgcaDNoHWgeaB9N1QJoIGrgEAAAaCFoA3ViaDQpgZR9lChoBWgGaAddlChoOSmBlH2UKGgFjA9jaGVja19nYXNfbGltaXSUaAddlGg/jA9jaGVja19nYXNfbGltaXSUhZSBlH2UKGgFaAZoIGqwNgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGg4aB1oHmgfTfwCaCBqrTYAAHViaCQpgZR9lChoBWgGaAddlGgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMB2VudHJpZXOUXZR1aBxoI2gdTmgfTmggaq02AAB1YmoSEQAAKYGUfZQoaAVoBmgHXZQoahcRAAApgZR9lChoBYwsY2hlY2tfZ2FzX2xpbWl0KGdhc19saW1pdCwgcGFyZW50X2dhc19saW1pdCmUaAddlChqHREAACmBlH2UKGgFjA9jaGVja19nYXNfbGltaXSUaAddlGg/jA9jaGVja19nYXNfbGltaXSUhZSBlH2UKGgFaAZoIGrQNgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlChqKBEAAGopEQAAaioRAABqKxEAAGVoFV2UaBddlGgZXZSMCXhtbDpzcGFjZZRqoAUAAHVoHGocEQAAaB1oHmgfTmggasw2AAB1YmpeFwAAKYGUfZQoaAWMG2dhc19saW1pdCwgcGFyZW50X2dhc19saW1pdJRoB12UKGpkFwAAKYGUfZQoaAWMCWdhc19saW1pdJRoB12UauEUAAApgZR9lChoBWgGaAddlGg/jAlnYXNfbGltaXSUhZSBlH2UKGgFaAZoIGrnNgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGpzFwAAYWgVXZRoF12UaBldlHVoHGrgFAAAaB1OaB9OaCBq4zYAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCXhtbDpzcGFjZZRqoAUAAHVoHGpjFwAAaB1OaB9OaCBq3zYAAHViamQXAAApgZR9lChoBYwQcGFyZW50X2dhc19saW1pdJRoB12UauEUAAApgZR9lChoBWgGaAddlGg/jBBwYXJlbnRfZ2FzX2xpbWl0lIWUgZR9lChoBWgGaCBq/zYAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRqcxcAAGFoFV2UaBddlGgZXZR1aBxq4BQAAGgdTmgfTmggavs2AAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAl4bWw6c3BhY2WUaqAFAAB1aBxqYxcAAGgdTmgfTmggat82AAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAl4bWw6c3BhY2WUaqAFAAB1aBxqXRcAAGgdaB5oH05oIGrMNgAAdWJlaA59lChoEF2UjCRldGhlcmV1bS5sb25kb24uc3BlYy5jaGVja19nYXNfbGltaXSUYWgTXZQoajMRAABqNBEAAIwCcHmUajYRAABqNxEAAGVoFV2UaBddlGgZXZSMBm1vZHVsZZRqPBEAAIwFY2xhc3OUaAaMCGZ1bGxuYW1llGrSNgAAdWgcahYRAABoHWgeaB9N/wJoIGrJNgAAdWJqQBEAACmBlH2UKGgFaAZoB12UKGhpKYGUfZQoaAWMJFZhbGlkYXRlcyB0aGUgZ2FzIGxpbWl0IGZvciBhIGJsb2NrLpRoB12UaD+MJFZhbGlkYXRlcyB0aGUgZ2FzIGxpbWl0IGZvciBhIGJsb2NrLpSFlIGUfZQoaAVoBmggaig3AABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHWgeaB9NAgNoIGolNwAAdWJoaSmBlH2UKGgFWJECAABUaGUgYm91bmRzIG9mIHRoZSBnYXMgbGltaXQsIGBgbWF4X2FkanVzdG1lbnRfZGVsdGFgYCwgaXMgc2V0IGFzIHRoZQpxdW90aWVudCBvZiB0aGUgcGFyZW50IGJsb2NrJ3MgZ2FzIGxpbWl0IGFuZCB0aGUKYGBHQVNfTElNSVRfQURKVVNUTUVOVF9GQUNUT1JgYC4gVGhlcmVmb3JlLCBpZiB0aGUgZ2FzIGxpbWl0IHRoYXQgaXMKcGFzc2VkIHRocm91Z2ggYXMgYSBwYXJhbWV0ZXIgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSAqc3VtKiBvZgp0aGUgcGFyZW50J3MgZ2FzIGFuZCB0aGUgYWRqdXN0bWVudCBkZWx0YSB0aGVuIHRoZSBsaW1pdCBmb3IgZ2FzIGlzIHRvbwpoaWdoIGFuZCBmYWlscyB0aGlzIGZ1bmN0aW9uJ3MgY2hlY2suIFNpbWlsYXJseSwgaWYgdGhlIGxpbWl0IGlzIGxlc3MKdGhhbiBvciBlcXVhbCB0byB0aGUgKmRpZmZlcmVuY2UqIG9mIHRoZSBwYXJlbnQncyBnYXMgYW5kIHRoZSBhZGp1c3RtZW50CmRlbHRhICpvciogdGhlIHByZWRlZmluZWQgYGBHQVNfTElNSVRfTUlOSU1VTWBgIHRoZW4gdGhpcyBmdW5jdGlvbidzCmNoZWNrIGZhaWxzIGJlY2F1c2UgdGhlIGdhcyBsaW1pdCBkb2Vzbid0IGFsbG93IGZvciBhIHN1ZmZpY2llbnQgb3IKcmVhc29uYWJsZSBhbW91bnQgb2YgZ2FzIHRvIGJlIHVzZWQgb24gYSBibG9jay6UlUFMAAAAAAAAaAddlChoP4wdVGhlIGJvdW5kcyBvZiB0aGUgZ2FzIGxpbWl0LCCUhZSBlH2UKGgFaAZoIGo2NwAAaCFoA2gdaERoH0sAdWJqFgYAACmBlH2UKGgFjBhgYG1heF9hZGp1c3RtZW50X2RlbHRhYGCUaAddlGg/jBRtYXhfYWRqdXN0bWVudF9kZWx0YZSFlIGUfZQoaAVoBmggaj43AABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcahUGAABoHU5oH05oIGo2NwAAdWJoP4xDLCBpcyBzZXQgYXMgdGhlCnF1b3RpZW50IG9mIHRoZSBwYXJlbnQgYmxvY2vigJlzIGdhcyBsaW1pdCBhbmQgdGhlCpSFlIGUfZQoaAVoBmggajY3AABoIWgDaB1oRGgfSwB1YmoWBgAAKYGUfZQoaAWMH2BgR0FTX0xJTUlUX0FESlVTVE1FTlRfRkFDVE9SYGCUaAddlGg/jBtHQVNfTElNSVRfQURKVVNUTUVOVF9GQUNUT1KUhZSBlH2UKGgFaAZoIGpQNwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGoVBgAAaB1OaB9OaCBqNjcAAHViaD+MZC4gVGhlcmVmb3JlLCBpZiB0aGUgZ2FzIGxpbWl0IHRoYXQgaXMKcGFzc2VkIHRocm91Z2ggYXMgYSBwYXJhbWV0ZXIgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSCUhZSBlH2UKGgFaAZoIGo2NwAAaCFoA2gdaERoH0sAdWJqXBwAACmBlH2UKGgFjAUqc3VtKpRoB12UaD+MA3N1bZSFlIGUfZQoaAVoBmggamI3AABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcalscAABoHU5oH05oIGo2NwAAdWJoP4yrIG9mCnRoZSBwYXJlbnTigJlzIGdhcyBhbmQgdGhlIGFkanVzdG1lbnQgZGVsdGEgdGhlbiB0aGUgbGltaXQgZm9yIGdhcyBpcyB0b28KaGlnaCBhbmQgZmFpbHMgdGhpcyBmdW5jdGlvbuKAmXMgY2hlY2suIFNpbWlsYXJseSwgaWYgdGhlIGxpbWl0IGlzIGxlc3MKdGhhbiBvciBlcXVhbCB0byB0aGUglIWUgZR9lChoBWgGaCBqNjcAAGghaANoHWhEaB9LAHVialwcAAApgZR9lChoBYwMKmRpZmZlcmVuY2UqlGgHXZRoP4wKZGlmZmVyZW5jZZSFlIGUfZQoaAVoBmgganQ3AABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcalscAABoHU5oH05oIGo2NwAAdWJoP4wwIG9mIHRoZSBwYXJlbnTigJlzIGdhcyBhbmQgdGhlIGFkanVzdG1lbnQKZGVsdGEglIWUgZR9lChoBWgGaCBqNjcAAGghaANoHWhEaB9LAHVialwcAAApgZR9lChoBYwEKm9yKpRoB12UaD+MAm9ylIWUgZR9lChoBWgGaCBqhjcAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqWxwAAGgdTmgfTmggajY3AAB1Ymg/jBAgdGhlIHByZWRlZmluZWQglIWUgZR9lChoBWgGaCBqNjcAAGghaANoHWhEaB9LAHViahYGAAApgZR9lChoBYwVYGBHQVNfTElNSVRfTUlOSU1VTWBglGgHXZRoP4wRR0FTX0xJTUlUX01JTklNVU2UhZSBlH2UKGgFaAZoIGqYNwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGoVBgAAaB1OaB9OaCBqNjcAAHViaD+MjSB0aGVuIHRoaXMgZnVuY3Rpb27igJlzCmNoZWNrIGZhaWxzIGJlY2F1c2UgdGhlIGdhcyBsaW1pdCBkb2VzbuKAmXQgYWxsb3cgZm9yIGEgc3VmZmljaWVudCBvcgpyZWFzb25hYmxlIGFtb3VudCBvZiBnYXMgdG8gYmUgdXNlZCBvbiBhIGJsb2NrLpSFlIGUfZQoaAVoBmggajY3AABoIWgDaB1oRGgfSwB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHWgeaB9NBANoIGolNwAAdWJq4hcAACmBlH2UKGgFaAZoB12UKGrnFwAAKYGUfZQoaAVoBmgHXZQoauwXAAApgZR9lChoBYwKUGFyYW1ldGVyc5RoB12UaD+MClBhcmFtZXRlcnOUhZSBlH2UKGgFaAZoIGq2NwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGrrFwAAaB1oHmgfSwBoIGqzNwAAdWJq/BcAACmBlH2UKGgFaAZoB12UaF8pgZR9lChoBWgGaAddlChoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYwjZ2FzX2xpbWl0IC0tIEdhcyBsaW1pdCB0byB2YWxpZGF0ZS6UaAddlChqBRgAACmBlH2UKGgFjAlnYXNfbGltaXSUaAddlGg/jAlnYXNfbGltaXSUhZSBlH2UKGgFaAZoIGrRNwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwLcmVmc3BlY2lmaWOUiIwJcHk6bW9kdWxllGo8EQAAjAhweTpjbGFzc5ROdWgcagQYAABoHU5oH05oIGrNNwAAdWJoP4wbIOKAkyBHYXMgbGltaXQgdG8gdmFsaWRhdGUulIWUgZR9lChoBWgGaCBqzTcAAGghaANoHWhEaB9LAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggaso3AAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHU5oH05oIGrHNwAAdWJoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYwycGFyZW50X2dhc19saW1pdCAtLSBHYXMgbGltaXQgb2YgdGhlIHBhcmVudCBibG9jay6UaAddlChqBRgAACmBlH2UKGgFjBBwYXJlbnRfZ2FzX2xpbWl0lGgHXZRoP4wQcGFyZW50X2dhc19saW1pdJSFlIGUfZQoaAVoBmggavk3AABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAtyZWZzcGVjaWZpY5SIjAlweTptb2R1bGWUajwRAACMCHB5OmNsYXNzlE51aBxqBBgAAGgdTmgfTmggavU3AAB1Ymg/jCMg4oCTIEdhcyBsaW1pdCBvZiB0aGUgcGFyZW50IGJsb2NrLpSFlIGUfZQoaAVoBmggavU3AABoIWgDaB1oRGgfSwB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHU5oH05oIGryNwAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhjaB1OaB9OaCBqxzcAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoXmgdTmgfTmggasQ3AAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcavsXAABoHU5oH05oIGqzNwAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGrmFwAAaB1OaB9OaCBqsDcAAHViaucXAAApgZR9lChoBWgGaAddlChq7BcAACmBlH2UKGgFjAdSZXR1cm5zlGgHXZRoP4wHUmV0dXJuc5SFlIGUfZQoaAVoBmggai84AABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcausXAABoHWgeaB9LAGggaiw4AAB1Ymr8FwAAKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjEZjaGVjayAtLSBUcnVlIGlmIGdhcyBsaW1pdCBjb25zdHJhaW50cyBhcmUgc2F0aXNmaWVkLCBGYWxzZSBvdGhlcndpc2UulGgHXZQoakYYAAApgZR9lChoBYwJKipjaGVjayoqlGgHXZRoP4wFY2hlY2uUhZSBlH2UKGgFaAZoIGpEOAAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGpFGAAAaB1OaB9OaCBqQDgAAHViaD+MQiDigJMgVHJ1ZSBpZiBnYXMgbGltaXQgY29uc3RyYWludHMgYXJlIHNhdGlzZmllZCwgRmFsc2Ugb3RoZXJ3aXNlLpSFlIGUfZQoaAVoBmggakA4AABoIWgDaB1oRGgfSwB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHU5oH05oIGo9OAAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGr7FwAAaB1OaB9OaCBqLDgAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq5hcAAGgdTmgfTmggarA3AAB1YmrnFwAAKYGUfZQoaAVoBmgHXZQoauwXAAApgZR9lChoBYwLUmV0dXJuIHR5cGWUaAddlGg/jAtSZXR1cm4gdHlwZZSFlIGUfZQoaAVoBmggams4AABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcausXAABoHWgeaB9LAGggamg4AAB1Ymr8FwAAKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjARib29slGgHXZRq/wYAACmBlH2UKGgFjAZgYm9vbGCUaAddlGg/jARib29slIWUgZR9lChoBWgGaCBqgDgAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq/gYAAGgdTmgfTmgganw4AAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHU5oH05oIGp5OAAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGr7FwAAaB1OaB9OaCBqaDgAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq5hcAAGgdTmgfTmggarA3AAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcauEXAABoHU5oH05oIGolNwAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGo/EQAAaB1oHmgfTmggask2AAB1YmVoDn2UKGgQXZRoE12UKGoeNwAAjAhmdW5jdGlvbpRlaBVdlGgXXZRoGV2UjAZkb21haW6Uah43AACMB29ianR5cGWUaq84AACMCGRlc2N0eXBllGqvOAAAjAdub2luZGV4lIl1aBxqEREAAGgdTmgfTmggaq02AAB1YmpWEQAAKYGUfZQoaAVYgQEAAGRlZiBjaGVja19nYXNfbGltaXQoZ2FzX2xpbWl0OiBVaW50LCBwYXJlbnRfZ2FzX2xpbWl0OiBVaW50KSAtPiBib29sOgogICAgbWF4X2FkanVzdG1lbnRfZGVsdGEgPSBwYXJlbnRfZ2FzX2xpbWl0IC8vIEdBU19MSU1JVF9BREpVU1RNRU5UX0ZBQ1RPUgogICAgaWYgZ2FzX2xpbWl0ID49IHBhcmVudF9nYXNfbGltaXQgKyBtYXhfYWRqdXN0bWVudF9kZWx0YToKICAgICAgICByZXR1cm4gRmFsc2UKICAgIGlmIGdhc19saW1pdCA8PSBwYXJlbnRfZ2FzX2xpbWl0IC0gbWF4X2FkanVzdG1lbnRfZGVsdGE6CiAgICAgICAgcmV0dXJuIEZhbHNlCiAgICBpZiBnYXNfbGltaXQgPCBHQVNfTElNSVRfTUlOSU1VTToKICAgICAgICByZXR1cm4gRmFsc2UKCiAgICByZXR1cm4gVHJ1ZQqUaAddlGg/WIEBAABkZWYgY2hlY2tfZ2FzX2xpbWl0KGdhc19saW1pdDogVWludCwgcGFyZW50X2dhc19saW1pdDogVWludCkgLT4gYm9vbDoKICAgIG1heF9hZGp1c3RtZW50X2RlbHRhID0gcGFyZW50X2dhc19saW1pdCAvLyBHQVNfTElNSVRfQURKVVNUTUVOVF9GQUNUT1IKICAgIGlmIGdhc19saW1pdCA+PSBwYXJlbnRfZ2FzX2xpbWl0ICsgbWF4X2FkanVzdG1lbnRfZGVsdGE6CiAgICAgICAgcmV0dXJuIEZhbHNlCiAgICBpZiBnYXNfbGltaXQgPD0gcGFyZW50X2dhc19saW1pdCAtIG1heF9hZGp1c3RtZW50X2RlbHRhOgogICAgICAgIHJldHVybiBGYWxzZQogICAgaWYgZ2FzX2xpbWl0IDwgR0FTX0xJTUlUX01JTklNVU06CiAgICAgICAgcmV0dXJuIEZhbHNlCgogICAgcmV0dXJuIFRydWUKlIWUgZR9lChoBWgGaCBqtzgAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMBnNvdXJjZZSMTS9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3Mvc3JjL2V0aGVyZXVtL2xvbmRvbi9zcGVjLnB5lIwJeG1sOnNwYWNllGqgBQAAjAVmb3JjZZSJjAhsYW5ndWFnZZSMBnB5dGhvbpSMDmhpZ2hsaWdodF9hcmdzlH2Uam0RAABLAXOMB2xpbmVub3OUiXVoHGpVEQAAaB1oHmgfTRgDaCBqrTYAAHViZWgOfZQoaBBdlGoqBQAAYWgTXZRoFV2UjA9jaGVja19nYXNfbGltaXSUYWgXXZRoGV2UdWgcaDNoHWgeaB9N/AJoIGrgEAAAaCFoA3ViaDQpgZR9lChoBWgGaAddlChoOSmBlH2UKGgFjBpjYWxjdWxhdGVfYmxvY2tfZGlmZmljdWx0eZRoB12UaD+MGmNhbGN1bGF0ZV9ibG9ja19kaWZmaWN1bHR5lIWUgZR9lChoBWgGaCBq2DgAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoOGgdaB5oH00dA2ggatU4AAB1YmgkKYGUfZQoaAVoBmgHXZRoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAdlbnRyaWVzlF2UdWgcaCNoHU5oH05oIGrVOAAAdWJqEhEAACmBlH2UKGgFaAZoB12UKGoXEQAAKYGUfZQoaAWMcWNhbGN1bGF0ZV9ibG9ja19kaWZmaWN1bHR5KGJsb2NrX251bWJlciwgYmxvY2tfdGltZXN0YW1wLCBwYXJlbnRfdGltZXN0YW1wLCBwYXJlbnRfZGlmZmljdWx0eSwgcGFyZW50X2hhc19vbW1lcnMplGgHXZQoah0RAAApgZR9lChoBYwaY2FsY3VsYXRlX2Jsb2NrX2RpZmZpY3VsdHmUaAddlGg/jBpjYWxjdWxhdGVfYmxvY2tfZGlmZmljdWx0eZSFlIGUfZQoaAVoBmggavg4AABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UKGooEQAAaikRAABqKhEAAGorEQAAZWgVXZRoF12UaBldlIwJeG1sOnNwYWNllGqgBQAAdWgcahwRAABoHWgeaB9OaCBq9DgAAHVial4XAAApgZR9lChoBYxVYmxvY2tfbnVtYmVyLCBibG9ja190aW1lc3RhbXAsIHBhcmVudF90aW1lc3RhbXAsIHBhcmVudF9kaWZmaWN1bHR5LCBwYXJlbnRfaGFzX29tbWVyc5RoB12UKGpkFwAAKYGUfZQoaAWMDGJsb2NrX251bWJlcpRoB12UauEUAAApgZR9lChoBWgGaAddlGg/jAxibG9ja19udW1iZXKUhZSBlH2UKGgFaAZoIGoPOQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGpzFwAAYWgVXZRoF12UaBldlHVoHGrgFAAAaB1OaB9OaCBqCzkAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCXhtbDpzcGFjZZRqoAUAAHVoHGpjFwAAaB1OaB9OaCBqBzkAAHViamQXAAApgZR9lChoBYwPYmxvY2tfdGltZXN0YW1wlGgHXZRq4RQAACmBlH2UKGgFaAZoB12UaD+MD2Jsb2NrX3RpbWVzdGFtcJSFlIGUfZQoaAVoBmggaic5AABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UanMXAABhaBVdlGgXXZRoGV2UdWgcauAUAABoHU5oH05oIGojOQAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwJeG1sOnNwYWNllGqgBQAAdWgcamMXAABoHU5oH05oIGoHOQAAdWJqZBcAACmBlH2UKGgFjBBwYXJlbnRfdGltZXN0YW1wlGgHXZRq4RQAACmBlH2UKGgFaAZoB12UaD+MEHBhcmVudF90aW1lc3RhbXCUhZSBlH2UKGgFaAZoIGo/OQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGpzFwAAYWgVXZRoF12UaBldlHVoHGrgFAAAaB1OaB9OaCBqOzkAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCXhtbDpzcGFjZZRqoAUAAHVoHGpjFwAAaB1OaB9OaCBqBzkAAHViamQXAAApgZR9lChoBYwRcGFyZW50X2RpZmZpY3VsdHmUaAddlGrhFAAAKYGUfZQoaAVoBmgHXZRoP4wRcGFyZW50X2RpZmZpY3VsdHmUhZSBlH2UKGgFaAZoIGpXOQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGpzFwAAYWgVXZRoF12UaBldlHVoHGrgFAAAaB1OaB9OaCBqUzkAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCXhtbDpzcGFjZZRqoAUAAHVoHGpjFwAAaB1OaB9OaCBqBzkAAHViamQXAAApgZR9lChoBYwRcGFyZW50X2hhc19vbW1lcnOUaAddlGrhFAAAKYGUfZQoaAVoBmgHXZRoP4wRcGFyZW50X2hhc19vbW1lcnOUhZSBlH2UKGgFaAZoIGpvOQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGpzFwAAYWgVXZRoF12UaBldlHVoHGrgFAAAaB1OaB9OaCBqazkAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCXhtbDpzcGFjZZRqoAUAAHVoHGpjFwAAaB1OaB9OaCBqBzkAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCXhtbDpzcGFjZZRqoAUAAHVoHGpdFwAAaB1oHmgfTmggavQ4AAB1YmVoDn2UKGgQXZSML2V0aGVyZXVtLmxvbmRvbi5zcGVjLmNhbGN1bGF0ZV9ibG9ja19kaWZmaWN1bHR5lGFoE12UKGozEQAAajQRAACMAnB5lGo2EQAAajcRAABlaBVdlGgXXZRoGV2UjAZtb2R1bGWUajwRAACMBWNsYXNzlGgGjAhmdWxsbmFtZZRq+jgAAHVoHGoWEQAAaB1oHmgfTSADaCBq8TgAAHViakARAAApgZR9lChoBWgGaAddlChoaSmBlH2UKGgFjEJDb21wdXRlcyBkaWZmaWN1bHR5IG9mIGEgYmxvY2sgdXNpbmcgaXRzIGhlYWRlciBhbmQgcGFyZW50IGhlYWRlci6UaAddlGg/jEJDb21wdXRlcyBkaWZmaWN1bHR5IG9mIGEgYmxvY2sgdXNpbmcgaXRzIGhlYWRlciBhbmQgcGFyZW50IGhlYWRlci6UhZSBlH2UKGgFaAZoIGqYOQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1oHmgfTSMDaCBqlTkAAHViaGkpgZR9lChoBViDAgAAVGhlIGRpZmZpY3VsdHkgaXMgZGV0ZXJtaW5lZCBieSB0aGUgdGltZSB0aGUgYmxvY2sgd2FzIGNyZWF0ZWQgYWZ0ZXIgaXRzCnBhcmVudC4gVGhlIGBgb2Zmc2V0YGAgaXMgY2FsY3VsYXRlZCB1c2luZyB0aGUgcGFyZW50IGJsb2NrJ3MgZGlmZmljdWx0eSwKYGBwYXJlbnRfZGlmZmljdWx0eWBgLCBhbmQgdGhlIHRpbWVzdGFtcCBiZXR3ZWVuIGJsb2Nrcy4gVGhpcyBvZmZzZXQgaXMKdGhlbiBhZGRlZCB0byB0aGUgcGFyZW50IGRpZmZpY3VsdHkgYW5kIGlzIHN0b3JlZCBhcyB0aGUgYGBkaWZmaWN1bHR5YGAKdmFyaWFibGUuIElmIHRoZSB0aW1lIGJldHdlZW4gdGhlIGJsb2NrIGFuZCBpdHMgcGFyZW50IGlzIHRvbyBzaG9ydCwgdGhlCm9mZnNldCB3aWxsIHJlc3VsdCBpbiBhIHBvc2l0aXZlIG51bWJlciB0aHVzIG1ha2luZyB0aGUgc3VtIG9mCmBgcGFyZW50X2RpZmZpY3VsdHlgYCBhbmQgYGBvZmZzZXRgYCB0byBiZSBhIGdyZWF0ZXIgdmFsdWUgaW4gb3JkZXIgdG8KYXZvaWQgbWFzcyBmb3JraW5nLiBCdXQsIGlmIHRoZSB0aW1lIGlzIGxvbmcgZW5vdWdoLCB0aGVuIHRoZSBvZmZzZXQKcmVzdWx0cyBpbiBhIG5lZ2F0aXZlIHZhbHVlIG1ha2luZyB0aGUgYmxvY2sgbGVzcyBkaWZmaWN1bHQgdGhhbgppdHMgcGFyZW50LpRoB12UKGg/jFVUaGUgZGlmZmljdWx0eSBpcyBkZXRlcm1pbmVkIGJ5IHRoZSB0aW1lIHRoZSBibG9jayB3YXMgY3JlYXRlZCBhZnRlciBpdHMKcGFyZW50LiBUaGUglIWUgZR9lChoBWgGaCBqpjkAAGghaANoHWhEaB9LAHViahYGAAApgZR9lChoBYwKYGBvZmZzZXRgYJRoB12UaD+MBm9mZnNldJSFlIGUfZQoaAVoBmggaq45AABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcahUGAABoHU5oH05oIGqmOQAAdWJoP4w2IGlzIGNhbGN1bGF0ZWQgdXNpbmcgdGhlIHBhcmVudCBibG9ja+KAmXMgZGlmZmljdWx0eSwKlIWUgZR9lChoBWgGaCBqpjkAAGghaANoHWhEaB9LAHViahYGAAApgZR9lChoBYwVYGBwYXJlbnRfZGlmZmljdWx0eWBglGgHXZRoP4wRcGFyZW50X2RpZmZpY3VsdHmUhZSBlH2UKGgFaAZoIGrAOQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGoVBgAAaB1OaB9OaCBqpjkAAHViaD+MbCwgYW5kIHRoZSB0aW1lc3RhbXAgYmV0d2VlbiBibG9ja3MuIFRoaXMgb2Zmc2V0IGlzCnRoZW4gYWRkZWQgdG8gdGhlIHBhcmVudCBkaWZmaWN1bHR5IGFuZCBpcyBzdG9yZWQgYXMgdGhlIJSFlIGUfZQoaAVoBmggaqY5AABoIWgDaB1oRGgfSwB1YmoWBgAAKYGUfZQoaAWMDmBgZGlmZmljdWx0eWBglGgHXZRoP4wKZGlmZmljdWx0eZSFlIGUfZQoaAVoBmggatI5AABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcahUGAABoHU5oH05oIGqmOQAAdWJoP4yJCnZhcmlhYmxlLiBJZiB0aGUgdGltZSBiZXR3ZWVuIHRoZSBibG9jayBhbmQgaXRzIHBhcmVudCBpcyB0b28gc2hvcnQsIHRoZQpvZmZzZXQgd2lsbCByZXN1bHQgaW4gYSBwb3NpdGl2ZSBudW1iZXIgdGh1cyBtYWtpbmcgdGhlIHN1bSBvZgqUhZSBlH2UKGgFaAZoIGqmOQAAaCFoA2gdaERoH0sAdWJqFgYAACmBlH2UKGgFjBVgYHBhcmVudF9kaWZmaWN1bHR5YGCUaAddlGg/jBFwYXJlbnRfZGlmZmljdWx0eZSFlIGUfZQoaAVoBmggauQ5AABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcahUGAABoHU5oH05oIGqmOQAAdWJoP4wFIGFuZCCUhZSBlH2UKGgFaAZoIGqmOQAAaCFoA2gdaERoH0sAdWJqFgYAACmBlH2UKGgFjApgYG9mZnNldGBglGgHXZRoP4wGb2Zmc2V0lIWUgZR9lChoBWgGaCBq9jkAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqFQYAAGgdTmgfTmggaqY5AAB1Ymg/jLQgdG8gYmUgYSBncmVhdGVyIHZhbHVlIGluIG9yZGVyIHRvCmF2b2lkIG1hc3MgZm9ya2luZy4gQnV0LCBpZiB0aGUgdGltZSBpcyBsb25nIGVub3VnaCwgdGhlbiB0aGUgb2Zmc2V0CnJlc3VsdHMgaW4gYSBuZWdhdGl2ZSB2YWx1ZSBtYWtpbmcgdGhlIGJsb2NrIGxlc3MgZGlmZmljdWx0IHRoYW4KaXRzIHBhcmVudC6UhZSBlH2UKGgFaAZoIGqmOQAAaCFoA2gdaERoH0sAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1oHmgfTSUDaCBqlTkAAHViaGkpgZR9lChoBVgwAQAAVGhlIGJhc2Ugc3RhbmRhcmQgZm9yIGEgYmxvY2sncyBkaWZmaWN1bHR5IGlzIHRoZSBwcmVkZWZpbmVkIHZhbHVlCnNldCBmb3IgdGhlIGdlbmVzaXMgYmxvY2sgc2luY2UgaXQgaGFzIG5vIHBhcmVudC4gU28sIGEgYmxvY2sKY2FuJ3QgYmUgbGVzcyBkaWZmaWN1bHQgdGhhbiB0aGUgZ2VuZXNpcyBibG9jaywgdGhlcmVmb3JlIGVhY2ggYmxvY2sncwpkaWZmaWN1bHR5IGlzIHNldCB0byB0aGUgbWF4aW11bSB2YWx1ZSBiZXR3ZWVuIHRoZSBjYWxjdWxhdGVkCmRpZmZpY3VsdHkgYW5kIHRoZSBgYEdFTkVTSVNfRElGRklDVUxUWWBgLpRoB12UKGg/WB8BAABUaGUgYmFzZSBzdGFuZGFyZCBmb3IgYSBibG9ja+KAmXMgZGlmZmljdWx0eSBpcyB0aGUgcHJlZGVmaW5lZCB2YWx1ZQpzZXQgZm9yIHRoZSBnZW5lc2lzIGJsb2NrIHNpbmNlIGl0IGhhcyBubyBwYXJlbnQuIFNvLCBhIGJsb2NrCmNhbuKAmXQgYmUgbGVzcyBkaWZmaWN1bHQgdGhhbiB0aGUgZ2VuZXNpcyBibG9jaywgdGhlcmVmb3JlIGVhY2ggYmxvY2vigJlzCmRpZmZpY3VsdHkgaXMgc2V0IHRvIHRoZSBtYXhpbXVtIHZhbHVlIGJldHdlZW4gdGhlIGNhbGN1bGF0ZWQKZGlmZmljdWx0eSBhbmQgdGhlIJSFlIGUfZQoaAVoBmggag46AABoIWgDaB1oRGgfSwB1YmoWBgAAKYGUfZQoaAWMFmBgR0VORVNJU19ESUZGSUNVTFRZYGCUaAddlGg/jBJHRU5FU0lTX0RJRkZJQ1VMVFmUhZSBlH2UKGgFaAZoIGoWOgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGoVBgAAaB1OaB9OaCBqDjoAAHViaD+MAS6UhZSBlH2UKGgFaAZoIGoOOgAAaCFoA2gdaERoH0sAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1oHmgfTTADaCBqlTkAAHViauIXAAApgZR9lChoBWgGaAddlChq5xcAACmBlH2UKGgFaAZoB12UKGrsFwAAKYGUfZQoaAWMClBhcmFtZXRlcnOUaAddlGg/jApQYXJhbWV0ZXJzlIWUgZR9lChoBWgGaCBqNDoAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq6xcAAGgdaB5oH0sAaCBqMToAAHViavwXAAApgZR9lChoBWgGaAddlGhfKYGUfZQoaAVoBmgHXZQoaGQpgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMKmJsb2NrX251bWJlciAtLSBCbG9jayBudW1iZXIgb2YgdGhlIGJsb2NrLpRoB12UKGoFGAAAKYGUfZQoaAWMDGJsb2NrX251bWJlcpRoB12UaD+MDGJsb2NrX251bWJlcpSFlIGUfZQoaAVoBmggak86AABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAtyZWZzcGVjaWZpY5SIjAlweTptb2R1bGWUajwRAACMCHB5OmNsYXNzlE51aBxqBBgAAGgdTmgfTmggaks6AAB1Ymg/jB8g4oCTIEJsb2NrIG51bWJlciBvZiB0aGUgYmxvY2sulIWUgZR9lChoBWgGaCBqSzoAAGghaANoHWhEaB9LAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggakg6AAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHU5oH05oIGpFOgAAdWJoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYwqYmxvY2tfdGltZXN0YW1wIC0tIFRpbWVzdGFtcCBvZiB0aGUgYmxvY2sulGgHXZQoagUYAAApgZR9lChoBYwPYmxvY2tfdGltZXN0YW1wlGgHXZRoP4wPYmxvY2tfdGltZXN0YW1wlIWUgZR9lChoBWgGaCBqdzoAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMC3JlZnNwZWNpZmljlIiMCXB5Om1vZHVsZZRqPBEAAIwIcHk6Y2xhc3OUTnVoHGoEGAAAaB1OaB9OaCBqczoAAHViaD+MHCDigJMgVGltZXN0YW1wIG9mIHRoZSBibG9jay6UhZSBlH2UKGgFaAZoIGpzOgAAaCFoA2gdaERoH0sAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1OaB9OaCBqcDoAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoY2gdTmgfTmggakU6AAB1YmhkKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjDJwYXJlbnRfdGltZXN0YW1wIC0tIFRpbWVzdGFtcCBvZiB0aGUgcGFyZW50IGJsb2NrLpRoB12UKGoFGAAAKYGUfZQoaAWMEHBhcmVudF90aW1lc3RhbXCUaAddlGg/jBBwYXJlbnRfdGltZXN0YW1wlIWUgZR9lChoBWgGaCBqnzoAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMC3JlZnNwZWNpZmljlIiMCXB5Om1vZHVsZZRqPBEAAIwIcHk6Y2xhc3OUTnVoHGoEGAAAaB1OaB9OaCBqmzoAAHViaD+MIyDigJMgVGltZXN0YW1wIG9mIHRoZSBwYXJlbnQgYmxvY2sulIWUgZR9lChoBWgGaCBqmzoAAGghaANoHWhEaB9LAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggapg6AAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHU5oH05oIGpFOgAAdWJoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYw0cGFyZW50X2RpZmZpY3VsdHkgLS0gZGlmZmljdWx0eSBvZiB0aGUgcGFyZW50IGJsb2NrLpRoB12UKGoFGAAAKYGUfZQoaAWMEXBhcmVudF9kaWZmaWN1bHR5lGgHXZRoP4wRcGFyZW50X2RpZmZpY3VsdHmUhZSBlH2UKGgFaAZoIGrHOgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwLcmVmc3BlY2lmaWOUiIwJcHk6bW9kdWxllGo8EQAAjAhweTpjbGFzc5ROdWgcagQYAABoHU5oH05oIGrDOgAAdWJoP4wkIOKAkyBkaWZmaWN1bHR5IG9mIHRoZSBwYXJlbnQgYmxvY2sulIWUgZR9lChoBWgGaCBqwzoAAGghaANoHWhEaB9LAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggasA6AAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHU5oH05oIGpFOgAAdWJoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYwxcGFyZW50X2hhc19vbW1lcnMgLS0gZG9lcyB0aGUgcGFyZW50IGhhdmUgb21tZXJzLpRoB12UKGoFGAAAKYGUfZQoaAWMEXBhcmVudF9oYXNfb21tZXJzlGgHXZRoP4wRcGFyZW50X2hhc19vbW1lcnOUhZSBlH2UKGgFaAZoIGrvOgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwLcmVmc3BlY2lmaWOUiIwJcHk6bW9kdWxllGo8EQAAjAhweTpjbGFzc5ROdWgcagQYAABoHU5oH05oIGrrOgAAdWJoP4whIOKAkyBkb2VzIHRoZSBwYXJlbnQgaGF2ZSBvbW1lcnMulIWUgZR9lChoBWgGaCBq6zoAAGghaANoHWhEaB9LAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggaug6AAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHU5oH05oIGpFOgAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGheaB1OaB9OaCBqQjoAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq+xcAAGgdTmgfTmggajE6AAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcauYXAABoHU5oH05oIGouOgAAdWJq5xcAACmBlH2UKGgFaAZoB12UKGrsFwAAKYGUfZQoaAWMB1JldHVybnOUaAddlGg/jAdSZXR1cm5zlIWUgZR9lChoBWgGaCBqJTsAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq6xcAAGgdaB5oH0sAaCBqIjsAAHViavwXAAApgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMLmRpZmZpY3VsdHkgLS0gQ29tcHV0ZWQgZGlmZmljdWx0eSBmb3IgYSBibG9jay6UaAddlChqRhgAACmBlH2UKGgFjA4qKmRpZmZpY3VsdHkqKpRoB12UaD+MCmRpZmZpY3VsdHmUhZSBlH2UKGgFaAZoIGo6OwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGpFGAAAaB1OaB9OaCBqNjsAAHViaD+MJSDigJMgQ29tcHV0ZWQgZGlmZmljdWx0eSBmb3IgYSBibG9jay6UhZSBlH2UKGgFaAZoIGo2OwAAaCFoA2gdaERoH0sAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1OaB9OaCBqMzsAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq+xcAAGgdTmgfTmggaiI7AAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcauYXAABoHU5oH05oIGouOgAAdWJq5xcAACmBlH2UKGgFaAZoB12UKGrsFwAAKYGUfZQoaAWMC1JldHVybiB0eXBllGgHXZRoP4wLUmV0dXJuIHR5cGWUhZSBlH2UKGgFaAZoIGphOwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGrrFwAAaB1oHmgfSwBoIGpeOwAAdWJq/BcAACmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYwYZXRoZXJldW0uYmFzZV90eXBlcy5VaW50lGgHXZRq/wYAACmBlH2UKGgFjBpgZXRoZXJldW0uYmFzZV90eXBlcy5VaW50YJRoB12UaD+MGGV0aGVyZXVtLmJhc2VfdHlwZXMuVWludJSFlIGUfZQoaAVoBmgganY7AABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcav4GAABoHU5oH05oIGpyOwAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1OaB9OaCBqbzsAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq+xcAAGgdTmgfTmggal47AAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcauYXAABoHU5oH05oIGouOgAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGrhFwAAaB1OaB9OaCBqlTkAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqPxEAAGgdaB5oH05oIGrxOAAAdWJlaA59lChoEF2UaBNdlChqjjkAAIwIZnVuY3Rpb26UZWgVXZRoF12UaBldlIwGZG9tYWlulGqOOQAAjAdvYmp0eXBllGqlOwAAjAhkZXNjdHlwZZRqpTsAAIwHbm9pbmRleJSJdWgcahERAABoHU5oH05oIGrVOAAAdWJqVhEAACmBlH2UKGgFWI0EAABkZWYgY2FsY3VsYXRlX2Jsb2NrX2RpZmZpY3VsdHkoCiAgICBibG9ja19udW1iZXI6IFVpbnQsCiAgICBibG9ja190aW1lc3RhbXA6IFUyNTYsCiAgICBwYXJlbnRfdGltZXN0YW1wOiBVMjU2LAogICAgcGFyZW50X2RpZmZpY3VsdHk6IFVpbnQsCiAgICBwYXJlbnRfaGFzX29tbWVyczogYm9vbCwKKSAtPiBVaW50OgogICAgb2Zmc2V0ID0gKAogICAgICAgIGludChwYXJlbnRfZGlmZmljdWx0eSkKICAgICAgICAvLyAyMDQ4CiAgICAgICAgKiBtYXgoCiAgICAgICAgICAgICgyIGlmIHBhcmVudF9oYXNfb21tZXJzIGVsc2UgMSkKICAgICAgICAgICAgLSBpbnQoYmxvY2tfdGltZXN0YW1wIC0gcGFyZW50X3RpbWVzdGFtcCkgLy8gOSwKICAgICAgICAgICAgLTk5LAogICAgICAgICkKICAgICkKICAgIGRpZmZpY3VsdHkgPSBpbnQocGFyZW50X2RpZmZpY3VsdHkpICsgb2Zmc2V0CiAgICAjIEhpc3RvcmljYWwgTm90ZTogVGhlIGRpZmZpY3VsdHkgYm9tYiB3YXMgbm90IHByZXNlbnQgaW4gRXRoZXJldW0gYXQgdGhlCiAgICAjIHN0YXJ0IG9mIEZyb250aWVyLCBidXQgd2FzIGFkZGVkIHNob3J0bHkgYWZ0ZXIgbGF1bmNoLiBIb3dldmVyIHNpbmNlIHRoZQogICAgIyBib21iIGhhcyBubyBlZmZlY3QgcHJpb3IgdG8gYmxvY2sgMjAwMDAwIHdlIHByZXRlbmQgaXQgZXhpc3RlZCBmcm9tCiAgICAjIGdlbmVzaXMuCiAgICAjIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZXRoZXJldW0vZ28tZXRoZXJldW0vcHVsbC8xNTg4CiAgICBudW1fYm9tYl9wZXJpb2RzID0gKChpbnQoYmxvY2tfbnVtYmVyKSAtIEJPTUJfREVMQVlfQkxPQ0tTKSAvLyAxMDAwMDApIC0gMgogICAgaWYgbnVtX2JvbWJfcGVyaW9kcyA+PSAwOgogICAgICAgIGRpZmZpY3VsdHkgKz0gMioqbnVtX2JvbWJfcGVyaW9kcwoKICAgICMgU29tZSBjbGllbnRzIHJhaXNlIHRoZSBkaWZmaWN1bHR5IHRvIGBNSU5JTVVNX0RJRkZJQ1VMVFlgIHByaW9yIHRvIGFkZGluZwogICAgIyB0aGUgYm9tYi4gVGhpcyBidWcgZG9lcyBub3QgbWF0dGVyIGJlY2F1c2UgdGhlIGRpZmZpY3VsdHkgaXMgYWx3YXlzIG11Y2gKICAgICMgZ3JlYXRlciB0aGFuIGBNSU5JTVVNX0RJRkZJQ1VMVFlgIG9uIE1haW5uZXQuCiAgICByZXR1cm4gVWludChtYXgoZGlmZmljdWx0eSwgTUlOSU1VTV9ESUZGSUNVTFRZKSkKlGgHXZRoP1iNBAAAZGVmIGNhbGN1bGF0ZV9ibG9ja19kaWZmaWN1bHR5KAogICAgYmxvY2tfbnVtYmVyOiBVaW50LAogICAgYmxvY2tfdGltZXN0YW1wOiBVMjU2LAogICAgcGFyZW50X3RpbWVzdGFtcDogVTI1NiwKICAgIHBhcmVudF9kaWZmaWN1bHR5OiBVaW50LAogICAgcGFyZW50X2hhc19vbW1lcnM6IGJvb2wsCikgLT4gVWludDoKICAgIG9mZnNldCA9ICgKICAgICAgICBpbnQocGFyZW50X2RpZmZpY3VsdHkpCiAgICAgICAgLy8gMjA0OAogICAgICAgICogbWF4KAogICAgICAgICAgICAoMiBpZiBwYXJlbnRfaGFzX29tbWVycyBlbHNlIDEpCiAgICAgICAgICAgIC0gaW50KGJsb2NrX3RpbWVzdGFtcCAtIHBhcmVudF90aW1lc3RhbXApIC8vIDksCiAgICAgICAgICAgIC05OSwKICAgICAgICApCiAgICApCiAgICBkaWZmaWN1bHR5ID0gaW50KHBhcmVudF9kaWZmaWN1bHR5KSArIG9mZnNldAogICAgIyBIaXN0b3JpY2FsIE5vdGU6IFRoZSBkaWZmaWN1bHR5IGJvbWIgd2FzIG5vdCBwcmVzZW50IGluIEV0aGVyZXVtIGF0IHRoZQogICAgIyBzdGFydCBvZiBGcm9udGllciwgYnV0IHdhcyBhZGRlZCBzaG9ydGx5IGFmdGVyIGxhdW5jaC4gSG93ZXZlciBzaW5jZSB0aGUKICAgICMgYm9tYiBoYXMgbm8gZWZmZWN0IHByaW9yIHRvIGJsb2NrIDIwMDAwMCB3ZSBwcmV0ZW5kIGl0IGV4aXN0ZWQgZnJvbQogICAgIyBnZW5lc2lzLgogICAgIyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2V0aGVyZXVtL2dvLWV0aGVyZXVtL3B1bGwvMTU4OAogICAgbnVtX2JvbWJfcGVyaW9kcyA9ICgoaW50KGJsb2NrX251bWJlcikgLSBCT01CX0RFTEFZX0JMT0NLUykgLy8gMTAwMDAwKSAtIDIKICAgIGlmIG51bV9ib21iX3BlcmlvZHMgPj0gMDoKICAgICAgICBkaWZmaWN1bHR5ICs9IDIqKm51bV9ib21iX3BlcmlvZHMKCiAgICAjIFNvbWUgY2xpZW50cyByYWlzZSB0aGUgZGlmZmljdWx0eSB0byBgTUlOSU1VTV9ESUZGSUNVTFRZYCBwcmlvciB0byBhZGRpbmcKICAgICMgdGhlIGJvbWIuIFRoaXMgYnVnIGRvZXMgbm90IG1hdHRlciBiZWNhdXNlIHRoZSBkaWZmaWN1bHR5IGlzIGFsd2F5cyBtdWNoCiAgICAjIGdyZWF0ZXIgdGhhbiBgTUlOSU1VTV9ESUZGSUNVTFRZYCBvbiBNYWlubmV0LgogICAgcmV0dXJuIFVpbnQobWF4KGRpZmZpY3VsdHksIE1JTklNVU1fRElGRklDVUxUWSkpCpSFlIGUfZQoaAVoBmggaq07AABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAZzb3VyY2WUjE0vaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL3NyYy9ldGhlcmV1bS9sb25kb24vc3BlYy5weZSMCXhtbDpzcGFjZZRqoAUAAIwFZm9yY2WUiYwIbGFuZ3VhZ2WUjAZweXRob26UjA5oaWdobGlnaHRfYXJnc5R9lGptEQAASwFzjAdsaW5lbm9zlIl1aBxqVREAAGgdaB5oH01CA2ggatU4AAB1YmVoDn2UKGgQXZRqTAUAAGFoE12UaBVdlIwaY2FsY3VsYXRlX2Jsb2NrX2RpZmZpY3VsdHmUYWgXXZRoGV2UdWgcaDNoHWgeaB9NHQNoIGrgEAAAaCFoA3ViZWgOfZQoaBBdlGoxAQAAYWgTXZRoFV2UjA5tb2R1bGUgZGV0YWlsc5RhaBddlGgZXZR1aBxoM2gdaB5oH0tNaCBoNWghaAN1YmVoDn2UKGgQXZSMFmV0aGVyZXVtLXNwZWNpZmljYXRpb26UYWgTXZRoFV2UjBZldGhlcmV1bSBzcGVjaWZpY2F0aW9ulGFoF12UaBldlHVoHGgzaB1oHmgfSwRoIGgDaCFoA3ViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMBnNvdXJjZZRoRHVoHGgBjA5jdXJyZW50X3NvdXJjZZRoRIwMY3VycmVudF9saW5llEsAjAhzZXR0aW5nc5SMEWRvY3V0aWxzLmZyb250ZW5klIwGVmFsdWVzlJOUKYGUfZQojAxyZXBvcnRfbGV2ZWyUSwKMCmhhbHRfbGV2ZWyUSwSMEWV4aXRfc3RhdHVzX2xldmVslEsFjAVkZWJ1Z5ROjA53YXJuaW5nX3N0cmVhbZROjAl0cmFjZWJhY2uUTowPb3V0cHV0X2VuY29kaW5nlIwFdXRmLTiUjB1vdXRwdXRfZW5jb2RpbmdfZXJyb3JfaGFuZGxlcpSMEXhtbGNoYXJyZWZyZXBsYWNllIwOZXJyb3JfZW5jb2RpbmeUjAV1dGYtOJSMHGVycm9yX2VuY29kaW5nX2Vycm9yX2hhbmRsZXKUjBBiYWNrc2xhc2hyZXBsYWNllIwTcmVjb3JkX2RlcGVuZGVuY2llc5SMDmRvY3V0aWxzLnV0aWxzlIwORGVwZW5kZW5jeUxpc3SUk5QpgZR9lCiMBGxpc3SUXZSMBGZpbGWUTnVijAZjb25maWeUTowNZHVtcF9zZXR0aW5nc5ROjA5kdW1wX2ludGVybmFsc5ROjA9kdW1wX3RyYW5zZm9ybXOUTowPZHVtcF9wc2V1ZG9feG1slE6MEGV4cG9zZV9pbnRlcm5hbHOUTowOc3RyaWN0X3Zpc2l0b3KUTowPX2Rpc2FibGVfY29uZmlnlE6MB19zb3VyY2WUTowMX2Rlc3RpbmF0aW9ulIwyZG9jL2RpZmZzL2xvbmRvbl9hcnJvd19nbGFjaWVyL3NwZWMvaW5kZXgucGlja2xlNjSUjA1fY29uZmlnX2ZpbGVzlF2UjBFsaW5lX2xlbmd0aF9saW1pdJRNECeMCXRhYl93aWR0aJRLCIwQc3ludGF4X2hpZ2hsaWdodJSMBGxvbmeUjAxzbWFydF9xdW90ZXOUiYwTc21hcnRxdW90ZXNfbG9jYWxlc5ROjB1jaGFyYWN0ZXJfbGV2ZWxfaW5saW5lX21hcmt1cJSJjAZ3cml0ZXKUjAN4bWyUjBljb21wYXJlX3NlY3Rpb25zX2J5X25hbWVzlEsBjAxkdW1wX3JzdGRpZmaUTowFX2JvdGiUfZQoaDhOjAlnZW5lcmF0b3KUTowJZGF0ZXN0YW1wlE6MC3NvdXJjZV9saW5rlE6MCnNvdXJjZV91cmyUTowNdG9jX2JhY2tsaW5rc5RqCQYAAIwSZm9vdG5vdGVfYmFja2xpbmtzlEsBjA1zZWN0bnVtX3hmb3JtlEsBjA5kb2N0aXRsZV94Zm9ybZRLAYwNZG9jaW5mb194Zm9ybZRLAYwSc2VjdHN1YnRpdGxlX3hmb3JtlEsAjA5zdHJpcF9jb21tZW50c5ROjA5pbnB1dF9lbmNvZGluZ5ROjBxpbnB1dF9lbmNvZGluZ19lcnJvcl9oYW5kbGVylIwGc3RyaWN0lIwNbGFuZ3VhZ2VfY29kZZSMAmVulIwOcGVwX3JlZmVyZW5jZXOUTowMcGVwX2Jhc2VfdXJslIwfaHR0cDovL3d3dy5weXRob24ub3JnL2Rldi9wZXBzL5SMFXBlcF9maWxlX3VybF90ZW1wbGF0ZZSMCHBlcC0lMDRklIwOcmZjX3JlZmVyZW5jZXOUTowMcmZjX2Jhc2VfdXJslIwbaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvlIwddHJpbV9mb290bm90ZV9yZWZlcmVuY2Vfc3BhY2WUTowWZmlsZV9pbnNlcnRpb25fZW5hYmxlZJRLAYwLcmF3X2VuYWJsZWSUSwGMDmF1dG9faWRfcHJlZml4lIwCaWSUjAlpZF9wcmVmaXiUaAaMG3N0cmlwX2VsZW1lbnRzX3dpdGhfY2xhc3Nlc5ROjA1zdHJpcF9jbGFzc2VzlE51jARib3RolH2UjApfb3B0aW9uc1RvlIwFX2JvdGiUjAtfb2xkX3NvdXJjZZSMTy9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3MvLnRveC9kb2NzL3N0YWdlMF9vdXQvYXV0b2FwaS+UjAtfbmV3X3NvdXJjZZSMCWRvYy9kaWZmc5RqKDwAAGopPAAAjBZpZ25vcmVfaW5fc2VjdGlvbl9uYW1llF2UKIwGbG9uZG9ulIwFYXJyb3eUjAdnbGFjaWVylGV1YowIcmVwb3J0ZXKUTowQaW5kaXJlY3RfdGFyZ2V0c5RdlIwRc3Vic3RpdHV0aW9uX2RlZnOUfZSMEnN1YnN0aXR1dGlvbl9uYW1lc5R9lIwIcmVmbmFtZXOUfZSMBnJlZmlkc5R9lIwHbmFtZWlkc5R9lIwJbmFtZXR5cGVzlH2UaBB9lIwNZm9vdG5vdGVfcmVmc5R9lIwNY2l0YXRpb25fcmVmc5R9lIwNYXV0b2Zvb3Rub3Rlc5RdlIwRYXV0b2Zvb3Rub3RlX3JlZnOUXZSMEHN5bWJvbF9mb290bm90ZXOUXZSMFHN5bWJvbF9mb290bm90ZV9yZWZzlF2UjAlmb290bm90ZXOUXZSMCWNpdGF0aW9uc5RdlIwSYXV0b2Zvb3Rub3RlX3N0YXJ0lEsBjBVzeW1ib2xfZm9vdG5vdGVfc3RhcnSUSwCMCmlkX2NvdW50ZXKUjAtjb2xsZWN0aW9uc5SMB0NvdW50ZXKUk5R9lIWUUpSMDnBhcnNlX21lc3NhZ2VzlF2UjBJ0cmFuc2Zvcm1fbWVzc2FnZXOUXZSMC3RyYW5zZm9ybWVylE6MC2luY2x1ZGVfbG9nlF2UjApkZWNvcmF0aW9ulE5oIWgDdWIu