gASVGFYAAAAAAACMDmRvY3V0aWxzLm5vZGVzlIwIZG9jdW1lbnSUk5QpgZR9lCiMCXJhd3NvdXJjZZSMAJSMCGNoaWxkcmVulF2UKGgAjAZ0YXJnZXSUk5QpgZR9lChoBWgGaAddlIwKYXR0cmlidXRlc5R9lCiMA2lkc5RdlIw0bW9kdWxlLWV0aGVyZXVtLm11aXJfZ2xhY2llci52bS5pbnN0cnVjdGlvbnMuc3RvcmFnZZRhjAdjbGFzc2VzlF2UjAVuYW1lc5RdlIwIZHVwbmFtZXOUXZSMCGJhY2tyZWZzlF2UjAVpc21vZJSIdYwHdGFnbmFtZZRoCYwGc291cmNllIx1L2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9tdWlyX2dsYWNpZXIvdm0vaW5zdHJ1Y3Rpb25zL3N0b3JhZ2UvaW5kZXgucnN0lIwEbGluZZRLAYwGcGFyZW50lGgDjAlfZG9jdW1lbnSUaAN1YowPc3BoaW54LmFkZG5vZGVzlIwFaW5kZXiUk5QpgZR9lChoBWgGaAddlGgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMB2VudHJpZXOUXZQojARwYWlylIw1bW9kdWxlOyBldGhlcmV1bS5tdWlyX2dsYWNpZXIudm0uaW5zdHJ1Y3Rpb25zLnN0b3JhZ2WUaBJoBk50lGF1aBxoI2gdaB5oH0sCaCBoA2ghaAN1YmgAjAdzZWN0aW9ulJOUKYGUfZQoaAVoBmgHXZQoaACMBXRpdGxllJOUKYGUfZQoaAWMM0V0aGVyZXVtIFZpcnR1YWwgTWFjaGluZSAoRVZNKSBTdG9yYWdlIEluc3RydWN0aW9uc5RoB12UaACMBFRleHSUk5SMM0V0aGVyZXVtIFZpcnR1YWwgTWFjaGluZSAoRVZNKSBTdG9yYWdlIEluc3RydWN0aW9uc5SFlIGUfZQoaAVoBmggaDpoIWgDaB2MXC9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3MvLnRveC9kb2NzL3N0YWdlMF9vdXQvYXV0b2FwaS8gPT4gZG9jL2RpZmZzlGgfSwB1YmFoDn2UKGgQXZRoE12U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KGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYyGL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9tdWlyX2dsYWNpZXIvdm0vaW5zdHJ1Y3Rpb25zL3N0b3JhZ2UvaW5kZXgucnN0OjMyOjxhdXRvc3VtbWFyeT6UaB9LAWggaiECAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcausBAABoHU5oH05oIGroAQAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGrmAQAAaB1OaB9OaCBq4wEAAHViaucBAAApgZR9lChoBWgGaAddlChq7AEAACmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYxEOm9iajpgc3N0b3JlIDxldGhlcmV1bS5tdWlyX2dsYWNpZXIudm0uaW5zdHJ1Y3Rpb25zLnN0b3JhZ2Uuc3N0b3JlPmCUaAddlGhuKYGUfZQoaAVoBmgHXZRq+AEAACmBlH2UKGgFakcCAABoB12UaD+MBnNzdG9yZZSFlIGUfZQoaAVoBmggakwCAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UKGoDAgAAjAJweZSMBnB5LW9iapRlaBVdlGgXXZRoGV2UdWgcavcBAABoHU5oH05oIGpJAgAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwIaW50ZXJuYWyUiIwFcmVmaWSUjDRldGhlcmV1bS5tdWlyX2dsYWNpZXIudm0uaW5zdHJ1Y3Rpb25zLnN0b3JhZ2Uuc3N0b3JllIwIcmVmdGl0bGWUjDRldGhlcmV1bS5tdWlyX2dsYWNpZXIudm0uaW5zdHJ1Y3Rpb25zLnN0b3JhZ2Uuc3N0b3JllHVoHGhtaB1OaB9OaCBqRQIAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdjIYvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL2RvYy9hdXRvYXBpL2V0aGVyZXVtL211aXJfZ2xhY2llci92bS9pbnN0cnVjdGlvbnMvc3RvcmFnZS9pbmRleC5yc3Q6MzI6PGF1dG9z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ZW50X3RhcmdldCwga2V5KQoKICAgIGlmIG9yaWdpbmFsX3ZhbHVlID09IGN1cnJlbnRfdmFsdWUgYW5kIGN1cnJlbnRfdmFsdWUgIT0gbmV3X3ZhbHVlOgogICAgICAgIGlmIG9yaWdpbmFsX3ZhbHVlID09IDA6CiAgICAgICAgICAgIGdhc19jb3N0ID0gR0FTX1NUT1JBR0VfU0VUCiAgICAgICAgZWxzZToKICAgICAgICAgICAgZ2FzX2Nvc3QgPSBHQVNfU1RPUkFHRV9VUERBVEUKICAgIGVsc2U6CiAgICAgICAgZ2FzX2Nvc3QgPSBHQVNfU0xPQUQKCiAgICBjaGFyZ2VfZ2FzKGV2bSwgZ2FzX2Nvc3QpCgogICAgIyBSZWZ1bmQgQ291bnRlciBDYWxjdWxhdGlvbgogICAgaWYgY3VycmVudF92YWx1ZSAhPSBuZXdfdmFsdWU6CiAgICAgICAgaWYgb3JpZ2luYWxfdmFsdWUgIT0gMCBhbmQgY3VycmVudF92YWx1ZSAhPSAwIGFuZCBuZXdfdmFsdWUgPT0gMDoKICAgICAgICAgICAgIyBTdG9yYWdlIGlzIGNsZWFyZWQgZm9yIHRoZSBmaXJzdCB0aW1lIGluIHRoZSB0cmFuc2FjdGlvbgogICAgICAgICAgICBldm0ucmVmdW5kX2NvdW50ZXIgKz0gaW50KEdBU19TVE9SQUdFX0NMRUFSX1JFRlVORCkKCiAgICAgICAgaWYgb3JpZ2luYWxfdmFsdWUgIT0gMCBhbmQgY3VycmVudF92YWx1ZSA9PSAwOgogICAgICAgICAgICAjIEdhcyByZWZ1bmQgaXNzdWVkIGVhcmxpZXIgdG8gYmUgcmV2ZXJzZWQKICAgICAgICAgICAgZXZtLnJlZnVuZF9jb3VudGVyIC09IGludChHQVNfU1RPUkFHRV9DTEVBUl9SRUZVTkQpCgogICAgICAgIGlmIG9yaWdpbmFsX3ZhbHVlID09IG5ld192YWx1ZToKICAgICAgICAgICAgIyBTdG9yYWdlIHNsb3QgYmVpbmcgcmVzdG9yZWQgdG8gaXRzIG9yaWdpbmFsIHZhbHVlCiAgICAgICAgICAgIGlmIG9yaWdpbmFsX3ZhbHVlID09IDA6CiAgICAgICAgICAgICAgICAjIFNsb3Qgd2FzIG9yaWdpbmFsbHkgZW1wdHkgYW5kIHdhcyBTRVQgZWFybGllcgogICAgICAgICAgICAgICAgZXZtLnJlZnVuZF9jb3VudGVyICs9IGludChHQVNfU1RPUkFHRV9TRVQgLSBHQVNfU0xPQUQpCiAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAjIFNsb3Qgd2FzIG9yaWdpbmFsbHkgbm9uLWVtcHR5IGFuZCB3YXMgVVBEQVRFRCBlYXJsaWVyCiAgICAgICAgICAgICAgICBldm0ucmVmdW5kX2NvdW50ZXIgKz0gaW50KEdBU19TVE9SQUdFX1VQREFURSAtIEdBU19TTE9BRCkKCiAgICAjIE9QRVJBVElPTgogICAgZW5zdXJlKG5vdCBldm0ubWVzc2FnZS5pc19zdGF0aWMsIFdyaXRlSW5TdGF0aWNDb250ZXh0KQogICAgc2V0X3N0b3JhZ2UoZXZtLmVudi5zdGF0ZSwgZXZtLm1lc3NhZ2UuY3VycmVudF90YXJnZXQsIGtleSwgbmV3X3ZhbHVlKQoKICAgICMgUFJPR1JBTSBDT1VOVEVSCiAgICBldm0ucGMgKz0gMQqUaAddlChoP1h2AQAAZGVmIHNzdG9yZShldm06IEV2bSkgLT4gTm9uZToKICAgICMgU1RBQ0sKICAgIGtleSA9IHBvcChldm0uc3RhY2spLnRvX2JlX2J5dGVzMzIoKQogICAgbmV3X3ZhbHVlID0gcG9wKGV2bS5zdGFjaykKCiAgICAjIEdBUwogICAgZW5zdXJlKGV2bS5nYXNfbGVmdCA+IEdBU19DQUxMX1NUSVBFTkQsIE91dE9mR2FzRXJyb3IpCgogICAgb3JpZ2luYWxfdmFsdWUgPSBnZXRfc3RvcmFnZV9vcmlnaW5hbCgKICAgICAgICBldm0uZW52LnN0YXRlLCBldm0ubWVzc2FnZS5jdXJyZW50X3RhcmdldCwga2V5CiAgICApCiAgICBjdXJyZW50X3ZhbHVlID0gZ2V0X3N0b3JhZ2UoZXZtLmVudi5zdGF0ZSwgZXZtLm1lc3NhZ2UuY3VycmVudF90YXJnZXQsIGtleSkKCiAgICCUhZSBlH2UKGgFaAZoIGrTBAAAaCFoA2gdaERoH0sAdWJqEwMAACmBlH2UKGgFaAZoB12UaD+MGGdhc19jb3N0ID0gVWludCgwKQoKICAgIJSFlIGUfZQoaAVoBmggatsEAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UjAxjaGFuZ2UtYWRkZWSUYWgVXZRoF12UaBldlHVoHGoSAwAAaCBq0wQAAGghaANoHWhEaB9LAHViaD+MA2lmIJSFlIGUfZQoaAVoBmggatMEAABoIWgDaB1oRGgfSwB1YmoTAwAAKYGUfZQoaAVoBmgHXZRoP4y4KGV2bS5tZXNzYWdlLmN1cnJlbnRfdGFyZ2V0LCBrZXkpIG5vdCBpbiBldm0uYWNjZXNzZWRfc3RvcmFnZV9rZXlzOgogICAgICAgIGV2bS5hY2Nlc3NlZF9zdG9yYWdlX2tleXMuYWRkKChldm0ubWVzc2FnZS5jdXJyZW50X3RhcmdldCwga2V5KSkKICAgICAgICBnYXNfY29zdCArPSBHQVNfQ09MRF9TTE9BRAoKICAgIGlmIJSFlIGUfZQoaAVoBmggau0EAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UjAxjaGFuZ2UtYWRkZWSUYWgVXZRoF12UaBldlHVoHGoSAwAAaCBq0wQAAGghaANoHWhEaB9LAHViaD+MdW9yaWdpbmFsX3ZhbHVlID09IGN1cnJlbnRfdmFsdWUgYW5kIGN1cnJlbnRfdmFsdWUgIT0gbmV3X3ZhbHVlOgogICAgICAgIGlmIG9yaWdpbmFsX3ZhbHVlID09IDA6CiAgICAgICAgICAgIGdhc19jb3N0IJSFlIGUfZQoaAVoBmggatMEAABoIWgDaB1oRGgfSwB1YmoTAwAAKYGUfZQoaAVoBmgHXZRoP4wBPZSFlIGUfZQoaAVoBmggav8EAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UjA9jaGFuZ2UtcmVwbGFjZWSUYWgVXZRoF12UaBldlHVoHGoSAwAAaCBq0wQAAGghaANoHWhEaB9LAHViahMDAAApgZR9lChoBWgGaAddlGg/jAIrPZSFlIGUfZQoaAVoBmggag0FAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UjBJjaGFuZ2UtcmVwbGFjZW1lbnSUYWgVXZRoF12UaBldlHVoHGoSAwAAaCBq0wQAAGghaANoHWhEaB9LAHViaD+MNCBHQVNfU1RPUkFHRV9TRVQKICAgICAgICBlbHNlOgogICAgICAgICAgICBnYXNfY29zdCCUhZSBlH2UKGgFaAZoIGrTBAAAaCFoA2gdaERoH0sAdWJqEwMAACmBlH2UKGgFaAZoB12UaD+MAT2UhZSBlH2UKGgFaAZoIGofBQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlIwPY2hhbmdlLXJlcGxhY2VklGFoFV2UaBddlGgZXZR1aBxqEgMAAGggatMEAABoIWgDaB1oRGgfSwB1YmoTAwAAKYGUfZQoaAVoBmgHXZRoP4wCKz2UhZSBlH2UKGgFaAZoIGotBQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlIwSY2hhbmdlLXJlcGxhY2VtZW50lGFoFV2UaBddlGgZXZR1aBxqEgMAAGggatMEAABoIWgDaB1oRGgfSwB1Ymg/jBggR0FTX1NUT1JBR0VfVVBEQVRFCiAgICCUhZSBlH2UKGgFaAZoIGrTBAAAaCFoA2gdaERoH0sAdWJqEwMAACmBlH2UKGgFaAZoB12UaD+MFS0gR0FTX0NPTERfU0xPQUQKICAgIJSFlIGUfZQoaAVoBmggaj8FAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UjAxjaGFuZ2UtYWRkZWSUYWgVXZRoF12UaBldlHVoHGoSAwAAaCBq0wQAAGghaANoHWhEaB9LAHViaD+MF2Vsc2U6CiAgICAgICAgZ2FzX2Nvc3QglIWUgZR9lChoBWgGaCBq0wQAAGghaANoHWhEaB9LAHViahMDAAApgZR9lChoBWgGaAddlGg/jAs9IEdBU19TTE9BRJSFlIGUfZQoaAVoBmggalEFAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UjA9jaGFuZ2UtcmVwbGFjZWSUYWgVXZRoF12UaBldlHVoHGoSAwAAaCBq0wQAAGghaANoHWhEaB9LAHViahMDAAApgZR9lChoBWgGaAddlGg/jBIrPSBHQVNfV0FSTV9BQ0NFU1OUhZSBlH2UKGgFaAZoIGpfBQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlIwSY2hhbmdlLXJlcGxhY2VtZW50lGFoFV2UaBddlGgZXZR1aBxqEgMAAGggatMEAABoIWgDaB1oRGgfSwB1Ymg/WO4CAAAKCiAgICBjaGFyZ2VfZ2FzKGV2bSwgZ2FzX2Nvc3QpCgogICAgIyBSZWZ1bmQgQ291bnRlciBDYWxjdWxhdGlvbgogICAgaWYgY3VycmVudF92YWx1ZSAhPSBuZXdfdmFsdWU6CiAgICAgICAgaWYgb3JpZ2luYWxfdmFsdWUgIT0gMCBhbmQgY3VycmVudF92YWx1ZSAhPSAwIGFuZCBuZXdfdmFsdWUgPT0gMDoKICAgICAgICAgICAgIyBTdG9yYWdlIGlzIGNsZWFyZWQgZm9yIHRoZSBmaXJzdCB0aW1lIGluIHRoZSB0cmFuc2FjdGlvbgogICAgICAgICAgICBldm0ucmVmdW5kX2NvdW50ZXIgKz0gaW50KEdBU19TVE9SQUdFX0NMRUFSX1JFRlVORCkKCiAgICAgICAgaWYgb3JpZ2luYWxfdmFsdWUgIT0gMCBhbmQgY3VycmVudF92YWx1ZSA9PSAwOgogICAgICAgICAgICAjIEdhcyByZWZ1bmQgaXNzdWVkIGVhcmxpZXIgdG8gYmUgcmV2ZXJzZWQKICAgICAgICAgICAgZXZtLnJlZnVuZF9jb3VudGVyIC09IGludChHQVNfU1RPUkFHRV9DTEVBUl9SRUZVTkQpCgogICAgICAgIGlmIG9yaWdpbmFsX3ZhbHVlID09IG5ld192YWx1ZToKICAgICAgICAgICAgIyBTdG9yYWdlIHNsb3QgYmVpbmcgcmVzdG9yZWQgdG8gaXRzIG9yaWdpbmFsIHZhbHVlCiAgICAgICAgICAgIGlmIG9yaWdpbmFsX3ZhbHVlID09IDA6CiAgICAgICAgICAgICAgICAjIFNsb3Qgd2FzIG9yaWdpbmFsbHkgZW1wdHkgYW5kIHdhcyBTRVQgZWFybGllcgogICAgICAgICAgICAgICAgZXZtLnJlZnVuZF9jb3VudGVyICs9IGludChHQVNfU1RPUkFHRV9TRVQgLSCUhZSBlH2UKGgFaAZoIGrTBAAAaCFoA2gdaERoH0sAdWJqEwMAACmBlH2UKGgFaAZoB12UaD+MCkdBU19TTE9BRCmUhZSBlH2UKGgFaAZoIGpxBQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlIwPY2hhbmdlLXJlcGxhY2VklGFoFV2UaBddlGgZXZR1aBxqEgMAAGggatMEAABoIWgDaB1oRGgfSwB1YmoTAwAAKYGUfZQoaAVoBmgHXZRoP4wQR0FTX1dBUk1fQUNDRVNTKZSFlIGUfZQoaAVoBmggan8FAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UjBJjaGFuZ2UtcmVwbGFjZW1lbnSUYWgVXZRoF12UaBldlHVoHGoSAwAAaCBq0wQAAGghaANoHWhEaB9LAHViaD+MgQogICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIyBTbG90IHdhcyBvcmlnaW5hbGx5IG5vbi1lbXB0eSBhbmQgd2FzIFVQREFURUQgZWFybGllcgogICAgICAgICAgICAgICAgZXZtLnJlZnVuZF9jb3VudGVyICs9IJSFlIGUfZQoaAVoBmggatMEAABoIWgDaB1oRGgfSwB1YmoTAwAAKYGUfZQoaAVoBmgHXZRoP4wWaW50KEdBU19TVE9SQUdFX1VQREFURZSFlIGUfZQoaAVoBmggapEFAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UjA9jaGFuZ2UtcmVwbGFjZWSUYWgVXZRoF12UaBldlHVoHGoSAwAAaCBq0wQAAGghaANoHWhEaB9LAHViahMDAAApgZR9lChoBWgGaAddlGg/jCtpbnQoCiAgICAgICAgICAgICAgICAgICAgR0FTX1NUT1JBR0VfVVBEQVRFlIWUgZR9lChoBWgGaCBqnwUAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZSMEmNoYW5nZS1yZXBsYWNlbWVudJRhaBVdlGgXXZRoGV2UdWgcahIDAABoIGrTBAAAaCFoA2gdaERoH0sAdWJoP4wDIC0glIWUgZR9lChoBWgGaCBq0wQAAGghaANoHWhEaB9LAHViahMDAAApgZR9lChoBWgGaAddlGg/jApHQVNfU0xPQUQplIWUgZR9lChoBWgGaCBqsQUAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZSMD2NoYW5nZS1yZXBsYWNlZJRhaBVdlGgXXZRoGV2UdWgcahIDAABoIGrTBAAAaCFoA2gdaERoH0sAdWJqEwMAACmBlH2UKGgFaAZoB12UaD+MMkdBU19DT0xEX1NMT0FEIC0gR0FTX1dBUk1fQUNDRVNTCiAgICAgICAgICAgICAgICAplIWUgZR9lChoBWgGaCBqvwUAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZSMEmNoYW5nZS1yZXBsYWNlbWVudJRhaBVdlGgXXZRoGV2UdWgcahIDAABoIGrTBAAAaCFoA2gdaERoH0sAdWJoP4zACgogICAgIyBPUEVSQVRJT04KICAgIGVuc3VyZShub3QgZXZtLm1lc3NhZ2UuaXNfc3RhdGljLCBXcml0ZUluU3RhdGljQ29udGV4dCkKICAgIHNldF9zdG9yYWdlKGV2bS5lbnYuc3RhdGUsIGV2bS5tZXNzYWdlLmN1cnJlbnRfdGFyZ2V0LCBrZXksIG5ld192YWx1ZSkKCiAgICAjIFBST0dSQU0gQ09VTlRFUgogICAgZXZtLnBjICs9IDEKlIWUgZR9lChoBWgGaCBq0wQAAGghaANoHWhEaB9LAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMBnNvdXJjZZSMZi9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3Mvc3JjL2V0aGVyZXVtL211aXJfZ2xhY2llci92bS9pbnN0cnVjdGlvbnMvc3RvcmFnZS5weZSMCXhtbDpzcGFjZZRqggEAAIwFZm9yY2WUiYwIbGFuZ3VhZ2WUjAZweXRob26UjA5oaWdobGlnaHRfYXJnc5R9lGoABAAASwFzjAdsaW5lbm9zlIl1aBxqtgMAAGgdaB5oH0tFaCBqCQQAAGghaAN1YmVoDn2UKGgQXZRqLgEAAGFoE12UaBVdlIwGc3N0b3JllGFoF12UaBldlHVoHGgzaB1oHmgfSzhoIGq5AgAAaCFoA3ViZWgOfZQoaBBdlGjtYWgTXZRoFV2UjA5tb2R1bGUgZGV0YWlsc5RhaBddlGgZXZR1aBxoM2gdaB5oH0siaCBoNWghaAN1YmVoDn2UKGgQXZSMMWV0aGVyZXVtLXZpcnR1YWwtbWFjaGluZS1ldm0tc3RvcmFnZS1pbnN0cnVjdGlvbnOUYWgTXZRoFV2UjDNldGhlcmV1bSB2aXJ0dWFsIG1hY2hpbmUgKGV2bSkgc3RvcmFnZSBpbnN0cnVjdGlvbnOUYWgXXZRoGV2UdWgcaDNoHWgeaB9LBGggaANoIWgDdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwGc291cmNllGhEdWgcaAGMDmN1cnJlbnRfc291cmNllGhEjAxjdXJyZW50X2xpbmWUSwCMCHNldHRpbmdzlIwRZG9jdXRpbHMuZnJvbnRlbmSUjAZWYWx1ZXOUk5QpgZR9lCiMDHJlcG9ydF9sZXZlbJRLAowKaGFsdF9sZXZlbJRLBIwRZXhpdF9zdGF0dXNfbGV2ZWyUSwWMBWRlYnVnlE6MDndhcm5pbmdfc3RyZWFtlE6MCXRyYWNlYmFja5ROjA9vdXRwdXRfZW5jb2RpbmeUjAV1dGYtOJSMHW91dHB1dF9lbmNvZGluZ19lcnJvcl9oYW5kbGVylIwReG1sY2hhcnJlZnJlcGxhY2WUjA5lcnJvcl9lbmNvZGluZ5SMBXV0Zi04lIwcZXJyb3JfZW5jb2RpbmdfZXJyb3JfaGFuZGxlcpSMEGJhY2tzbGFzaHJlcGxhY2WUjBNyZWNvcmRfZGVwZW5kZW5jaWVzlIwOZG9jdXRpbHMudXRpbHOUjA5EZXBlbmRlbmN5TGlzdJSTlCmBlH2UKIwEbGlzdJRdlIwEZmlsZZROdWKMBmNvbmZpZ5ROjA1kdW1wX3NldHRpbmdzlE6MDmR1bXBfaW50ZXJuYWxzlE6MD2R1bXBfdHJhbnNmb3Jtc5ROjA9kdW1wX3BzZXVkb194bWyUTowQZXhwb3NlX2ludGVybmFsc5ROjA5zdHJpY3RfdmlzaXRvcpROjA9fZGlzYWJsZV9jb25maWeUTowHX3NvdXJjZZROjAxfZGVzdGluYXRpb26UjERkb2MvZGlmZnMvbXVpcl9nbGFjaWVyX2Jlcmxpbi92bS9pbnN0cnVjdGlvbnMvc3RvcmFnZS9pbmRleC5waWNrbGU2NJSMDV9jb25maWdfZmlsZXOUXZSMEWxpbmVfbGVuZ3RoX2xpbWl0lE0QJ4wJdGFiX3dpZHRolEsIjBBzeW50YXhfaGlnaGxpZ2h0lIwEbG9uZ5SMDHNtYXJ0X3F1b3Rlc5SJjBNzbWFydHF1b3Rlc19sb2NhbGVzlE6MHWNoYXJhY3Rlcl9sZXZlbF9pbmxpbmVfbWFya3VwlImMBndyaXRlcpSMA3htbJSMGWNvbXBhcmVfc2VjdGlvbnNfYnlfbmFtZXOUSwGMDGR1bXBfcnN0ZGlmZpROjAVfYm90aJR9lChoOE6MCWdlbmVyYXRvcpROjAlkYXRlc3RhbXCUTowLc291cmNlX2xpbmuUTowKc291cmNlX3VybJROjA10b2NfYmFja2xpbmtzlGrrAQAAjBJmb290bm90ZV9iYWNrbGlua3OUSwGMDXNlY3RudW1feGZvcm2USwGMDmRvY3RpdGxlX3hmb3JtlEsBjA1kb2NpbmZvX3hmb3JtlEsBjBJzZWN0c3VidGl0bGVfeGZvcm2USwCMDnN0cmlwX2NvbW1lbnRzlE6MDmlucHV0X2VuY29kaW5nlE6MHGlucHV0X2VuY29kaW5nX2Vycm9yX2hhbmRsZXKUjAZzdHJpY3SUjA1sYW5ndWFnZV9jb2RllIwCZW6UjA5wZXBfcmVmZXJlbmNlc5ROjAxwZXBfYmFzZV91cmyUjB9odHRwOi8vd3d3LnB5dGhvbi5vcmcvZGV2L3BlcHMvlIwVcGVwX2ZpbGVfdXJsX3RlbXBsYXRllIwIcGVwLSUwNGSUjA5yZmNfcmVmZXJlbmNlc5ROjAxyZmNfYmFzZV91cmyUjBtodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC+UjB10cmltX2Zvb3Rub3RlX3JlZmVyZW5jZV9zcGFjZZROjBZmaWxlX2luc2VydGlvbl9lbmFibGVklEsBjAtyYXdfZW5hYmxlZJRLAYwOYXV0b19pZF9wcmVmaXiUjAJpZJSMCWlkX3ByZWZpeJRoBowbc3RyaXBfZWxlbWVudHNfd2l0aF9jbGFzc2VzlE6MDXN0cmlwX2NsYXNzZXOUTnWMBGJvdGiUfZSMCl9vcHRpb25zVG+UjAVfYm90aJSMC19vbGRfc291cmNllIxPL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy8udG94L2RvY3Mvc3RhZ2UwX291dC9hdXRvYXBpL5SMC19uZXdfc291cmNllIwJZG9jL2RpZmZzlGpEBgAAakUGAACMFmlnbm9yZV9pbl9zZWN0aW9uX25hbWWUXZQojARtdWlylIwHZ2xhY2llcpSMBmJlcmxpbpRldWKMCHJlcG9ydGVylE6MEGluZGlyZWN0X3RhcmdldHOUXZSMEXN1YnN0aXR1dGlvbl9kZWZzlH2UjBJzdWJzdGl0dXRpb25fbmFtZXOUfZSMCHJlZm5hbWVzlH2UjAZyZWZpZHOUfZSMB25hbWVpZHOUfZSMCW5hbWV0eXBlc5R9lGgQfZSMDWZvb3Rub3RlX3JlZnOUfZSMDWNpdGF0aW9uX3JlZnOUfZSMDWF1dG9mb290bm90ZXOUXZSMEWF1dG9mb290bm90ZV9yZWZzlF2UjBBzeW1ib2xfZm9vdG5vdGVzlF2UjBRzeW1ib2xfZm9vdG5vdGVfcmVmc5RdlIwJZm9vdG5vdGVzlF2UjAljaXRhdGlvbnOUXZSMEmF1dG9mb290bm90ZV9zdGFydJRLAYwVc3ltYm9sX2Zvb3Rub3RlX3N0YXJ0lEsAjAppZF9jb3VudGVylIwLY29sbGVjdGlvbnOUjAdDb3VudGVylJOUfZSFlFKUjA5wYXJzZV9tZXNzYWdlc5RdlIwSdHJhbnNmb3JtX21lc3NhZ2VzlF2UjAt0cmFuc2Zvcm1lcpROjAtpbmNsdWRlX2xvZ5RdlIwKZGVjb3JhdGlvbpROaCFoA3ViLg==