gAJjZG9jdXRpbHMubm9kZXMKZG9jdW1lbnQKcQEpgXECfXEDKFUKYXR0cmlidXRlc3EEfXEFKFUGc291cmNlWIYAAAAvdXNyL2xvY2FsL2dvb2dsZS9ob21lL2FwaWxsb3VkL3dlYnNpdGVfdXBkYXRlX2Rpci9weXRob25fZG9jL2JlYW0vc2Rrcy9weXRob24vdGFyZ2V0L2RvY3Mvc291cmNlL2FwYWNoZV9iZWFtLnR5cGVoaW50cy5kZWNvcmF0b3JzLnJzdHEGVQhkdXBuYW1lc3EHXVUHY2xhc3Nlc3EIXVUDaWRzcQldVQVuYW1lc3EKXVUIYmFja3JlZnNxC111VRBpbmRpcmVjdF90YXJnZXRzcQxdcQ1VEHN5bWJvbF9mb290bm90ZXNxDl1xD1UNYXV0b2Zvb3Rub3Rlc3EQXXERVQduYW1laWRzcRJ9cRMoWDIAAABhcGFjaGVfYmVhbS50eXBlaGludHMuZGVjb3JhdG9ycy53aXRoX291dHB1dF90eXBlc3EUaBRYPwAAAGFwYWNoZV9iZWFtLnR5cGVoaW50cy5kZWNvcmF0b3JzLldpdGhUeXBlSGludHMud2l0aF9pbnB1dF90eXBlc3EVaBVYPQAAAGFwYWNoZV9iZWFtLnR5cGVoaW50cy5kZWNvcmF0b3JzLldpdGhUeXBlSGludHMuZ2V0X3R5cGVfaGludHNxFmgWWC8AAABhcGFjaGVfYmVhbS50eXBlaGludHMuZGVjb3JhdG9ycy5UeXBlQ2hlY2tFcnJvcnEXaBdYLgAAAGFwYWNoZV9iZWFtLnR5cGVoaW50cy5kZWNvcmF0b3JzLldpdGhUeXBlSGludHNxGGgYWEEAAABhcGFjaGVfYmVhbS50eXBlaGludHMuZGVjb3JhdG9ycy5XaXRoVHlwZUhpbnRzLmRlZmF1bHRfdHlwZV9oaW50c3EZaBlYJwAAAGFwYWNoZV9iZWFtLnR5cGVoaW50cy5kZWNvcmF0b3JzIG1vZHVsZXEaVSdhcGFjaGUtYmVhbS10eXBlaGludHMtZGVjb3JhdG9ycy1tb2R1bGVxG1gxAAAAYXBhY2hlX2JlYW0udHlwZWhpbnRzLmRlY29yYXRvcnMud2l0aF9pbnB1dF90eXBlc3EcaBxYQAAAAGFwYWNoZV9iZWFtLnR5cGVoaW50cy5kZWNvcmF0b3JzLldpdGhUeXBlSGludHMud2l0aF9vdXRwdXRfdHlwZXNxHWgddVUMY3VycmVudF9saW5lcR5OVQ5wYXJzZV9tZXNzYWdlc3EfXXEgVQhyZWZuYW1lc3EhfXEiVQhjaGlsZHJlbnEjXXEkY2RvY3V0aWxzLm5vZGVzCnNlY3Rpb24KcSUpgXEmfXEnKFUIZG9jdW1lbnRxKGgCaCNdcSkoY2RvY3V0aWxzLm5vZGVzCnRpdGxlCnEqKYFxK31xLChoKGgCaCNdcS1jZG9jdXRpbHMubm9kZXMKVGV4dApxLlgnAAAAYXBhY2hlX2JlYW0udHlwZWhpbnRzLmRlY29yYXRvcnMgbW9kdWxlcS+FgXEwfXExKFUJcmF3c291cmNlcTJYKgAAAGFwYWNoZVxfYmVhbVwudHlwZWhpbnRzXC5kZWNvcmF0b3JzIG1vZHVsZXEzaChoAlUGc291cmNlcTROVQZwYXJlbnRxNWgrVQRsaW5lcTZOdWJhaDZLAlUHdGFnbmFtZXE3VQV0aXRsZXE4aDRoBmgEfXE5KGgKXWgHXWgJXWgLXWgIXXVoMlgqAAAAYXBhY2hlXF9iZWFtXC50eXBlaGludHNcLmRlY29yYXRvcnMgbW9kdWxlcTpoNWgmdWJjc3BoaW54LmFkZG5vZGVzCmluZGV4CnE7KYFxPH1xPShoKGgCaCNdaDZLAWg3VQVpbmRleHE+aDRYoAAAAC91c3IvbG9jYWwvZ29vZ2xlL2hvbWUvYXBpbGxvdWQvd2Vic2l0ZV91cGRhdGVfZGlyL3B5dGhvbl9kb2MvYmVhbS9zZGtzL3B5dGhvbi9hcGFjaGVfYmVhbS90eXBlaGludHMvZGVjb3JhdG9ycy5weTpkb2NzdHJpbmcgb2YgYXBhY2hlX2JlYW0udHlwZWhpbnRzLmRlY29yYXRvcnNxP2gEfXFAKGgHXWgIXWgJXVUHZW50cmllc11xQShVBnNpbmdsZXFCWCkAAABhcGFjaGVfYmVhbS50eXBlaGludHMuZGVjb3JhdG9ycyAobW9kdWxlKVgnAAAAbW9kdWxlLWFwYWNoZV9iZWFtLnR5cGVoaW50cy5kZWNvcmF0b3JzVQBOdHFDYWgKXWgLXXVoMlUAaDVoJnViY2RvY3V0aWxzLm5vZGVzCnBhcmFncmFwaApxRCmBcUV9cUYoaChoAmgjXXFHaC5YTQAAAFR5cGUgaGludGluZyBkZWNvcmF0b3JzIGFsbG93aW5nIHN0YXRpYyBvciBydW50aW1lIHR5cGUtY2hlY2tpbmcgZm9yIHRoZSBTREsucUiFgXFJfXFKKGgyWE0AAABUeXBlIGhpbnRpbmcgZGVjb3JhdG9ycyBhbGxvd2luZyBzdGF0aWMgb3IgcnVudGltZSB0eXBlLWNoZWNraW5nIGZvciB0aGUgU0RLLnFLaChoAmg0Tmg1aEVoNk51YmFoNWgmaDdVCXBhcmFncmFwaHFMaDRYoAAAAC91c3IvbG9jYWwvZ29vZ2xlL2hvbWUvYXBpbGxvdWQvd2Vic2l0ZV91cGRhdGVfZGlyL3B5dGhvbl9kb2MvYmVhbS9zZGtzL3B5dGhvbi9hcGFjaGVfYmVhbS90eXBlaGludHMvZGVjb3JhdG9ycy5weTpkb2NzdHJpbmcgb2YgYXBhY2hlX2JlYW0udHlwZWhpbnRzLmRlY29yYXRvcnNxTWgEfXFOKGgKXWgHXWgJXWgLXWgIXXVoMmhLaDZLAXViaEQpgXFPfXFQKGgoaAJoI11xUWguWKQAAABUaGlzIG1vZHVsZSBkZWZpbmVzIGRlY29yYXRvcnMgd2hpY2ggdXRpbGl6ZSB0aGUgdHlwZS1oaW50cyBkZWZpbmVkIGluCuKAmHR5cGVfaGludHMucHnigJkgdG8gYWxsb3cgYW5ub3RhdGlvbiBvZiB0aGUgdHlwZXMgb2YgZnVuY3Rpb24gYXJndW1lbnRzIGFuZApyZXR1cm4gdmFsdWVzLnFShYFxU31xVChoMligAAAAVGhpcyBtb2R1bGUgZGVmaW5lcyBkZWNvcmF0b3JzIHdoaWNoIHV0aWxpemUgdGhlIHR5cGUtaGludHMgZGVmaW5lZCBpbgondHlwZV9oaW50cy5weScgdG8gYWxsb3cgYW5ub3RhdGlvbiBvZiB0aGUgdHlwZXMgb2YgZnVuY3Rpb24gYXJndW1lbnRzIGFuZApyZXR1cm4gdmFsdWVzLnFVaChoAmg0Tmg1aE9oNk51YmFoNWgmaDdoTGg0aE1oBH1xVihoCl1oB11oCV1oC11oCF11aDJoVWg2SwN1YmhEKYFxV31xWChoKGgCaCNdcVloLlj8AAAAVHlwZS1oaW50cyBmb3IgZnVuY3Rpb25zIGFyZSBhbm5vdGF0ZWQgdXNpbmcgdHdvIHNlcGFyYXRlIGRlY29yYXRvcnMuIE9uZSBpcyBmb3IKdHlwZS1oaW50aW5nIHRoZSB0eXBlcyBvZiBmdW5jdGlvbiBhcmd1bWVudHMsIHRoZSBvdGhlciBmb3IgdHlwZS1oaW50aW5nIHRoZQpmdW5jdGlvbiByZXR1cm4gdmFsdWUuIFR5cGUtaGludHMgY2FuIGVpdGhlciBiZSBzcGVjaWZpZWQgaW4gdGhlIGZvcm0gb2YKcG9zaXRpb25hbCBhcmd1bWVudHM6cVqFgXFbfXFcKGgyWPwAAABUeXBlLWhpbnRzIGZvciBmdW5jdGlvbnMgYXJlIGFubm90YXRlZCB1c2luZyB0d28gc2VwYXJhdGUgZGVjb3JhdG9ycy4gT25lIGlzIGZvcgp0eXBlLWhpbnRpbmcgdGhlIHR5cGVzIG9mIGZ1bmN0aW9uIGFyZ3VtZW50cywgdGhlIG90aGVyIGZvciB0eXBlLWhpbnRpbmcgdGhlCmZ1bmN0aW9uIHJldHVybiB2YWx1ZS4gVHlwZS1oaW50cyBjYW4gZWl0aGVyIGJlIHNwZWNpZmllZCBpbiB0aGUgZm9ybSBvZgpwb3NpdGlvbmFsIGFyZ3VtZW50czpoKGgCaDROaDVoV2g2TnViYWg1aCZoN2hMaDRoTWgEfXFdKGgKXWgHXWgJXWgLXWgIXXVoMlj9AAAAVHlwZS1oaW50cyBmb3IgZnVuY3Rpb25zIGFyZSBhbm5vdGF0ZWQgdXNpbmcgdHdvIHNlcGFyYXRlIGRlY29yYXRvcnMuIE9uZSBpcyBmb3IKdHlwZS1oaW50aW5nIHRoZSB0eXBlcyBvZiBmdW5jdGlvbiBhcmd1bWVudHMsIHRoZSBvdGhlciBmb3IgdHlwZS1oaW50aW5nIHRoZQpmdW5jdGlvbiByZXR1cm4gdmFsdWUuIFR5cGUtaGludHMgY2FuIGVpdGhlciBiZSBzcGVjaWZpZWQgaW4gdGhlIGZvcm0gb2YKcG9zaXRpb25hbCBhcmd1bWVudHM6Omg2Swd1YmNkb2N1dGlscy5ub2RlcwpsaXRlcmFsX2Jsb2NrCnFeKYFxX31xYChoKGgCaCNdcWFoLlg5AAAAQHdpdGhfaW5wdXRfdHlwZXMoaW50LCBpbnQpCmRlZiBhZGQoYSwgYik6CiAgcmV0dXJuIGEgKyBicWKFgXFjfXFkKGgyVQBoNWhfdWJhaDZLD2g3VQ1saXRlcmFsX2Jsb2NrcWVoNGhNaAR9cWYoaAddaAhdaAldVQl4bWw6c3BhY2VxZ1UIcHJlc2VydmVxaGgKXWgLXXVoMlg5AAAAQHdpdGhfaW5wdXRfdHlwZXMoaW50LCBpbnQpCmRlZiBhZGQoYSwgYik6CiAgcmV0dXJuIGEgKyBiaDVoJnViaEQpgXFpfXFqKGgoaAJoI11xa2guWBIAAABLZXl3b3JkIGFyZ3VtZW50czpxbIWBcW19cW4oaDJYEgAAAEtleXdvcmQgYXJndW1lbnRzOmgoaAJoNE5oNWhpaDZOdWJhaDVoJmg3aExoNGhNaAR9cW8oaApdaAddaAldaAtdaAhddWgyWBMAAABLZXl3b3JkIGFyZ3VtZW50czo6cXBoNksQdWJoXimBcXF9cXIoaChoAmgjXXFzaC5YPQAAAEB3aXRoX2lucHV0X3R5cGVzKGE9aW50LCBiPWludCkKZGVmIGFkZChhLCBiKToKICByZXR1cm4gYSArIGJxdIWBcXV9cXYoaDJVAGg1aHF1YmFoNksVaDdoZWg0aE1oBH1xdyhoB11oCF1oCV1oZ2hoaApdaAtddWgyWD0AAABAd2l0aF9pbnB1dF90eXBlcyhhPWludCwgYj1pbnQpCmRlZiBhZGQoYSwgYik6CiAgcmV0dXJuIGEgKyBiaDVoJnViaEQpgXF4fXF5KGgoaAJoI11xemguWBYAAABPciBldmVuIGEgbWl4IG9mIGJvdGg6cXuFgXF8fXF9KGgyWBYAAABPciBldmVuIGEgbWl4IG9mIGJvdGg6aChoAmg0Tmg1aHhoNk51YmFoNWgmaDdoTGg0aE1oBH1xfihoCl1oB11oCV1oC11oCF11aDJYFwAAAE9yIGV2ZW4gYSBtaXggb2YgYm90aDo6cX9oNksWdWJoXimBcYB9cYEoaChoAmgjXXGCaC5YOwAAAEB3aXRoX2lucHV0X3R5cGVzKGludCwgYj1pbnQpCmRlZiBhZGQoYSwgYik6CiAgcmV0dXJuIGEgKyBicYOFgXGEfXGFKGgyVQBoNWiAdWJhaDZLG2g3aGVoNGhNaAR9cYYoaAddaAhdaAldaGdoaGgKXWgLXXVoMlg7AAAAQHdpdGhfaW5wdXRfdHlwZXMoaW50LCBiPWludCkKZGVmIGFkZChhLCBiKToKICByZXR1cm4gYSArIGJoNWgmdWJoRCmBcYd9cYgoaChoAmgjXXGJaC5YLgAAAEV4YW1wbGUgdXNhZ2UgZm9yIHR5cGUtaGludGluZyBhcmd1bWVudHMgb25seTpxioWBcYt9cYwoaDJYLgAAAEV4YW1wbGUgdXNhZ2UgZm9yIHR5cGUtaGludGluZyBhcmd1bWVudHMgb25seTpoKGgCaDROaDVoh2g2TnViYWg1aCZoN2hMaDRoTWgEfXGNKGgKXWgHXWgJXWgLXWgIXXVoMlgvAAAARXhhbXBsZSB1c2FnZSBmb3IgdHlwZS1oaW50aW5nIGFyZ3VtZW50cyBvbmx5Ojpxjmg2Sxx1YmheKYFxj31xkChoKGgCaCNdcZFoLlg8AAAAQHdpdGhfaW5wdXRfdHlwZXMocz1zdHIpCmRlZiB0b19sb3dlcihhKToKICByZXR1cm4gYS5sb3dlcigpcZKFgXGTfXGUKGgyVQBoNWiPdWJhaDZLIWg3aGVoNGhNaAR9cZUoaAddaAhdaAldaGdoaGgKXWgLXXVoMlg8AAAAQHdpdGhfaW5wdXRfdHlwZXMocz1zdHIpCmRlZiB0b19sb3dlcihhKToKICByZXR1cm4gYS5sb3dlcigpaDVoJnViaEQpgXGWfXGXKGgoaAJoI11xmGguWDIAAABFeGFtcGxlIHVzYWdlIGZvciB0eXBlLWhpbnRpbmcgcmV0dXJuIHZhbHVlcyBvbmx5OnGZhYFxmn1xmyhoMlgyAAAARXhhbXBsZSB1c2FnZSBmb3IgdHlwZS1oaW50aW5nIHJldHVybiB2YWx1ZXMgb25seTpoKGgCaDROaDVolmg2TnViYWg1aCZoN2hMaDRoTWgEfXGcKGgKXWgHXWgJXWgLXWgIXXVoMlgzAAAARXhhbXBsZSB1c2FnZSBmb3IgdHlwZS1oaW50aW5nIHJldHVybiB2YWx1ZXMgb25seTo6cZ1oNksidWJoXimBcZ59cZ8oaChoAmgjXXGgaC5YZgAAAEB3aXRoX291dHB1dF90eXBlcyhUdXBsZVtpbnQsIGJvb2xdKQpkZWYgY29tcHJlc3NfcG9pbnQoZWNfcG9pbnQpOgogIHJldHVybiBlY19wb2ludC54LCBlY19wb2ludC55IDwgMHGhhYFxon1xoyhoMlUAaDVonnViYWg2SydoN2hlaDRoTWgEfXGkKGgHXWgIXWgJXWhnaGhoCl1oC111aDJYZgAAAEB3aXRoX291dHB1dF90eXBlcyhUdXBsZVtpbnQsIGJvb2xdKQpkZWYgY29tcHJlc3NfcG9pbnQoZWNfcG9pbnQpOgogIHJldHVybiBlY19wb2ludC54LCBlY19wb2ludC55IDwgMGg1aCZ1YmhEKYFxpX1xpihoKGgCaCNdcadoLlhAAAAARXhhbXBsZSB1c2FnZSBmb3IgdHlwZS1oaW50aW5nIGJvdGggYXJndW1lbnRzIGFuZCByZXR1cm4gdmFsdWVzOnGohYFxqX1xqihoMlhAAAAARXhhbXBsZSB1c2FnZSBmb3IgdHlwZS1oaW50aW5nIGJvdGggYXJndW1lbnRzIGFuZCByZXR1cm4gdmFsdWVzOmgoaAJoNE5oNWilaDZOdWJhaDVoJmg3aExoNGhNaAR9casoaApdaAddaAldaAtdaAhddWgyWEEAAABFeGFtcGxlIHVzYWdlIGZvciB0eXBlLWhpbnRpbmcgYm90aCBhcmd1bWVudHMgYW5kIHJldHVybiB2YWx1ZXM6OnGsaDZLKHViaF4pgXGtfXGuKGgoaAJoI11xr2guWFMAAABAd2l0aF9pbnB1dF90eXBlcyhhPWludCkKQHdpdGhfb3V0cHV0X3R5cGVzKHN0cikKZGVmIGludF90b19zdHIoYSk6CiAgcmV0dXJuIHN0cihhKXGwhYFxsX1xsihoMlUAaDVorXViYWg2Sy1oN2hlaDRoTWgEfXGzKGgHXWgIXWgJXWhnaGhoCl1oC111aDJYUwAAAEB3aXRoX2lucHV0X3R5cGVzKGE9aW50KQpAd2l0aF9vdXRwdXRfdHlwZXMoc3RyKQpkZWYgaW50X3RvX3N0cihhKToKICByZXR1cm4gc3RyKGEpaDVoJnViaEQpgXG0fXG1KGgoaAJoI11xtmguWIEAAABUeXBlLWhpbnRpbmcgYSBmdW5jdGlvbiB3aXRoIGFyZ3VtZW50cyB0aGF0IHVucGFjayB0dXBsZXMgYXJlIGFsc28gc3VwcG9ydGVkLiBBcwphbiBleGFtcGxlLCBzdWNoIGEgZnVuY3Rpb24gd291bGQgYmUgZGVmaW5lZCBhczpxt4WBcbh9cbkoaDJYgQAAAFR5cGUtaGludGluZyBhIGZ1bmN0aW9uIHdpdGggYXJndW1lbnRzIHRoYXQgdW5wYWNrIHR1cGxlcyBhcmUgYWxzbyBzdXBwb3J0ZWQuIEFzCmFuIGV4YW1wbGUsIHN1Y2ggYSBmdW5jdGlvbiB3b3VsZCBiZSBkZWZpbmVkIGFzOmgoaAJoNE5oNWi0aDZOdWJhaDVoJmg3aExoNGhNaAR9cbooaApdaAddaAldaAtdaAhddWgyWIIAAABUeXBlLWhpbnRpbmcgYSBmdW5jdGlvbiB3aXRoIGFyZ3VtZW50cyB0aGF0IHVucGFjayB0dXBsZXMgYXJlIGFsc28gc3VwcG9ydGVkLiBBcwphbiBleGFtcGxlLCBzdWNoIGEgZnVuY3Rpb24gd291bGQgYmUgZGVmaW5lZCBhczo6aDZLL3ViaF4pgXG7fXG8KGgoaAJoI11xvWguWBYAAABkZWYgZm9vKChhLCBiKSk6CiAgLi4ucb6FgXG/fXHAKGgyVQBoNWi7dWJhaDZLNWg3aGVoNGhNaAR9ccEoaAddaAhdaAldaGdoaGgKXWgLXXVoMlgWAAAAZGVmIGZvbygoYSwgYikpOgogIC4uLmg1aCZ1YmhEKYFxwn1xwyhoKGgCaCNdccRoLlhCAAAAVGhlIHZhbGlkIHR5cGUtaGludCBmb3Igc3VjaCBhcyBmdW5jdGlvbiBsb29rcyBsaWtlIHRoZSBmb2xsb3dpbmc6ccWFgXHGfXHHKGgyWEIAAABUaGUgdmFsaWQgdHlwZS1oaW50IGZvciBzdWNoIGFzIGZ1bmN0aW9uIGxvb2tzIGxpa2UgdGhlIGZvbGxvd2luZzpoKGgCaDROaDVowmg2TnViYWg1aCZoN2hMaDRoTWgEfXHIKGgKXWgHXWgJXWgLXWgIXXVoMlhDAAAAVGhlIHZhbGlkIHR5cGUtaGludCBmb3Igc3VjaCBhcyBmdW5jdGlvbiBsb29rcyBsaWtlIHRoZSBmb2xsb3dpbmc6OnHJaDZLNXViaF4pgXHKfXHLKGgoaAJoI11xzGguWDYAAABAd2l0aF9pbnB1dF90eXBlcyhhPWludCwgYj1pbnQpCmRlZiBmb28oKGEsIGIpKToKICAuLi5xzYWBcc59cc8oaDJVAGg1aMp1YmFoNks6aDdoZWg0aE1oBH1x0ChoB11oCF1oCV1oZ2hoaApdaAtddWgyWDYAAABAd2l0aF9pbnB1dF90eXBlcyhhPWludCwgYj1pbnQpCmRlZiBmb28oKGEsIGIpKToKICAuLi5oNWgmdWJoRCmBcdF9cdIoaChoAmgjXXHTaC5YjQAAAE5vdGljZSB0aGF0IHdlIGhpbnQgdGhlIHR5cGUgb2YgZWFjaCB1bnBhY2tlZCBhcmd1bWVudCBpbmRlcGVuZGVudGx5LCByYXRoZXIKdGhhbiBoaW50aW5nIHRoZSB0eXBlIG9mIHRoZSB0dXBsZSBhcyBhIHdob2xlIChUdXBsZVtpbnQsIGludF0pLnHUhYFx1X1x1ihoMliNAAAATm90aWNlIHRoYXQgd2UgaGludCB0aGUgdHlwZSBvZiBlYWNoIHVucGFja2VkIGFyZ3VtZW50IGluZGVwZW5kZW50bHksIHJhdGhlcgp0aGFuIGhpbnRpbmcgdGhlIHR5cGUgb2YgdGhlIHR1cGxlIGFzIGEgd2hvbGUgKFR1cGxlW2ludCwgaW50XSkucddoKGgCaDROaDVo0Wg2TnViYWg1aCZoN2hMaDRoTWgEfXHYKGgKXWgHXWgJXWgLXWgIXXVoMmjXaDZLO3ViaEQpgXHZfXHaKGgoaAJoI11x22guWHcBAABPcHRpb25hbGx5LCB0eXBlLWhpbnRzIGNhbiBiZSB0eXBlLWNoZWNrZWQgYXQgcnVudGltZS4gVG8gdG9nZ2xlIHRoaXMgYmVoYXZpb3IKdGhpcyBtb2R1bGUgZGVmaW5lcyB0d28gZnVuY3Rpb25zOiDigJhlbmFibGVfcnVuX3RpbWVfdHlwZV9jaGVja2luZ+KAmSBhbmQK4oCYZGlzYWJsZV9ydW5fdGltZV90eXBlX2NoZWNraW5n4oCZLiBOT1RFOiBmb3IgdGhpcyB0b2dnbGUgYmVoYXZpb3IgdG8gd29yawpwcm9wZXJseSBpdCBtdXN0IGFwcGVhciBhdCB0aGUgdG9wIG9mIHRoZSBtb2R1bGUgd2hlcmUgYWxsIGZ1bmN0aW9ucyBhcmUKZGVmaW5lZCwgb3IgYmVmb3JlIGltcG9ydGluZyBhIG1vZHVsZSBjb250YWluaW5nIHR5cGUtaGludGVkIGZ1bmN0aW9ucy5x3IWBcd19cd4oaDJYbwEAAE9wdGlvbmFsbHksIHR5cGUtaGludHMgY2FuIGJlIHR5cGUtY2hlY2tlZCBhdCBydW50aW1lLiBUbyB0b2dnbGUgdGhpcyBiZWhhdmlvcgp0aGlzIG1vZHVsZSBkZWZpbmVzIHR3byBmdW5jdGlvbnM6ICdlbmFibGVfcnVuX3RpbWVfdHlwZV9jaGVja2luZycgYW5kCidkaXNhYmxlX3J1bl90aW1lX3R5cGVfY2hlY2tpbmcnLiBOT1RFOiBmb3IgdGhpcyB0b2dnbGUgYmVoYXZpb3IgdG8gd29yawpwcm9wZXJseSBpdCBtdXN0IGFwcGVhciBhdCB0aGUgdG9wIG9mIHRoZSBtb2R1bGUgd2hlcmUgYWxsIGZ1bmN0aW9ucyBhcmUKZGVmaW5lZCwgb3IgYmVmb3JlIGltcG9ydGluZyBhIG1vZHVsZSBjb250YWluaW5nIHR5cGUtaGludGVkIGZ1bmN0aW9ucy5x32goaAJoNE5oNWjZaDZOdWJhaDVoJmg3aExoNGhNaAR9ceAoaApdaAddaAldaAtdaAhddWgyaN9oNks+dWJoOymBceF9ceIoaChoAmgjXWg2Tmg3aD5oNE5oBH1x4yhoB11oCF1oCV1VB2VudHJpZXNdceQoaEJYOQAAAFdpdGhUeXBlSGludHMgKGNsYXNzIGluIGFwYWNoZV9iZWFtLnR5cGVoaW50cy5kZWNvcmF0b3JzKWgYVQBOdHHlYWgKXWgLXXVoMlUAaDVoJnViY3NwaGlueC5hZGRub2RlcwpkZXNjCnHmKYFx531x6ChoKGgCaCNdcekoY3NwaGlueC5hZGRub2RlcwpkZXNjX3NpZ25hdHVyZQpx6imBcet9cewoaChoAmgjXXHtKGNzcGhpbnguYWRkbm9kZXMKZGVzY19hbm5vdGF0aW9uCnHuKYFx731x8ChoKGgCaCNdcfFoLlgGAAAAY2xhc3MgcfKFgXHzfXH0KGgyVQBoKGgCaDROaDVo72g2TnViYWg2Tmg3VQ9kZXNjX2Fubm90YXRpb25x9Wg0WK4AAAAvdXNyL2xvY2FsL2dvb2dsZS9ob21lL2FwaWxsb3VkL3dlYnNpdGVfdXBkYXRlX2Rpci9weXRob25fZG9jL2JlYW0vc2Rrcy9weXRob24vYXBhY2hlX2JlYW0vdHlwZWhpbnRzL2RlY29yYXRvcnMucHk6ZG9jc3RyaW5nIG9mIGFwYWNoZV9iZWFtLnR5cGVoaW50cy5kZWNvcmF0b3JzLldpdGhUeXBlSGludHNx9mgEfXH3KGgHXWgIXWgJXWhnaGhoCl1oC111aDJYBgAAAGNsYXNzIGg1aOt1YmNzcGhpbnguYWRkbm9kZXMKZGVzY19hZGRuYW1lCnH4KYFx+X1x+ihoKGgCaCNdcftoLlghAAAAYXBhY2hlX2JlYW0udHlwZWhpbnRzLmRlY29yYXRvcnMucfyFgXH9fXH+KGgyVQBoKGgCaDROaDVo+Wg2TnViYWg2Tmg3VQxkZXNjX2FkZG5hbWVx/2g0aPZoBH1yAAEAAChoB11oCF1oCV1oZ2hoaApdaAtddWgyWCEAAABhcGFjaGVfYmVhbS50eXBlaGludHMuZGVjb3JhdG9ycy5oNWjrdWJjc3BoaW54LmFkZG5vZGVzCmRlc2NfbmFtZQpyAQEAACmBcgIBAAB9cgMBAAAoaChoAmgjXXIEAQAAaC5YDQAAAFdpdGhUeXBlSGludHNyBQEAAIWBcgYBAAB9cgcBAAAoaDJVAGgoaAJoNE5oNWoCAQAAaDZOdWJhaDZOaDdVCWRlc2NfbmFtZXIIAQAAaDRo9mgEfXIJAQAAKGgHXWgIXWgJXWhnaGhoCl1oC111aDJYDQAAAFdpdGhUeXBlSGludHNyCgEAAGg1aOt1YmNzcGhpbnguYWRkbm9kZXMKZGVzY19wYXJhbWV0ZXJsaXN0CnILAQAAKYFyDAEAAH1yDQEAAChoKGgCaCNdcg4BAAAoY3NwaGlueC5hZGRub2RlcwpkZXNjX3BhcmFtZXRlcgpyDwEAACmBchABAAB9chEBAAAoaDJYDAAAACp1bnVzZWRfYXJnc2g3VQ5kZXNjX3BhcmFtZXRlcnISAQAAaCNdchMBAABoLlgMAAAAKnVudXNlZF9hcmdzchQBAACFgXIVAQAAfXIWAQAAKGgyVQBoNWoQAQAAdWJhaDVqDAEAAGgEfXIXAQAAKGgHXWgIXWgJXWhnaGhoCl1oC111dWJqDwEAACmBchgBAAB9chkBAAAoaDJYDwAAACoqdW51c2VkX2t3YXJnc2g3ahIBAABoI11yGgEAAGguWA8AAAAqKnVudXNlZF9rd2FyZ3NyGwEAAIWBchwBAAB9ch0BAAAoaDJVAGg1ahgBAAB1YmFoNWoMAQAAaAR9ch4BAAAoaAddaAhdaAldaGdoaGgKXWgLXXV1YmVoNk5oN1USZGVzY19wYXJhbWV0ZXJsaXN0ch8BAABoNGj2aAR9ciABAAAoaAddaAhdaAldaGdoaGgKXWgLXXVoMlgdAAAAKnVudXNlZF9hcmdzLCAqKnVudXNlZF9rd2FyZ3NoNWjrdWJjc3BoaW54LmFkZG5vZGVzCm9ubHkKciEBAAApgXIiAQAAfXIjAQAAKGgoaAJoI11yJAEAAGNzcGhpbnguYWRkbm9kZXMKcGVuZGluZ194cmVmCnIlAQAAKYFyJgEAAH1yJwEAAChoMlUAaDdVDHBlbmRpbmdfeHJlZnIoAQAAaCNdcikBAABjZG9jdXRpbHMubm9kZXMKaW5saW5lCnIqAQAAKYFyKwEAAH1yLAEAAChoMlUAaDdVBmlubGluZXItAQAAaCNdci4BAABoLlgIAAAAW3NvdXJjZV1yLwEAAIWBcjABAAB9cjEBAAAoaDJVAGg1aisBAAB1YmFoNWomAQAAaAR9cjIBAAAoaApdaAddaAldaAtdaAhdcjMBAABVDXZpZXdjb2RlLWxpbmtyNAEAAGF1dWJhaDVqIgEAAGgEfXI1AQAAKFUJcmVmdGFyZ2V0VSlfbW9kdWxlcy9hcGFjaGVfYmVhbS90eXBlaGludHMvZGVjb3JhdG9yc1UJcmVmZG9tYWluVQNzdGRyNgEAAGgHXVUFcmVmaWRqCgEAAGgIXVULcmVmZXhwbGljaXSJVQdyZWZ0eXBlVQh2aWV3Y29kZXI3AQAAaAldVQZyZWZkb2NYIAAAAGFwYWNoZV9iZWFtLnR5cGVoaW50cy5kZWNvcmF0b3JzcjgBAABoCl1oC111dWJhaDZOaDdVBG9ubHlyOQEAAGg0TmgEfXI6AQAAKFUEZXhwclUEaHRtbHI7AQAAaAddaAhdaAldaApdaAtddWgyVQBoNWjrdWJlaDZOaDdVDmRlc2Nfc2lnbmF0dXJlcjwBAABoNGj2aAR9cj0BAAAoVQVmaXJzdHI+AQAAiWgHXVUFY2xhc3NyPwEAAFUAaAhdVQhmdWxsbmFtZXJAAQAAagoBAABVBm1vZHVsZXJBAQAAY2RvY3V0aWxzLm5vZGVzCnJlcHJ1bmljb2RlCnJCAQAAWCAAAABhcGFjaGVfYmVhbS50eXBlaGludHMuZGVjb3JhdG9yc3JDAQAAhYFyRAEAAH1yRQEAAGJoCV1yRgEAAGgYYWgKXXJHAQAAaBhhaAtddWgyWCwAAABXaXRoVHlwZUhpbnRzKCp1bnVzZWRfYXJncywgKip1bnVzZWRfa3dhcmdzKWg1aOd1YmNzcGhpbnguYWRkbm9kZXMKZGVzY19jb250ZW50CnJIAQAAKYFySQEAAH1ySgEAAChoKGgCaCNdcksBAAAoaEQpgXJMAQAAfXJNAQAAKGgoaAJoI11yTgEAAChoLlgHAAAAQmFzZXM6IHJPAQAAhYFyUAEAAH1yUQEAAChoMlgHAAAAQmFzZXM6IGgoaAJoNE5oNWpMAQAAaDZOdWJqJQEAACmBclIBAAB9clMBAAAoaCNdclQBAABjZG9jdXRpbHMubm9kZXMKbGl0ZXJhbApyVQEAACmBclYBAAB9clcBAAAoaDJYKQAAADpjbGFzczpgZnV0dXJlLnR5cGVzLm5ld29iamVjdC5uZXdvYmplY3RgclgBAABoN1UHbGl0ZXJhbHJZAQAAaCNdcloBAABoLlggAAAAZnV0dXJlLnR5cGVzLm5ld29iamVjdC5uZXdvYmplY3RyWwEAAIWBclwBAAB9cl0BAAAoaDJVAGg1alYBAAB1YmFoNWpSAQAAaAR9cl4BAAAoaApdaAddaAldaAtdaAhdcl8BAAAoVQR4cmVmcmABAABYAgAAAHB5cmEBAABYCAAAAHB5LWNsYXNzcmIBAABldXViYWg1akwBAABoN2ooAQAAaDROaAR9cmMBAAAoVQlyZWZ0YXJnZXRyZAEAAFggAAAAZnV0dXJlLnR5cGVzLm5ld29iamVjdC5uZXdvYmplY3RVCXB5Om1vZHVsZXJlAQAAakQBAABVCXJlZmRvbWFpbmphAQAAaAddaAhdVQtyZWZleHBsaWNpdIlVCHB5OmNsYXNzcmYBAABqCgEAAFUHcmVmdHlwZVgFAAAAY2xhc3NoCV1VB3JlZndhcm5yZwEAAIlVBnJlZmRvY3JoAQAAajgBAABoCl1oC111aDJqWAEAAGg2TnViZWg1akkBAABoN2hMaDRYrgAAAC91c3IvbG9jYWwvZ29vZ2xlL2hvbWUvYXBpbGxvdWQvd2Vic2l0ZV91cGRhdGVfZGlyL3B5dGhvbl9kb2MvYmVhbS9zZGtzL3B5dGhvbi9hcGFjaGVfYmVhbS90eXBlaGludHMvZGVjb3JhdG9ycy5weTpkb2NzdHJpbmcgb2YgYXBhY2hlX2JlYW0udHlwZWhpbnRzLmRlY29yYXRvcnMuV2l0aFR5cGVIaW50c3JpAQAAaAR9cmoBAAAoaApdaAddaAldaAtdaAhddWgyWDAAAABCYXNlczogOmNsYXNzOmBmdXR1cmUudHlwZXMubmV3b2JqZWN0Lm5ld29iamVjdGBoNksBdWJoRCmBcmsBAAB9cmwBAAAoaChoAmgjXXJtAQAAaC5YRwAAAEEgbWl4aW4gY2xhc3MgdGhhdCBwcm92aWRlcyB0aGUgYWJpbGl0eSB0byBzZXQgYW5kIHJldHJpZXZlIHR5cGUgaGludHMucm4BAACFgXJvAQAAfXJwAQAAKGgyWEcAAABBIG1peGluIGNsYXNzIHRoYXQgcHJvdmlkZXMgdGhlIGFiaWxpdHkgdG8gc2V0IGFuZCByZXRyaWV2ZSB0eXBlIGhpbnRzLnJxAQAAaChoAmg0Tmg1amsBAABoNk51YmFoNWpJAQAAaDdoTGg0WK4AAAAvdXNyL2xvY2FsL2dvb2dsZS9ob21lL2FwaWxsb3VkL3dlYnNpdGVfdXBkYXRlX2Rpci9weXRob25fZG9jL2JlYW0vc2Rrcy9weXRob24vYXBhY2hlX2JlYW0vdHlwZWhpbnRzL2RlY29yYXRvcnMucHk6ZG9jc3RyaW5nIG9mIGFwYWNoZV9iZWFtLnR5cGVoaW50cy5kZWNvcmF0b3JzLldpdGhUeXBlSGludHNycgEAAGgEfXJzAQAAKGgKXWgHXWgJXWgLXWgIXXVoMmpxAQAAaDZLAXViaDspgXJ0AQAAfXJ1AQAAKGgoaAJoI11oNk5oN2g+aDROaAR9cnYBAAAoaAddaAhdaAldVQdlbnRyaWVzXXJ3AQAAKGhCWEgAAABnZXRfdHlwZV9oaW50cygpIChhcGFjaGVfYmVhbS50eXBlaGludHMuZGVjb3JhdG9ycy5XaXRoVHlwZUhpbnRzIG1ldGhvZCloFlUATnRyeAEAAGFoCl1oC111aDJVAGg1akkBAAB1YmjmKYFyeQEAAH1yegEAAChoKGgCaCNd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cGVqNwEAAGgJXVUGcmVmZG9jajgBAABoCl1oC111dWJhaDZOaDdqOQEAAGg0TmgEfXL0AgAAKFUEZXhwcmo7AQAAaAddaAhdaAldaApdaAtddWgyVQBoNWrAAgAAdWJlaDZOaDdqPAEAAGg0askCAABoBH1y9QIAAChqPgEAAIloB11qPwEAAFUAaAhdakABAABq0gIAAGpBAQAAakIBAABYIAAAAGFwYWNoZV9iZWFtLnR5cGVoaW50cy5kZWNvcmF0b3JzcvYCAACFgXL3AgAAfXL4AgAAYmgJXXL5AgAAaBxhaApdcvoCAABoHGFoC111aDJYNAAAAHdpdGhfaW5wdXRfdHlwZXMoKnBvc2l0aW9uYWxfaGludHMsICoqa2V5d29yZF9oaW50cyloNWq9AgAAdWJqSAEAACmBcvsCAAB9cvwCAAAoaChoAmgjXXL9AgAAKGhEKYFy/gIAAH1y/wIAAChoKGgCaCNdcgADAABoLlhLAAAAQSBkZWNvcmF0b3IgdGhhdCB0eXBlLWNoZWNrcyBkZWZpbmVkIHR5cGUtaGludHMgd2l0aCBwYXNzZWQgZnVuYyBhcmd1bWVudHMucgEDAACFgXICAwAAfXIDAwAAKGgyWEsAAABBIGRlY29yYXRvciB0aGF0IHR5cGUtY2hlY2tzIGRlZmluZWQgdHlwZS1oaW50cyB3aXRoIHBhc3NlZCBmdW5jIGFyZ3VtZW50cy5yBAMAAGgoaAJoNE5oNWr+AgAAaDZOdWJhaDVq+wIAAGg3aExoNFixAAAAL3Vzci9sb2NhbC9nb29nbGUvaG9tZS9hcGlsbG91ZC93ZWJzaXRlX3VwZGF0ZV9kaXIvcHl0aG9uX2RvYy9iZWFtL3Nka3MvcHl0aG9uL2FwYWNoZV9iZWFtL3R5cGVoaW50cy9kZWNvcmF0b3JzLnB5OmRvY3N0cmluZyBvZiBhcGFjaGVfYmVhbS50eXBlaGludHMuZGVjb3JhdG9ycy53aXRoX2lucHV0X3R5cGVzcgUDAABoBH1yBgMAAChoCl1oB11oCV1oC11oCF11aDJqBAMAAGg2SwF1YmhEKYFyBwMAAH1yCAMAAChoKGgCaCNdcgkDAABoLljVAAAAQWxsIHR5cGUtaGludGVkIGFyZ3VtZW50cyBjYW4gYmUgc3BlY2lmaWVkIHVzaW5nIHBvc2l0aW9uYWwgYXJndW1lbnRzLAprZXl3b3JkIGFyZ3VtZW50cywgb3IgYSBtaXggb2YgYm90aC4gQWRkaXRpb25hbHksIGFsbCBmdW5jdGlvbiBhcmd1bWVudHMgbXVzdApiZSB0eXBlLWhpbnRlZCBpbiB0b3RhbGl0eSBpZiBldmVuIG9uZSBwYXJhbWV0ZXIgaXMgdHlwZS1oaW50ZWQucgoDAACFgXILAwAAfXIMAwAAKGgyWNUAAABBbGwgdHlwZS1oaW50ZWQgYXJndW1lbnRzIGNhbiBiZSBzcGVjaWZpZWQgdXNpbmcgcG9zaXRpb25hbCBhcmd1bWVudHMsCmtleXdvcmQgYXJndW1lbnRzLCBvciBhIG1peCBvZiBib3RoLiBBZGRpdGlvbmFseSwgYWxsIGZ1bmN0aW9uIGFyZ3VtZW50cyBtdXN0CmJlIHR5cGUtaGludGVkIGluIHRvdGFsaXR5IGlmIGV2ZW4gb25lIHBhcmFtZXRlciBpcyB0eXBlLWhpbnRlZC5yDQMAAGgoaAJoNE5oNWoHAwAAaDZOdWJhaDVq+wIAAGg3aExoNGoFAwAAaAR9cg4DAAAoaApdaAddaAldaAtdaAhddWgyag0DAABoNksDdWJoRCmBcg8DAAB9chADAAAoaChoAmgjXXIRAwAAKGguWHUAAABPbmNlIGZ1bGx5IGRlY29yYXRlZCwgaWYgdGhlIGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhlIHJlc3VsdGluZyBmdW5jdGlvbgp2aW9sYXRlIHRoZSB0eXBlLWhpbnQgY29uc3RyYWludHMgZGVmaW5lZCwgYSByEgMAAIWBchMDAAB9chQDAAAoaDJYdQAAAE9uY2UgZnVsbHkgZGVjb3JhdGVkLCBpZiB0aGUgYXJndW1lbnRzIHBhc3NlZCB0byB0aGUgcmVzdWx0aW5nIGZ1bmN0aW9uCnZpb2xhdGUgdGhlIHR5cGUtaGludCBjb25zdHJhaW50cyBkZWZpbmVkLCBhIGgoaAJoNE5oNWoPAwAAaDZOdWJqJQEAACmBchUDAAB9chYDAAAoaCNdchcDAABqVQEAACmBchgDAAB9chkDAAAoaDJYFwAAADpjbGFzczpgVHlwZUNoZWNrRXJyb3JgchoDAABoN2pZAQAAaCNdchsDAABoLlgOAAAAVHlwZUNoZWNrRXJyb3JyHAMAAIWBch0DAAB9ch4DAAAoaDJVAGg1ahgDAAB1YmFoNWoVAwAAaAR9ch8DAAAoaApdaAddaAldaAtdaAhdciADAAAoamABAABYAgAAAHB5ciEDAABYCAAAAHB5LWNsYXNzciIDAABldXViYWg1ag8DAABoN2ooAQAAaDROaAR9ciMDAAAoamQBAABYDgAAAFR5cGVDaGVja0Vycm9yamUBAABq9wIAAFUJcmVmZG9tYWluaiEDAABoB11oCF1VC3JlZmV4cGxpY2l0iWpmAQAATlUHcmVmdHlwZVgFAAAAY2xhc3NoCV1qZwEAAIlqaAEAAGo4AQAAaApdaAtddWgyahoDAABoNk51YmguWCQAAAAKZGV0YWlsaW5nIHRoZSBlcnJvciB3aWxsIGJlIHJhaXNlZC5yJAMAAIWBciUDAAB9ciYDAAAoaDJYJAAAAApkZXRhaWxpbmcgdGhlIGVycm9yIHdpbGwgYmUgcmFpc2VkLmgoaAJoNE5oNWoPAwAAaDZOdWJlaDVq+wIAAGg3aExoNGoFAwAAaAR9cicDAAAoaApdaAddaAldaAtdaAhddWgyWLAAAABPbmNlIGZ1bGx5IGRlY29yYXRlZCwgaWYgdGhlIGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhlIHJlc3VsdGluZyBmdW5jdGlvbgp2aW9sYXRlIHRoZSB0eXBlLWhpbnQgY29uc3RyYWludHMgZGVmaW5lZCwgYSA6Y2xhc3M6YFR5cGVDaGVja0Vycm9yYApkZXRhaWxpbmcgdGhlIGVycm9yIHdpbGwgYmUgcmFpc2VkLmg2Swd1YmhEKYFyKAMAAH1yKQMAAChoKGgCaCNdcioDAABoLlgOAAAAVG8gYmUgdXNlZCBhczpyKwMAAIWBciwDAAB9ci0DAAAoaDJYDgAAAFRvIGJlIHVzZWQgYXM6ci4DAABoKGgCaDROaDVqKAMAAGg2TnViYWg1avsCAABoN2hMaDRqBQMAAGgEfXIvAwAAKGgKXWgHXWgJXWgLXWgIXXVoMmouAwAAaDZLC3ViaF4pgXIwAwAAfXIxAwAAKGgoaAJoI11yMgMAAGguWGsAAABmcm9tIGFwYWNoZV9iZWFtLnR5cGVoaW50cyBpbXBvcnQgd2l0aF9pbnB1dF90eXBlcwoKQHdpdGhfaW5wdXRfdHlwZXMoc3RyKQpkZWYgdXBwZXIocyk6CiAgcmV0dXJuIHMudXBwZXIoKXIzAwAAhYFyNAMAAH1yNQMAAChoMlUAaDVqMAMAAHViYWg1avsCAABoN2hlaDRqBQMAAGgEfXI2AwAAKFUHb3B0aW9uc3I3AwAAfWgHXVUGZ3JvdXBzXXI4AwAAVQdkZWZhdWx0cjkDAABhVQx0ZXN0bm9kZXR5cGVYCAAAAHRlc3Rjb2RlaAhdaAldaGdoaGgKXWgLXXVoMlhrAAAAZnJvbSBhcGFjaGVfYmVhbS50eXBlaGludHMgaW1wb3J0IHdpdGhfaW5wdXRfdHlwZXMKCkB3aXRoX2lucHV0X3R5cGVzKHN0cikKZGVmIHVwcGVyKHMpOgogIHJldHVybiBzLnVwcGVyKCloNksNdWJoRCmBcjoDAAB9cjsDAAAoaChoAmgjXXI8AwAAaC5YAwAAAE9yOnI9AwAAhYFyPgMAAH1yPwMAAChoMlgDAAAAT3I6ckADAABoKGgCaDROaDVqOgMAAGg2TnViYWg1avsCAABoN2hMaDRqBQMAAGgEfXJBAwAAKGgKXWgHXWgJXWgLXWgIXXVoMmpAAwAAaDZLFXViaF4pgXJCAwAAfXJDAwAAKGgoaAJoI11yRAMAAGguWOQAAABmcm9tIGFwYWNoZV9iZWFtLnR5cGVoaW50cyBpbXBvcnQgd2l0aF9pbnB1dF90eXBlcwpmcm9tIGFwYWNoZV9iZWFtLnR5cGVoaW50cyBpbXBvcnQgTGlzdApmcm9tIGFwYWNoZV9iZWFtLnR5cGVoaW50cyBpbXBvcnQgVHVwbGUKCkB3aXRoX2lucHV0X3R5cGVzKGxzPUxpc3RbVHVwbGVbaW50LCBpbnRdXSkKZGVmIGluY3JlbWVudChscyk6CiAgWyhpICsgMSwgaiArIDEpIGZvciAoaSxqKSBpbiBsc11yRQMAAIWBckYDAAB9ckcDAAAoaDJVAGg1akIDAAB1YmFoNWr7AgAAaDdoZWg0agUDAABoBH1ySAMAAChqNwMAAH1oB11VBmdyb3Vwc11ySQMAAGo5AwAAYVUMdGVzdG5vZGV0eXBlWAgAAAB0ZXN0Y29kZWgIXWgJXWhnaGhoCl1oC111aDJY5AAAAGZyb20gYXBhY2hlX2JlYW0udHlwZWhpbnRzIGltcG9ydCB3aXRoX2lucHV0X3R5cGVzCmZyb20gYXBhY2hlX2JlYW0udHlwZWhpbnRzIGltcG9ydCBMaXN0CmZyb20gYXBhY2hlX2JlYW0udHlwZWhpbnRzIGltcG9ydCBUdXBsZQoKQHdpdGhfaW5wdXRfdHlwZXMobHM9TGlzdFtUdXBsZVtpbnQsIGludF1dKQpkZWYgaW5jcmVtZW50KGxzKToKICBbKGkgKyAxLCBqICsgMSkgZm9yIChpLGopIGluIGxzXWg2Sxd1YmNkb2N1dGlscy5ub2RlcwpmaWVsZF9saXN0CnJKAwAAKYFySwMAAH1yTAMAAChoKGgCaCNdck0DAAAoY2RvY3V0aWxzLm5vZGVzCmZpZWxkCnJOAwAAKYFyTwMAAH1yUAMAAChoMlUAaDdVBWZpZWxkclEDAABoI11yUgMAAChjZG9jdXRpbHMubm9kZXMKZmllbGRfbmFtZQpyUwMAACmBclQDAAB9clUDAAAoaCNdclYDAABoLlgKAAAAUGFyYW1ldGVyc3JXAwAAhYFyWAMAAH1yWQMAAChoMlUAaDVqVAMAAHViYWg2SwBoN1UKZmllbGRfbmFtZXJaAwAAaDRqyQIAAGgEfXJbAwAAKGgKXWgHXWgJXWgLXWgIXXVoMlgKAAAAUGFyYW1ldGVyc2g1ak8DAAB1YmNkb2N1dGlscy5ub2RlcwpmaWVsZF9ib2R5CnJcAwAAKYFyXQMAAH1yXgMAAChoMlUAaDdVCmZpZWxkX2JvZHlyXwMAAGgjXXJgAwAAY2RvY3V0aWxzLm5vZGVzCmJ1bGxldF9saXN0CnJhAwAAKYFyYgMAAH1yYwMAAChoMlUAaDdVC2J1bGxldF9saXN0cmQDAABoI11yZQMAAChjZG9jdXRpbHMubm9kZXMKbGlzdF9pdGVtCnJmAwAAKYFyZwMAAH1yaAMAAChoMlUAaDdVCWxpc3RfaXRlbXJpAwAAaCNdcmoDAABoRCmBcmsDAAB9cmwDAAAoaDJYEQEAACpwb3NpdGlvbmFsX2hpbnRzIC0tIFBvc2l0aW9uYWwgdHlwZS1oaW50cyBoYXZpbmcgaWRlbnRpY2FsIG9yZGVyIGFzIHRoZQpmdW5jdGlvbidzIGZvcm1hbCBhcmd1bWVudHMuIFZhbHVlcyBmb3IgdGhpcyBhcmd1bWVudCBtdXN0IGVpdGhlciBiZSBhCmJ1aWx0LWluIFB5dGhvbiB0eXBlIG9yIGFuIGluc3RhbmNlIG9mIGEKVHlwZUNvbnN0cmFpbnQgY3JlYXRlZCBieQonaW5kZXhpbmcnIGEKQ29tcG9zaXRlVHlwZUhpbnQgaW5zdGFuY2UKd2l0aCBhIHR5cGUgcGFyYW1ldGVyLmg3aExoI11ybQMAAChjc3BoaW54LmFkZG5vZGVzCmxpdGVyYWxfc3Ryb25nCnJuAwAAKYFybwMAAH1ycAMAAChoMlgRAAAAKnBvc2l0aW9uYWxfaGludHNoN1UObGl0ZXJhbF9zdHJvbmdycQMAAGgjXXJyAwAAaC5YEQAAACpwb3NpdGlvbmFsX2hpbnRzcnMDAACFgXJ0AwAAfXJ1AwAAKGgyVQBoNWpvAwAAdWJhaDVqawMAAGgEfXJ2AwAAKFULcmVmc3BlY2lmaWNydwMAAIhoB11oCF1oCV1oCl1oC111dWJoLlgFAAAAIOKAkyByeAMAAIWBcnkDAAB9cnoDAAAoaDJVAGg1amsDAAB1YmguWKYAAABQb3NpdGlvbmFsIHR5cGUtaGludHMgaGF2aW5nIGlkZW50aWNhbCBvcmRlciBhcyB0aGUKZnVuY3Rpb27igJlzIGZvcm1hbCBhcmd1bWVudHMuIFZhbHVlcyBmb3IgdGhpcyBhcmd1bWVudCBtdXN0IGVpdGhlciBiZSBhCmJ1aWx0LWluIFB5dGhvbiB0eXBlIG9yIGFuIGluc3RhbmNlIG9mIGEKcnsDAACFgXJ8AwAAfXJ9AwAAKGgyWKQAAABQb3NpdGlvbmFsIHR5cGUtaGludHMgaGF2aW5nIGlkZW50aWNhbCBvcmRlciBhcyB0aGUKZnVuY3Rpb24ncyBmb3JtYWwgYXJndW1lbnRzLiBWYWx1ZXMgZm9yIHRoaXMgYXJndW1lbnQgbXVzdCBlaXRoZXIgYmUgYQpidWlsdC1pbiBQeXRob24gdHlwZSBvciBhbiBpbnN0YW5jZSBvZiBhCnJ+AwAAaChoAmg0Tmg1amsDAABoNk51YmolAQAAKYFyfwMAAH1ygAMAAChoKGgCaCNdcoEDAABqVQEAACmBcoIDAAB9coMDAAAoaDJYOAAAADpjbGFzczpgfmFwYWNoZV9iZWFtLnR5cGVoaW50cy50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avwDAABoBH1yBgQAAChoCl1oB11oCV1oC11oCF1yBwQAAChqYAEAAFgCAAAAcHlyCAQAAFgIAAAAcHktY2xhc3NyCQQAAGV1dWJhaDVq+QMAAGg3aigBAABoNE5oBH1yCgQAAChqZAEAAFgVAAAAZXhjZXB0aW9ucy5WYWx1ZUVycm9yamUBAABq9wIAAFUJcmVmZG9tYWluaggEAABoB11oCF1VC3JlZmV4cGxpY2l0iWpmAQAATlUHcmVmdHlwZVgFAAAAY2xhc3NoCV1qZwEAAIlqaAEAAGo4AQAAaApdaAtddWgyagEEAABoNk51YmguWI4AAAAg4oCTIElmIG5vdCBhbGwgZnVuY3Rpb24gYXJndW1lbnRzIGhhdmUKY29ycmVzcG9uZGluZyB0eXBlLWhpbnRzIHNwZWNpZmllZC4gT3IgaWYgdGhlIGlubmVyIHdyYXBwZXIgZnVuY3Rpb24gaXNu4oCZdApwYXNzZWQgYSBmdW5jdGlvbiBvYmplY3QucgsEAACFgXIMBAAAfXINBAAAKGgyWIsAAAAgLS0gSWYgbm90IGFsbCBmdW5jdGlvbiBhcmd1bWVudHMgaGF2ZQpjb3JyZXNwb25kaW5nIHR5cGUtaGludHMgc3BlY2lmaWVkLiBPciBpZiB0aGUgaW5uZXIgd3JhcHBlciBmdW5jdGlvbiBpc24ndApwYXNzZWQgYSBmdW5jdGlvbiBvYmplY3QuaDVq+QMAAHViZWg1avYDAABoN2hMaDRqBQMAAGgEfXIOBAAAKGgKXWgHXWgJXWgLXWgIXXVoMliqAAAAOmNsYXNzOmB+ZXhjZXB0aW9ucy5WYWx1ZUVycm9yYCAtLSBJZiBub3QgYWxsIGZ1bmN0aW9uIGFyZ3VtZW50cyBoYXZlCmNvcnJlc3BvbmRpbmcgdHlwZS1oaW50cyBzcGVjaWZpZWQuIE9yIGlmIHRoZSBpbm5lciB3cmFwcGVyIGZ1bmN0aW9uIGlzbid0CnBhc3NlZCBhIGZ1bmN0aW9uIG9iamVjdC5oNkswdWJhaDVq8wMAAGgEfXIPBAAAKGgKXWgHXWgJXWgLXWgIXXV1YmpmAwAAKYFyEAQAAH1yEQQAAChoMlifAAAAOmNsYXNzOmBUeXBlQ2hlY2tFcnJvcmAgLS0gSWYgdGhlIGFueSBvZiB0aGUgcGFz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dHB1dF90eXBlcygpIChpbiBtb2R1bGUgYXBhY2hlX2JlYW0udHlwZWhpbnRzLmRlY29yYXRvcnMpaBRVAE50cmAEAABhaApdaAtddWgyVQBoNWgmdWJo5imBcmEEAAB9cmIEAAAoaChoAmgjXXJjBAAAKGjqKYFyZAQAAH1yZQQAAChoKGgCaCNdcmYEAAAoaPgpgXJnBAAAfXJoBAAAKGgoaAJoI11yaQQAAGguWCEAAABhcGFjaGVfYmVhbS50eXBlaGludHMuZGVjb3JhdG9ycy5yagQAAIWBcmsEAAB9cmwEAAAoaDJVAGgoaAJoNE5oNWpnBAAAaDZOdWJhaDZOaDdo/2g0WLIAAAAvdXNyL2xvY2FsL2dvb2dsZS9ob21lL2FwaWxsb3VkL3dlYnNpdGVfdXBkYXRlX2Rpci9weXRob25fZG9jL2JlYW0vc2Rrcy9weXRob24vYXBhY2hlX2JlYW0vdHlwZWhpbnRzL2RlY29yYXRvcnMucHk6ZG9jc3RyaW5nIG9mIGFwYWNoZV9iZWFtLnR5cGVoaW50cy5kZWNvcmF0b3JzLndpdGhfb3V0cHV0X3R5cGVzcm0EAABoBH1ybgQAAChoB11oCF1oCV1oZ2hoaApdaAtddWgyWCEAAABhcGFjaGVfYmVhbS50eXBlaGludHMuZGVjb3JhdG9ycy5oNWpkBAAAdWJqAQEAACmBcm8EAAB9cnAEAAAoaChoAmgjXXJxBAAAaC5YEQAAAHdpdGhfb3V0cHV0X3R5cGVzcnIEAACFgXJzBAAAfXJ0BAAAKGgyVQBoKGgCaDROaDVqbwQAAGg2TnViYWg2Tmg3aggBAABoNGptBAAAaAR9cnUEAAAoaAddaAhdaAldaGdoaGgKXWgLXXVoMlgRAAAAd2l0aF9vdXRwdXRfdHlwZXNydgQAAGg1amQEAAB1YmoLAQAAKYFydwQAAH1yeAQAAChoKGgCaCNdcnkEAAAoag8BAAApgXJ6BAAAfXJ7BAAAKGgyWBEAAAAqcmV0dXJuX3R5cGVfaGludGg3ahIBAABoI11yfAQAAGguWBEAAAAqcmV0dXJuX3R5cGVfaGludHJ9BAAAhYFyfgQAAH1yfwQAAChoMlUAaDVqegQAAHViYWg1ancEAABoBH1ygAQAAChoB11oCF1oCV1oZ2hoaApdaAtddXViag8BAAApgXKBBAAAfXKCBAAAKGgyWAgAAAAqKmt3YXJnc2g3ahIBAABoI11ygwQAAGguWAgAAAAqKmt3YXJnc3KEBAAAhYFyhQQAAH1yhgQAAChoMlUAaDVqgQQAAHViYWg1ancEAABoBH1yhwQAAChoB11oCF1oCV1oZ2hoaApdaAtddXViZWg2Tmg3ah8BAABoNGptBAAAaAR9cogEAAAoaAddaAhdaAldaGdoaGgKXWgLXXVoMlgbAAAAKnJldHVybl90eXBlX2hpbnQsICoqa3dhcmdzaDVqZAQAAHViaiEBAAApgXKJBAAAfXKKBAAAKGgoaAJoI11yiwQAAGolAQAAKYFyjAQAAH1yjQQAAChoMlUAaDdqKAEAAGgjXXKOBAAAaioBAAApgXKPBAAAfXKQBAAAKGgyVQBoN2otAQAAaCNdcpEEAABoLlgIAAAAW3NvdXJjZV1ykgQAAIWBcpMEAAB9cpQEAAAoaDJVAGg1ao8EAAB1YmFoNWqMBAAAaAR9cpUEAAAoaApdaAddaAldaAtdaAhdcpYEAABqNAEAAGF1dWJhaDVqiQQAAGgEfXKXBAAAKFUJcmVmdGFyZ2V0VSlfbW9kdWxlcy9hcGFjaGVfYmVhbS90eXBlaGludHMvZGVjb3JhdG9yc1UJcmVmZG9tYWluajYBAABoB11VBXJlZmlkanYEAABoCF1VC3JlZmV4cGxpY2l0iVUHcmVmdHlwZWo3AQAAaAldVQZyZWZkb2NqOAEAAGgKXWgLXXV1YmFoNk5oN2o5AQAAaDROaAR9cpgEAAAoVQRleHByajsBAABoB11oCF1oCV1oCl1oC111aDJVAGg1amQEAAB1YmVoNk5oN2o8AQAAaDRqbQQAAGgEfXKZBAAAKGo+AQAAiWgHXWo/AQAAVQBoCF1qQAEAAGp2BAAAakEBAABqQgEAAFggAAAAYXBhY2hlX2JlYW0udHlwZWhpbnRzLmRlY29yYXRvcnNymgQAAIWBcpsEAAB9cpwEAABiaAldcp0EAABoFGFoCl1yngQAAGgUYWgLXXVoMlguAAAAd2l0aF9vdXRwdXRfdHlwZXMoKnJldHVybl90eXBlX2hpbnQsICoqa3dhcmdzKWg1amEEAAB1YmpIAQAAKYFynwQAAH1yoAQAAChoKGgCaCNdcqEEAAAoaEQpgXKiBAAAfXKjBAAAKGgoaAJoI11ypAQAAGguWEUAAABBIGRlY29yYXRvciB0aGF0IHR5cGUtY2hlY2tzIGRlZmluZWQgdHlwZS1oaW50cyBmb3IgcmV0dXJuIHZhbHVlcyhzKS5ypQQAAIWBcqYEAAB9cqcEAAAoaDJYRQAAAEEgZGVjb3JhdG9yIHRoYXQgdHlwZS1jaGVja3MgZGVmaW5lZCB0eXBlLWhpbnRzIGZvciByZXR1cm4gdmFsdWVzKHMpLnKoBAAAaChoAmg0Tmg1aqIEAABoNk51YmFoNWqfBAAAaDdoTGg0WLIAAAAvdXNyL2xvY2FsL2dvb2dsZS9ob21lL2FwaWxsb3VkL3dlYnNpdGVfdXBkYXRlX2Rpci9weXRob25fZG9jL2JlYW0vc2Rrcy9weXRob24vYXBhY2hlX2JlYW0vdHlwZWhpbnRzL2RlY29yYXRvcnMucHk6ZG9jc3RyaW5nIG9mIGFwYWNoZV9iZWFtLnR5cGVoaW50cy5kZWNvcmF0b3JzLndpdGhfb3V0cHV0X3R5cGVzcqkEAABoBH1yqgQAAChoCl1oB11oCV1oC11oCF11aDJqqAQAAGg2SwF1YmhEKYFyqwQAAH1yrAQAAChoKGgCaCNdcq0EAABoLlhNAAAAVGhpcyBkZWNvcmF0b3Igd2lsbCB0eXBlLWNoZWNrIHRoZSByZXR1cm4gdmFsdWUocykgb2YgdGhlIGRlY29yYXRlZCBmdW5jdGlvbi5yrgQAAIWBcq8EAAB9crAEAAAoaDJYTQAAAFRoaXMgZGVjb3JhdG9yIHdpbGwgdHlwZS1jaGVjayB0aGUgcmV0dXJuIHZhbHVlKHMpIG9mIHRoZSBkZWNvcmF0ZWQgZnVuY3Rpb24ucrEEAABoKGgCaDROaDVqqwQAAGg2TnViYWg1ap8EAABoN2hMaDRqqQQAAGgEfXKyBAAAKGgKXWgHXWgJXWgLXWgIXXVoMmqxBAAAaDZLA3ViaEQpgXKzBAAAfXK0BAAAKGgoaAJoI11ytQQAAChoLlilAAAAT25seSBhIHNpbmdsZSB0eXBlLWhpbnQgaXMgYWNjZXB0ZWQgdG8gc3BlY2lmeSB0aGUgcmV0dXJuIHR5cGUgb2YgdGhlIHJldHVybgp2YWx1ZS4gSWYgdGhlIGZ1bmN0aW9uIHRvIGJlIGRlY29yYXRlZCBoYXMg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IGJlIHJhaXNlZCBkZXRhaWxpbmcgdGhlIHR5cGUtY29uc3RyYWludAp2aW9sYXRpb24uaDZLCnViaEQpgXLdBAAAfXLeBAAAKGgoaAJoI11y3wQAAGguWCsAAABUaGlzIGRlY29yYXRvciBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIGxpa2U6cuAEAACFgXLhBAAAfXLiBAAAKGgyWCsAAABUaGlzIGRlY29yYXRvciBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIGxpa2U6cuMEAABoKGgCaDROaDVq3QQAAGg2TnViYWg1ap8EAABoN2hMaDRqqQQAAGgEfXLkBAAAKGgKXWgHXWgJXWgLXWgIXXVoMmrjBAAAaDZLDnViaF4pgXLlBAAAfXLmBAAAKGgoaAJoI11y5wQAAGguWBMBAABmcm9tIGFwYWNoZV9iZWFtLnR5cGVoaW50cyBpbXBvcnQgd2l0aF9vdXRwdXRfdHlwZXMKZnJvbSBhcGFjaGVfYmVhbS50eXBlaGludHMgaW1wb3J0IFNldAoKY2xhc3MgQ29vcmRpbmF0ZShvYmplY3QpOgogIGRlZiBfX2luaXRfXyhzZWxmLCB4LCB5KToKICAgIHNlbGYueCA9IHgKICAgIHNlbGYueSA9IHkKCkB3aXRoX291dHB1dF90eXBlcyhTZXRbQ29vcmRpbmF0ZV0pCmRlZiBwYXJzZV9pbnRzKGludHMpOgogIHJldHVybiB7Q29vcmRpbmF0ZShpLCBpKSBmb3IgaSBpbiBpbnRzfXLoBAAAhYFy6QQAAH1y6gQAAChoMlUAaDVq5QQAAHViYWg1ap8EAABoN2hlaDRqqQQAAGgEfXLrBAAAKGo3AwAAfWgHXVUGZ3JvdXBzXXLsBAAAajkDAABhVQx0ZXN0bm9kZXR5cGVYCAAAAHRlc3Rjb2RlaAhdaAldaGdoaGgKXWgLXXVoMlgTAQAAZnJvbSBhcGFjaGVfYmVhbS50eXBlaGludHMgaW1wb3J0IHdpdGhfb3V0cHV0X3R5cGVzCmZyb20gYXBhY2hlX2JlYW0udHlwZWhpbnRzIGltcG9ydCBTZXQKCmNsYXNzIENvb3JkaW5hdGUob2JqZWN0KToKICBkZWYgX19pbml0X18oc2VsZiwgeCwgeSk6CiAgICBzZWxmLnggPSB4CiAgICBz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8AUAAChoGGjraBRqZAQAAGroBQAAY2RvY3V0aWxzLm5vZGVzCnRhcmdldApy8QUAACmBcvIFAAB9cvMFAAAoaChoAmgjXWg2SwFoN1UGdGFyZ2V0cvQFAABoNGg/aAR9cvUFAAAoaAddaAhdVQVpc21vZIhoCV1y9gUAAGroBQAAYWgKXWgLXXVoMlUAaDVoJnViaBZqfAEAAGgbaCZoGWq0AQAAaBdqbQIAAGgcasACAABoHWonAgAAaBVq5gEAAHVVCWZvb3Rub3Rlc3L3BQAAXXL4BQAAaDJVAFUJY2l0YXRpb25zcvkFAABdcvoFAABVCHNldHRpbmdzcvsFAAAoY2RvY3V0aWxzLmZyb250ZW5kClZhbHVlcwpy/AUAAG9y/QUAAH1y/gUAAChVHGVycm9yX2VuY29kaW5nX2Vycm9yX2hhbmRsZXJy/wUAAFUQYmFja3NsYXNocmVwbGFjZXIABgAAVQ5kb2N0aXRsZV94Zm9ybXIBBgAAiVULc291cmNlX2xpbmtyAgYAAE5VDnN0cmlwX2NvbW1lbnRzcgMGAABOVQ9kdW1wX3BzZXVkb194bWxyBAYAAE5VDWR1bXBfc2V0dGluZ3NyBQYAAE5VDnBlcF9yZWZlcmVuY2VzcgYGAABOVQl0YWJfd2lkdGhyBwYAAEsIVR10cmltX2Zvb3Rub3RlX3JlZmVyZW5jZV9zcGFjZXIIBgAAiVUJdHJhY2ViYWNrcgkGAACIVRBleHBvc2VfaW50ZXJuYWxzcgoGAABOVRZmaWxlX2luc2VydGlvbl9lbmFibGVkcgsGAACIVQ9kdW1wX3RyYW5zZm9ybXNyDAYAAE5VBWRlYnVncg0GAABOVRBzeW50YXhfaGlnaGxpZ2h0cg4GAABVBGxvbmdyDwYAAFUNX2NvbmZpZ19maWxlc3IQBgAAXVUMcGVwX2Jhc2VfdXJschEGAABVIGh0dHBzOi8vd3d3LnB5dGhvbi5vcmcvZGV2L3BlcHMvchIGAABVDXRvY19iYWNrbGlua3NyEwYAAFUFZW50cnlyFAYAAFUOd2FybmluZ19zdHJlYW1yFQYAAE5VD291dHB1dF9lbmNvZGluZ3IWBgAAVQV1dGYtOHIXBgAAVR1jaGFyYWN0ZXJfbGV2ZWxfaW5saW5lX21hcmt1cHIYBgAAiVUTc21hcnRxdW90ZXNfbG9jYWxlc3IZBgAATlUOYXV0b19pZF9wcmVmaXhyGgYAAFUCaWRyGwYAAFUPX2Rpc2FibGVfY29uZmlnchwGAABOVRNyZWNvcmRfZGVwZW5kZW5jaWVzch0GAABOaDhOVRtzdHJpcF9lbGVtZW50c193aXRoX2NsYXNzZXNyHgYAAE5VCmhhbHRfbGV2ZWxyHwYAAEsFVQ9nZXR0ZXh0X2NvbXBhY3RyIAYAAIhVHGlucHV0X2VuY29kaW5nX2Vycm9yX2hhbmRsZXJyIQYAAFUGc3RyaWN0ciIGAABVCWdlbmVyYXRvcnIjBgAATlULcmF3X2VuYWJsZWRyJAYAAEsBVQ1kb2NpbmZvX3hmb3JtciUGAABLAVUNc2VjdG51bV94Zm9ybXImBgAASwFVFWNsb2FrX2VtYWlsX2FkZHJlc3Nlc3InBgAAiFUMc21hcnRfcXVvdGVzcigGAACIVQxfZGVzdGluYXRpb25yKQYAAE5VEGVtYmVkX3N0eWxlc2hlZXRyKgYAAIlVFXBlcF9maWxlX3VybF90ZW1wbGF0ZXIrBgAAVQhwZXAtJTA0ZHIsBgAAVQxyZXBvcnRfbGV2ZWxyLQYAAEsCVQxyZmNfYmFzZV91cmxyLgYAAFUcaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3IvBgAAVQlpZF9wcmVmaXhyMAYAAFUAVQNlbnZyMQYAAE5VDWxhbmd1YWdlX2NvZGVyMgYAAFUCZW5yMwYAAFUKc291cmNlX3VybHI0BgAATlUNc3RyaXBfY2xhc3Nlc3I1BgAATlUOaW5wdXRfZW5jb2RpbmdyNgYAAFUJdXRmLTgtc2lncjcGAABVEmZvb3Rub3RlX2JhY2tsaW5rc3I4BgAASwFVEnNlY3RzdWJ0aXRsZV94Zm9ybXI5BgAAiVUOcmZjX3JlZmVyZW5jZXNyOgYAAE5VHW91dHB1dF9lbmNvZGluZ19lcnJvcl9oYW5kbGVycjsGAABqIgYAAFURZXhpdF9zdGF0dXNfbGV2ZWxyPAYAAEsFVQZjb25maWdyPQYAAE5VDmVycm9yX2VuY29kaW5ncj4GAABVBVVURi04cj8GAABVDnN0cmljdF92aXNpdG9yckAGAABOVQdfc291cmNlckEGAABoBlUJZGF0ZXN0YW1wckIGAABOVQ5kdW1wX2ludGVybmFsc3JDBgAATnViVQhyZXBvcnRlcnJEBgAATlUNY2l0YXRpb25fcmVmc3JFBgAAfXJGBgAAVQ1mb290bm90ZV9yZWZzckcGAAB9ckgGAABVBnJlZmlkc3JJBgAAfXJKBgAAVRJhdXRvZm9vdG5vdGVfc3RhcnRySwYAAEsBVRFzdWJzdGl0dXRpb25fZGVmc3JMBgAAfXJNBgAAVQt0cmFuc2Zvcm1lcnJOBgAATmgoaAJVFXN5bWJvbF9mb290bm90ZV9zdGFydHJPBgAASwBoN2goVRFhdXRvZm9vdG5vdGVfcmVmc3JQBgAAXXJRBgAAVQhpZF9zdGFydHJSBgAASwFVDmN1cnJlbnRfc291cmNlclMGAABOVRJ0cmFuc2Zvcm1fbWVzc2FnZXNyVAYAAF1yVQYAAHViLg==