REDROOM
PHP 8.0.30
Path:
Logout
Edit File
Size: 79.54 KB
Close
//proc/thread-self/root/opt/alt/python37/lib64/python3.7/test/support/__pycache__/__init__.cpython-37.opt-1.pyc
Text
Base64
Qg0NCgAAAACHCCBmmpUBAOMAAAAAAAAAAAAAAABdAAAAQAAAAHNGDQAAZABaAGUBZAFrA3IUZQJkAoMBggFkA2QEbANaBGQDZARsBVoFZANkBGwGWgZkA2QEbAdaB2QDZARsCFoIZANkBGwJWglkA2QEbApaCmQDZARsC1oLZANkBGwMWgxkA2QEbA1aDGQDZARsDloOZANkBGwPWhBkA2QEbBFaEWQDZARsEloSZANkBGwTWhNkA2QEbBRaFGQDZARsFVoVZANkBGwWWhZkA2QEbBdaF2QDZARsGFoYZANkBGwZWhlkA2QEbBpaGmQDZARsG1obZANkBGwcWhxkA2QEbB1aHWQDZARsHloeZANkBGwfWh9kA2QEbCBaIGQDZARsIVohZANkBGwiWiNkA2QEbCRaJGQFZAZsJW0mWiYBAHkMZANkBGwnWihXAG4aBABlAmsKkAFyPgEAAQABAGQEWihZAG4CWAB5DGQDZARsKVopVwBuGgQAZQJrCpABcmYBAAEAAQBkBFopWQBuAlgAeQxkA2QEbCpaKlcAbhoEAGUCawqQAXKOAQABAAEAZARaKlkAbgJYAHkMZANkBGwrWitXAG4aBABlAmsKkAFytgEAAQABAGQEWitZAG4CWAB5DGQDZARsLFosVwBuGgQAZQJrCpABct4BAAEAAQBkBFosWQBuAlgAeQxkA2QEbC1aLVcAbhoEAGUCawqQAnIGAQABAAEAZARaLVkAbgJYAGQHZAhkCWQKZAtkDGQNZA5kD2QQZBFkEmQTZBRkFWQWZBdkGGQZZBpkG2QcZB1kHmQfZCBkIWQiZCNkJGQlZCZkJ2QoZClkKmQrZCxkLWQuZC9kMGQxZDJkM2Q0ZDVkNmQ3ZDhkOWQ6ZDtkPGQ9ZD5kP2RAZEFkQmRDZERkRWRGZEdkSGRJZEpkS2RMZE1kTmRPZFBkUWRSZFNkVGRVZFZkV2RYZFlkWmRbZFxkXWReZF9kYGRhZGJkY2ddWi5HAGRkZAyEAGQMZS+DA1owRwBkZWQNhABkDWUwgwNaMUcAZGZkDoQAZA5lMIMDWjJHAGRnZA+EAGQPZSFqM4MDWjRlBWo1kAFkZmRpZGqEAYMBWjaQAWRnZGxkbZwBZG5kEIQDWjdkb2RwhABaOGRxZHKEAFo5ZHNkPIQAWjpkdGQ9hABaO5ABZGhkdWQRhAFaPGR2ZDiEAFo9ZAVaPmQEWj9kA2FAZANhQWQEWkJka1pDZARhRGR3ZBWEAFpFZHhkFoQAWkZkeWQThABaR2R6ZHuEAFpIZRpqE6BJZHyhAZADctiQAWRpZH1kfoQBWkpkf2SAhABaS2SBZIKEAFpMZINkhIQAWk1khWSGhABaTm4cZRJqT1pLZRJqUFpMZIdkhIQAWk1kiGSGhABaTmSJZByEAFpPZIpki4QAWlBkjGQdhABaUWSNZI6EAFpSZI9kFIQAWlNkkGSRhABaVGSSZCOEAFpVkAFkamSTZCSEAVpWZJRklYQAWldklmQlhABaWGSXZCaEAFpZZJhkJ4QAWlpkmVpbZJpaXGSbWl1lFmpeZRZqX2YCZJxkSIQBWmBlW2YBZJ1kSYQBWmFknmRLhABaYmSfZKCEAFpjZWODAFpkZKFkooQAWmVko1pmZKRaZ2UhoGhlaaBqZKWhAaBJZKahAWSnoQJaa2UhoGhlKWSooQJabGUhoGhlKmSpoQJabWUhoGhlK2SqoQJabmUhoGhlLGSroQJab2UaahOgSWSsoQFacGVxZRpkrYMCWnJlGmoTZK5rA5AFciJlcpAFchxkr24CZLBac24EZARac2USanRkrGsCkAVyOGSxWnVuBGSyWnVks6B2ZXVlEqB3oQChAlp1ZLRaeGQEWnl4SmS1RABdQlp6eR5lEqB7ZRKgfGV6oQGhAWV6awOQBXJ6ZX2CAVcAbhYEAGV9awqQBXKSAQABAAEAWQBuCFgAZXpaeVAAkAVxWlcAZXVkthcAWn5lGmoTZLdrApAFcshkA2QEbH9af2V/oIBkuGV+oQJafmUaoIGhAFqCZARag2USanRkuWsCkAZyNGUaoIShAGoTZLprBZAGcnZldWS7FwBag3kOZYOghWWCoQEBAFcAbhYEAGWGawqQBnIcAQABAAEAWQBuFlgAZYdkvGWDZYJmAhYAgwEBAGQEWoNuQmUaahNkt2sDkAZydnkOZL2giGWCoQEBAFcAbiYEAGWJawqQBnJ0AQABAAEAZXVkvqCIZYJkv6ECFwBag1kAbgJYAGQEWop4RGTARABdPFp0eQ5ldKCIZYKhAQEAVwBuJgQAZYlrCpAGcrgBAAEAAQBlEqB8ZXWhAWV0FwBailAAWQBuAlgAkAZxgFcAZXmQBnLUZXVkwRcAZXkXAFqLbgRkBFqLZRKgjKEAWo1ka1qOZQVqNZABZGtkwmTDhAGDAVqPZQVqNZABZGxkxGTFhAGDAVqQZQVqNZABZG1kx2QehAGDAVqRZXFlEmTIgwKQB3I0ZQVqNWTJZEyEAIMBWpJlEmqToJRlEmqToJVllqEBoQFal2USapOglGWXoQFamGUSapOgmWWYZMqhAlqakAFkbmTLZB+EAVqbZMxkIIQAWpxkzWRchABanWTOZM+EAFqeZARkBGTQnAJk0WQohAJan2TSZEqEAFqgRwBk02TUhABk1GWhgwNaopABZG9k1WTWhAFao2UFajVk12RThACDAVqkZQVqNWTYZFSEAIMBWqVHAGTZZBKEAGQSZaGDA1qmRwBk2mRVhABkVWUEaqdqqIMDWqlHAGTbZNyEAGTcZaGDA1qqRwBk3WQphABkKWWhgwNaq2WrZaxlB2qtZN6NAlquZatlrGUHaq9k3o0CWrBlq2WsZQdqr2TejQJasWTfZOCEAFqyZQVqNWThZGxk4pwCZONkLYQCgwFas2UFajVk5GTlhACDAVq0ZOZkF4QAWrVk52QZhABatmToZBiEAFq3ZOlk6oQAWrhlBWo1ZOtk7IQAgwFauWTtZO6EAFq6ZO9au2TwWrxlcWUaZPGDApAIcsZk8mW7FwBau2TzWrxlu2T0FwBavWT1ZPaEAFq+ZPdk+IQAWr9k+VrAZPpawWT7ZPyEAFrCZP1kVoQAWsNk/mRdhABaxGT/WsWQAWQAZcUUAFrGZLplxhQAWseQAWQBZcYUAFrIZRpqyVrKkAFkAmRahABay0cAkAFkA5ABZASEAJABZASDAlrMkAFkcJABZAVkNYQBWs2QAWQGZDaEAFrORwCQAWQHZC6EAGQugwJaz5ABZAiQAWQJhABa0JABZAqQAWQLhABa0ZABZAxkN4QAWtKQAWRxkAFkDZABZA6EAVrTkAFkD5ABZBCEAFrUkAFkEWRDhABa1ZABZBKQAWQThABa1pABZBSQAWQVhABa15ABZBaQAWQXhABa2JABZBiQAWQZhABa2WQEYdpkBGHbZARh3JABZBqQAWQbhABa3ZABZByQAWQdhABa3pABZHKQAWQekAFkH4QBWt+QAWQgkAFkIYQAWuCQAWQiZC+EAFrhkAFkI5ABZCSEAFriZdWDAJAKb1hlGmoTZK5rA5AKb1hlG6DjkAFkJaEBDABa5GXiagBkBGsJkApvamXkDABa5WUhoGhl5ZABZCahAlrmkAFkc5ABZCdkMIQBWueQAWQokAFkKYQAWuiQAWQqkAFkK4QAWulka2HqkAFkLGRPhABa65ABZC1kUIQAWuyQAWQuZFGEAFrtZQVqNZABZHSQAWQwkAFkMYQBgwFa7pABZHWQAWQykAFkM4QBWu+QAWQ0ZE2EAFrwZQVqNZABZHaQAWQ1ZFKEAYMBWvFlBWo1kAFkNmRYhACDAVryZQVqNZABZDdkV4QAgwFa85ABZDiQAWQ5hABa9GUhoPVlcWUakAFkOoMCkAFkO6ECWvaQAWQ8kAFkPYQAWveQAWQ+kAFkP4QAWvhHAJABZEBkToQAZE5lEGr5avqDA1r7RwCQAWRBZFmEAGRZZaGDA1r8ZARh/ZABZEJkIYQAWv6QAWRDZDGEAFr/ZASQAWEAkAFkRJABZEWEAJABWgGQAWRGZDqEAJABWgJkBJABYQOQAWRHZECEAJABWgSQAWRIZCKEAJABWgVkbJABZEmcAZABZEpkPoQCkAFaBpABZHeQAWRLZD+EAZABWgdHAJABZExkW4QAZFuDApABWgiQAWRNkAFkToQAkAFaCZABZE+QAWRQhACQAVoKkAFkeJABZFGQAWRShAGQAVoLZwBmAZABZFNkX4QBkAFaDGQEkAFhDZABZFRkRYQAkAFaDmUFajWQAWRVkAFkVoQAgwGQAVoPkAFkV2RghACQAVoQRwCQAWRYkAFkWYQAkAFkWYMCkAFaEZABZFqQAWRbhACQAVoSRwCQAWRckAFkXYQAkAFkXYMCkAFaE0cAkAFkXpABZF+EAJABZF+DApABWhSQAWUUgwCQAVoVZQqQAWoWRwCQAWRgkAFkYYQAkAFkYYMCgwGQAVoXkAFlF4MAkAFaGGUKkAFqFkcAkAFkYpABZGOEAJABZGODAoMBkAFaGZABZRmDAJABWhplBWo1kAFkZJABZGWEAIMBkAFaG2QEUwAoeQEAAHo3U3VwcG9ydGluZyBkZWZpbml0aW9ucyBmb3IgdGhlIFB5dGhvbiByZWdyZXNzaW9uIHRlc3RzLnoMdGVzdC5zdXBwb3J0ei5zdXBwb3J0IG11c3QgYmUgaW1wb3J0ZWQgZnJvbSB0aGUgdGVzdCBwYWNrYWdl6QAAAABO6QEAAAApAdoPZ2V0X3Rlc3RfcnVubmVy2g1QSVBFX01BWF9TSVpF2gd2ZXJib3Nl2gptYXhfbWVtdXNl2g11c2VfcmVzb3VyY2Vz2ghmYWlsZmFzdNoFRXJyb3LaClRlc3RGYWlsZWTaDVRlc3REaWROb3RSdW7aDlJlc291cmNlRGVuaWVk2g1pbXBvcnRfbW9kdWxl2hNpbXBvcnRfZnJlc2hfbW9kdWxl2gtDbGVhbkltcG9ydNoGdW5sb2Fk2gZmb3JnZXTaFnJlY29yZF9vcmlnaW5hbF9zdGRvdXTaE2dldF9vcmlnaW5hbF9zdGRvdXTaD2NhcHR1cmVkX3N0ZG91dNoOY2FwdHVyZWRfc3RkaW7aD2NhcHR1cmVkX3N0ZGVyctoGVEVTVEZO2ghTQVZFRENXRNoGdW5saW5r2gZybXRyZWXaCHRlbXBfY3dk2ghmaW5kZmlsZdoRY3JlYXRlX2VtcHR5X2ZpbGXaC2Nhbl9zeW1saW5r2hZmc19pc19jYXNlX2luc2Vuc2l0aXZl2hNpc19yZXNvdXJjZV9lbmFibGVk2ghyZXF1aXJlc9oYcmVxdWlyZXNfZnJlZWJzZF92ZXJzaW9u2hZyZXF1aXJlc19saW51eF92ZXJzaW9u2hByZXF1aXJlc19tYWNfdmVy2hJjaGVja19zeW50YXhfZXJyb3LaEVRyYW5zaWVudFJlc291cmNl2gh0aW1lX291dNoRc29ja2V0X3BlZXJfcmVzZXTaEmlvZXJyb3JfcGVlcl9yZXNldNoSdHJhbnNpZW50X2ludGVybmV02g9CYXNpY1Rlc3RSdW5uZXLaDHJ1bl91bml0dGVzdNoLcnVuX2RvY3Rlc3TaE3NraXBfdW5sZXNzX3N5bWxpbmvaDXJlcXVpcmVzX2d6aXDaDHJlcXVpcmVzX2J6MtoNcmVxdWlyZXNfbHptYdoKYmlnbWVtdGVzdNoQYmlnYWRkcnNwYWNldGVzdNoMY3B5dGhvbl9vbmx52g1nZXRfYXR0cmlidXRl2hFyZXF1aXJlc19JRUVFXzc1NNoRc2tpcF91bmxlc3NfeGF0dHLaDXJlcXVpcmVzX3psaWLaEmFudGljaXBhdGVfZmFpbHVyZdoSbG9hZF9wYWNrYWdlX3Rlc3Rz2hNkZXRlY3RfYXBpX21pc21hdGNo2gxjaGVja19fYWxsX1/aHHNraXBfdW5sZXNzX2JpbmRfdW5peF9zb2NrZXTaCWlzX2p5dGhvbtoKaXNfYW5kcm9pZNoRY2hlY2tfaW1wbF9kZXRhaWzaCnVuaXhfc2hlbGzaEXNldHN3aXRjaGludGVydmFs2gRIT1NU2gxJUFY2X0VOQUJMRUTaEGZpbmRfdW51c2VkX3BvcnTaCWJpbmRfcG9ydNoQb3Blbl91cmxyZXNvdXJjZdoQYmluZF91bml4X3NvY2tldNoKdGVtcF91bWFza9oNcmVhcF9jaGlsZHJlbtoLVGVzdEhhbmRsZXLaD3RocmVhZGluZ19zZXR1cNoRdGhyZWFkaW5nX2NsZWFudXDaDHJlYXBfdGhyZWFkc9oNc3RhcnRfdGhyZWFkc9oOY2hlY2tfd2FybmluZ3PaGWNoZWNrX25vX3Jlc291cmNlX3dhcm5pbmfaE0Vudmlyb25tZW50VmFyR3VhcmTaD3J1bl93aXRoX2xvY2FsZdoJc3dhcF9pdGVt2glzd2FwX2F0dHLaB01hdGNoZXLaDHNldF9tZW1saW1pdNoTU3VwcHJlc3NDcmFzaFJlcG9ydNoIc29ydGRpY3TaC3J1bl93aXRoX3R62gNQR0/aG21pc3NpbmdfY29tcGlsZXJfZXhlY3V0YWJsZdoIZmRfY291bnTaCUFMV0FZU19FUdoHTEFSR0VTVNoIU01BTExFU1RjAAAAAAAAAAAAAAAAAQAAAEAAAABzEAAAAGUAWgFkAFoCZAFaA2QCUwApA3IJAAAAeipCYXNlIGNsYXNzIGZvciByZWdyZXNzaW9uIHRlc3QgZXhjZXB0aW9ucy5OKQTaCF9fbmFtZV9f2gpfX21vZHVsZV9f2gxfX3F1YWxuYW1lX1/aB19fZG9jX1+pAHJlAAAAcmUAAAD6Oi9vcHQvYWx0L3B5dGhvbjM3L2xpYjY0L3B5dGhvbjMuNy90ZXN0L3N1cHBvcnQvX19pbml0X18ucHlyCQAAAHMAAABzAgAAAAgBYwAAAAAAAAAAAAAAAAEAAABAAAAAcxAAAABlAFoBZABaAmQBWgNkAlMAKQNyCgAAAHoMVGVzdCBmYWlsZWQuTikEcmEAAAByYgAAAHJjAAAAcmQAAAByZQAAAHJlAAAAcmUAAAByZgAAAHIKAAAAdgAAAHMCAAAACAFjAAAAAAAAAAAAAAAAAQAAAEAAAABzEAAAAGUAWgFkAFoC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cmVtb3ZpbmcgdGhlIG5hbWVkIG1vZHVsZSBmcm9tIHN5cy5tb2R1bGVzIGJlZm9yZSBkb2luZyB0aGUgaW1wb3J0LgogICAgTm90ZSB0aGF0IHVubGlrZSByZWxvYWQsIHRoZSBvcmlnaW5hbCBtb2R1bGUgaXMgbm90IGFmZmVjdGVkIGJ5CiAgICB0aGlzIG9wZXJhdGlvbi4KCiAgICAqZnJlc2gqIGlzIGFuIGl0ZXJhYmxlIG9mIGFkZGl0aW9uYWwgbW9kdWxlIG5hbWVzIHRoYXQgYXJlIGFsc28gcmVtb3ZlZAogICAgZnJvbSB0aGUgc3lzLm1vZHVsZXMgY2FjaGUgYmVmb3JlIGRvaW5nIHRoZSBpbXBvcnQuCgogICAgKmJsb2NrZWQqIGlzIGFuIGl0ZXJhYmxlIG9mIG1vZHVsZSBuYW1lcyB0aGF0IGFyZSByZXBsYWNlZCB3aXRoIE5vbmUKICAgIGluIHRoZSBtb2R1bGUgY2FjaGUgZHVyaW5nIHRoZSBpbXBvcnQgdG8gZW5zdXJlIHRoYXQgYXR0ZW1wdHMgdG8gaW1wb3J0CiAgICB0aGVtIHJhaXNlIEltcG9ydEVycm9yLgoKICAgIFRoZSBuYW1lZCBtb2R1bGUgYW5kIGFueSBtb2R1bGVzIG5hbWVkIGluIHRoZSAqZnJlc2gqIGFuZCAqYmxvY2tlZCoKICAgIHBhcmFtZXRlcnMgYXJlIHNhdmVkIGJlZm9yZSBzdGFydGluZyB0aGUgaW1wb3J0IGFuZCB0aGVuIHJlaW5zZXJ0ZWQgaW50bwogICAgc3lzLm1vZHVsZXMgd2hlbiB0aGUgZnJlc2ggaW1wb3J0IGlzIGNvbXBsZXRlLgoKICAgIE1vZHVsZSBhbmQgcGFja2FnZSBkZXByZWNhdGlvbiBtZXNzYWdlcyBhcmUgc3VwcHJlc3NlZCBkdXJpbmcgdGhpcyBpbXBvcnQKICAgIGlmICpkZXByZWNhdGVkKiBpcyBUcnVlLgoKICAgIFRoaXMgZnVuY3Rpb24gd2lsbCByYWlzZSBJbXBvcnRFcnJvciBpZiB0aGUgbmFtZWQgbW9kdWxlIGNhbm5vdCBiZQogICAgaW1wb3J0ZWQuCiAgICBOKQpybAAAAHKAAAAAcoIAAADaBmFwcGVuZHJuAAAAcg0AAABybwAAANoFaXRlbXNycAAAAHJ7AAAAKQxydwAAAFoFZnJlc2haB2Jsb2NrZWRyeAAAAHJ+AAAAWg9uYW1lc190b19yZW1vdmVaCmZyZXNoX25hbWVaDGJsb2NrZWRfbmFtZVoMZnJlc2hfbW9kdWxlWglvcmlnX25hbWXaBm1vZHVsZVoObmFtZV90b19yZW1vdmVyZQAAAHJlAAAAcmYAAAByDgAAAOAAAABzJAAAAAAbCgMEAQQBCgEEAQoBDgEKAQoBDgEOAQ4BDgISAQ4BCgEOAWMCAAAAAAAAAAMAAAAIAAAAQwAAAHM+AAAAeQ50AHwAfAGDAn0CVwBuJgQAdAFrCnI0AQABAAEAdAKgA2QBfAB8AWYCFgChAYIBWQBuBlgAfAJTAGQCUwApA3o/R2V0IGFuIGF0dHJpYnV0ZSwgcmFpc2luZyBTa2lwVGVzdCBpZiBBdHRyaWJ1dGVFcnJvciBpcyByYWlzZWQueh1vYmplY3QgJXIgaGFzIG5vIGF0dHJpYnV0ZSAlck4pBNoHZ2V0YXR0ctoOQXR0cmlidXRlRXJyb3JydAAAAHJ1AAAAKQPaA29ianJ3AAAAWglhdHRyaWJ1dGVyZQAAAHJlAAAAcmYAAAByNQAAABIBAABzCgAAAAACAgEOAQ4BGAJjAQAAAAAAAAABAAAAAQAAAEMAAABzCAAAAHwAYQBkAFMAKQFOKQHaEF9vcmlnaW5hbF9zdGRvdXQpAdoGc3Rkb3V0cmUAAAByZQAAAHJmAAAAchIAAAAnAQAAcwIAAAAAAmMAAAAAAAAAAAAAAAABAAAAQwAAAHMKAAAAdABwCHQBagJTACkBTikDcpIAAABycAAAAHKTAAAAcmUAAAByZQAAAHJlAAAAcmYAAAByEwAAACsBAABzAgAAAAABYwEAAAAAAAAAAQAAAAgAAABDAAAAcyYAAAB5DHQAagF8AD0AVwBuFAQAdAJrCnIgAQABAAEAWQBuAlgAZABTACkBTikDcnAAAAByewAAAHKBAAAAKQFydwAAAHJlAAAAcmUAAAByZgAAAHIQAAAALgEAAHMIAAAAAAECAQwBDgFjAgAAAAAAAAAEAAAACgAAAEcAAABzcAAAAHkIfAF8Ao4AUwAEAHQAawpyagEAfQMBAHpEdAFkAWsFckh0AmQCfANqA2oEfANmAhYAgwEBAHQCZAN8AWoEfAJmAhYAgwEBAHQFoAZ8AHQHagihAgEAfAF8Ao4AUwBkAH0DfgNYAFkAbgJYAGQAUwApBE7pAgAAAHoGJXM6ICVzegtyZS1ydW4gJXMlcikJ2gdPU0Vycm9ycgUAAADaBXByaW502glfX2NsYXNzX19yYQAAAHKHAAAA2gVjaG1vZNoEc3RhdNoHU19JUldYVSkEcogAAADaBGZ1bmPaBGFyZ3PaA2VycnJlAAAAcmUAAAByZgAAANoKX2ZvcmNlX3J1bjQBAABzEAAAAAABAgEIARABCAEUARIBDgFyngAAANoDd2luYwMAAAAAAAAABwAAAAUAAABDAAAAc4YAAAB8AHwBgwEBAHwCchJ8AX0Dbhh0AGoBoAJ8AaEBXAJ9A30EfANwKGQBfQNkAn0FeD58BWQDawBybHQAoAN8A6EBfQZ8AnJMfAZzWG4IfAR8BmsGc1hkAFMAdASgBXwFoQEBAHwFZAQ5AH0FcTBXAHQGagdkBXwBFwB0CGQGZAeNAwEAZABTACkITnJ6AAAAZ/yp8dJNYlA/ZwAAAAAAAPA/cpQAAAB6KXRlc3RzIG1heSBmYWlsLCBkZWxldGUgc3RpbGwgcGVuZGluZyBmb3Ig6QQAAAApAdoKc3RhY2tsZXZlbCkJcocAAAByiAAAANoFc3BsaXTaB2xpc3RkaXLaBHRpbWXaBXNsZWVwcmgAAADaBHdhcm7aDlJ1bnRpbWVXYXJuaW5nKQdymwAAANoIcGF0aG5hbWXaB3dhaXRhbGxyiQAAAHJ3AAAA2gd0aW1lb3V02gFMcmUAAAByZQAAAHJmAAAA2ghfd2FpdGZvcj8BAABzHAAAAAACCAIEAQYCEAEIBwQBCggKARIBBAIKAQwBCgFyrAAAAGMBAAAAAAAAAAEAAAADAAAAQwAAAHMQAAAAdAB0AWoCfACDAgEAZABTACkBTikDcqwAAAByhwAAAHIZAAAAKQHaCGZpbGVuYW1lcmUAAAByZQAAAHJmAAAA2gdfdW5saW5rYAEAAHMCAAAAAAFyrgAAAGMBAAAAAAAAAAEAAAADAAAAQwAAAHMQAAAAdAB0AWoCfACDAgEAZABTACkBTikDcqwAAAByhwAAANoFcm1kaXIpAXKJAAAAcmUAAAByZQAAAHJmAAAA2gZfcm1kaXJjAQAAcwIAAAAAAXKwAAAAYwEAAAAAAAAAAQAAAAUAAAADAAAAcywAAACHAGYBZAFkAoQIiQB0AIgAfABkA2QEjQMBAHQAZAVkBoQAfACDAgEAZABTACkHTmMBAAAAAAAAAAUAAAALAAAAEwAAAHOuAAAAeKh0AHwAdAFqAnwAgwNEAF2WfQF0AWoDoAR8AHwBoQJ9AnkQdAGgBXwCoQFqBn0DVwBuPAQAdAdrCnJuAQB9BAEAeh50CGQBfAJ8BGYCFgB0CWoKZAKNAgEAZAN9A1cAZABkAH0EfgRYAFkAbgJYAHQLoAx8A6EBcph0DYgAfAJkBGQFjQMBAHQAfAJ0AWoOfAKDAwEAcRB0AHwCdAFqD3wCgwMBAHEQVwBkAFMAKQZOei1zdXBwb3J0LnJtdHJlZSgpOiBvcy5sc3RhdCglcikgZmFpbGVkIHdpdGggJXMpAdoEZmlsZXIBAAAAVCkBcqkAAAApEHKeAAAAcocAAAByowAAAHKIAAAA2gRqb2lu2gVsc3RhdNoHc3RfbW9kZXKVAAAAcpYAAABycAAAANoKX19zdGRlcnJfX3KZAAAA2gdTX0lTRElScqwAAAByrwAAAHIZAAAAKQVyiAAAAHJ3AAAA2ghmdWxsbmFtZdoEbW9kZdoDZXhjKQHaDV9ybXRyZWVfaW5uZXJyZQAAAHJmAAAAcroAAABnAQAAcxgAAAAAARQBDgECARABEAEMAQoBFgEKAQ4BEAJ6Hl9ybXRyZWUuPGxvY2Fscz4uX3JtdHJlZV9pbm5lclQpAXKpAAAAYwEAAAAAAAAAAQAAAAQAAABTAAAAcw4AAAB0AHwAdAFqAnwAgwNTACkBTikDcp4AAAByhwAAAHKvAAAAKQHaAXByZQAAAHJlAAAAcmYAAAByhAAAAHYBAAByhQAAAHoZX3JtdHJlZS48bG9jYWxzPi48bGFtYmRhPikBcqwAAAApAXKIAAAAcmUAAAApAXK6AAAAcmYAAADaB19ybXRyZWVmAQAAcwYAAAAAAQwODgFyvAAAAGMBAAAAAAAAAAQAAAAIAAAAQwAAAHNeAAAAeQxkAWQAbAB9AVcAbhQEAHQBawpyIAEAAQABAFkAbjpYAHwBoAJ0A3wAgwFkAhQAoQF9AnwBagRqBaAGfAB8AnQDfAKDAaEDfQN8A3JafAJkAHwDhQIZAFMAfABTACkDTnIBAAAAcpQAAAApB9oGY3R5cGVzcm8AAABaFWNyZWF0ZV91bmljb2RlX2J1ZmZlctoDbGVu2gZ3aW5kbGzaCGtlcm5lbDMyWhBHZXRMb25nUGF0aE5hbWVXKQRyiAAAAHK9AAAA2gZidWZmZXLaBmxlbmd0aHJlAAAAcmUAAAByZgAAANoJX2xvbmdwYXRoeAEAAHMUAAAAAAECAQwBDgIGAhIBDAEKAQQBDAFywwAAAGMBAAAAAAAAAAEAAAAIAAAAAwAAAHNGAAAAeQ50AKABfAChAQEAZABTAAQAdAJrCnIiAQABAAEAWQBuAlgAhwBmAWQBZAKECIkAiAB8AIMBAQB0A6AEfAChAQEAZABTACkDTmMBAAAAAAAAAAQAAAAJAAAAEwAAAHOEAAAAeH50AHwAdAFqAnwAgwNEAF1sfQF0AWoDoAR8AHwBoQJ9AnkQdAGgBXwCoQFqBn0DVwBuGAQAdAdrCnJKAQABAAEAZAF9A1kAbgJYAHQIoAl8A6EBcm6IAHwCgwEBAHQAfAB0AWoKfAKDAwEAcRB0AHwAdAFqC3wCgwMBAHEQVwBkAFMAKQJOcgEAAAApDHKeAAAAcocAAAByowAAAHKIAAAAcrIAAAByswAAAHK0AAAAcpUAAABymQAAAHK2AAAAcq8AAAByGQAAACkEcogAAABydwAAAHK3AAAAcrgAAAApAXK6AAAAcmUAAAByZgAAAHK6AAAAkAEAAHMUAAAAAAEUAQ4BAgEQAQ4BCgEKAQgBEAJ6Hl9ybXRyZWUuPGxvY2Fscz4uX3JtdHJlZV9pbm5lcikF2gZzaHV0aWxyGgAAAHKVAAAAcocAAAByrwAAACkBcogAAAByZQAAACkBcroAAAByZgAAAHK8AAAAiQEAAHMQAAAAAAECAQoBBAEOAQYCDAwIAWMBAAAAAAAAAAEAAAABAAAAQwAAAHMEAAAAfABTACkBTnJlAAAAKQFyiAAAAHJlAAAAcmUAAAByZgAAAHLDAAAAnwEAAHMCAAAAAAFjAQAAAAAAAAABAAAACQAAAEMAAABzKgAAAHkMdAB8AIMBAQBXAG4YBAB0AXQCZgJrCnIkAQABAAEAWQBuAlgAZABTACkBTikDcq4AAADaEUZpbGVOb3RGb3VuZEVycm9y2hJOb3RBRGlyZWN0b3J5RXJyb3IpAXKtAAAAcmUAAAByZQAAAHJmAAAAchkAAACiAQAAcwgAAAAAAQIBDAESAWMBAAAAAAAAAAEAAAAIAAAAQwAAAHMmAAAAeQx0AHwAgwEBAFcAbhQEAHQBawpyIAEAAQABAFkAbgJYAGQAUwApAU4pAnKwAAAAcsUAAAApAXKJAAAAcmUAAAByZQAAAHJmAAAAcq8AAACoAQAAcwgAAAAAAQIBDAEOAXKvAAAAYwEAAAAAAAAAAQAAAAgAAABDAAAAcyYAAAB5DHQAfACDAQEAVwBuFAQAdAFrCnIgAQABAAEAWQBuAlgAZABTACkBTikCcrwAAAByxQAAACkBcogAAAByZQAAAHJlAAAAcmYAAAByGgAAAK4BAABzCAAAAAABAgEMAQ4BYwEAAAAAAAAABAAAAAUAAABDAAAAc0IAAAB0AGoBoAJ8AKEBfQF0A2oEoAV0A2oEoAZ8AKEBoQF9AnQDagSgB3wCfABkARcAoQJ9A3QDoAh8AXwDoQIBAHwDUwApAmETAQAATW92ZSBhIFBFUCAzMTQ3LzQ4OCBweWMgZmlsZSB0byBpdHMgbGVnYWN5IHB5YyBsb2NhdGlvbi4KCiAgICA6cGFyYW0gc291cmNlOiBUaGUgZmlsZSBzeXN0ZW0gcGF0aCB0byB0aGUgc291cmNlIGZpbGUuICBUaGUgc291cmNlIGZpbGUKICAgICAgICBkb2VzIG5vdCBuZWVkIHRvIGV4aXN0LCBob3dldmVyIHRoZSBQRVAgMzE0Ny80ODggcHljIGZpbGUgbXVzdCBleGlzdC4KICAgIDpyZXR1cm46IFRoZSBmaWxlIHN5c3RlbSBwYXRoIHRvIHRoZSBsZWdhY3kgcHljIGZpbGUuCiAgICDaAWMpCXJuAAAA2gR1dGls2hFjYWNoZV9mcm9tX3NvdXJjZXKHAAAAcogAAAByiQAAANoHYWJzcGF0aHKyAAAA2gZyZW5hbWUpBNoGc291cmNlWghweWNfZmlsZVoGdXBfb25lWgpsZWdhY3lfcHljcmUAAAByZQAAAHJmAAAA2g9tYWtlX2xlZ2FjeV9weWO0AQAAcwoAAAAABwwBFAESAQwBcs0AAABjAQAAAAAAAAAEAAAABwAAAEMAAABzXAAAAHQAfACDAQEAeE50AWoCRABdRH0BdANqAqAEfAF8AGQBFwChAn0CdAV8AmQCFwCDAQEAeCBkA0QAXRh9A3QFdAZqB2oIfAJ8A2QEjQKDAQEAcThXAHEQVwBkBVMAKQZ6jidGb3JnZXQnIGEgbW9kdWxlIHdhcyBldmVyIGltcG9ydGVkLgoKICAgIFRoaXMgcmVtb3ZlcyB0aGUgbW9kdWxlIGZyb20gc3lzLm1vZHVsZXMgYW5kIGRlbGV0ZXMgYW55IFBFUCAzMTQ3LzQ4OCBvcgogICAgbGVnYWN5IC5weWMgZmlsZXMuCiAgICB6Ay5weXLHAAAAKQPaAHICAAAAcpQAAAApAdoMb3B0aW1pemF0aW9uTikJchAAAABycAAAAHKIAAAAcocAAABysgAAAHIZAAAAcm4AAAByyAAAAHLJAAAAKQRyfwAAAHKJAAAAcswAAADaA29wdHJlAAAAcmUAAAByZgAAAHIRAAAAwQEAAHMMAAAAAAYIAQwBEgMMAQoBYwAAAAAAAAAAFQAAAAoAAAADAAAAc/wBAAB0AHQBZAGDAnIQdAFqAlMAZAB9AHQDagSgBWQCoQFyvmQDZABsBokBZANkAGwHiQFkBH0BZAR9AkcAhwFmAWQFZAaECGQGiAFqCIMDfQOIAWoJagp9BHwEoAuhAH0FfAVzaogBoAyhAIIBfAODAH0GiAFqDaAOoQB9B3wEoA98BXwBiAGgEHwGoQGIAaARfAahAYgBoBB8B6EBoQV9CHwIc6qIAaAMoQCCAXQSfAZqE3wCQACDAXO8ZAd9AG6YdANqBGQIawKQAXJWZANkCWwGbRR9CW0ViQBtFn0KbQh9CwEAZANkCmwXbRh9DAEAfAmgGXwMZAuDAaEBfQ18DaAaoQBkA2sCkAFyEGQMfQBuRkcAhwBmAWQNZA6ECGQOfAuDA30OfA6DAH0PfAp8D4MBfRB8DaAbfBChAWQDawCQAXNSfA2gHHwQoQFkA2sAkAFyVmQPfQB8AJABc+h5LmQDZBBsHW0efREBAHwRgwB9EnwSoB+hAAEAfBKgIKEAAQB8EqAhoQABAFcAblwEAHQiawqQAXLmAQB9EwEAejx0I3wTgwF9FHQkfBSDAWQRawSQAXLEfBRkAGQRhQIZAGQSFwB9FGQToCV0JnwTgwFqJ3wUoQJ9AFcAZABkAH0TfhNYAFkAbgJYAHwAdAFfKHwADAB0AV8CdAFqAlMAKRRO2gZyZXN1bHRynwAAAHIBAAAAcgIAAABjAAAAAAAAAAAAAAAABAAAAAAAAABzLgAAAGUAWgFkAFoCZAGUAGoDagRmAmQClABqA2oEZgJkA5QAagNqBWYCZwNaBmQEUwApBXoqX2lzX2d1aV9hdmFpbGFibGUuPGxvY2Fscz4uVVNFUk9CSkVDVEZMQUdTWghmSW5oZXJpdFoJZlJlc2VydmVk2gdkd0ZsYWdzTikHcmEAAAByYgAAAHJjAAAA2gh3aW50eXBlc1oEQk9PTNoFRFdPUkTaCF9maWVsZHNfcmUAAAApAXK9AAAAcmUAAAByZgAAANoPVVNFUk9CSkVDVEZMQUdT3AEAAHMGAAAACAEKAQoBctYAAAB6LGd1aSBub3QgYXZhaWxhYmxlIChXU0ZfVklTSUJMRSBmbGFnIG5vdCBzZXQp2gZkYXJ3aW4pBNoEY2RsbNoFY19pbnTaB3BvaW50ZXLaCVN0cnVjdHVyZSkB2gxmaW5kX2xpYnJhcnlaE0FwcGxpY2F0aW9uU2VydmljZXN6MGd1aSB0ZXN0cyBjYW5ub3QgcnVuIHdpdGhvdXQgT1MgWCB3aW5kb3cgbWFuYWdlcmMAAAAAAAAAAAAAAAADAAAAAAAAAHMcAAAAZQBaAWQAWgJkAZQAZgJkApQAZgJnAloDZANTACkEei5faXNfZ3VpX2F2YWlsYWJsZS48bG9jYWxzPi5Qcm9jZXNzU2VyaWFsTnVtYmVyWg1oaWdoTG9uZ09mUFNOWgxsb3dMb25nT2ZQU05OKQRyYQAAAHJiAAAAcmMAAABy1QAAAHJlAAAAKQFy2QAAAHJlAAAAcmYAAADaE1Byb2Nlc3NTZXJpYWxOdW1iZXL+AQAAcwQAAAAIAQYBct0AAAB6I2Nhbm5vdCBydW4gd2l0aG91dCBPUyBYIGd1aSBwcm9jZXNzKQHaAlRr6TIAAAB6BiBbLi4uXXocVGsgdW5hdmFpbGFibGUgZHVlIHRvIHt9OiB7fSkp2gdoYXNhdHRy2hFfaXNfZ3VpX2F2YWlsYWJsZXLRAAAAcnAAAABycQAAAHJyAAAAcr0AAABaD2N0eXBlcy53aW50eXBlc3LbAAAAcr8AAABaBnVzZXIzMloXR2V0UHJvY2Vzc1dpbmRvd1N0YXRpb25aCFdpbkVycm9yctMAAABy1AAAAFoZR2V0VXNlck9iamVjdEluZm9ybWF0aW9uV1oFYnlyZWZaBnNpemVvZtoEYm9v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cmVzcyAoZGVmYXVsdHMgdG8gMC4wLjAuMCkgd2l0aCB0aGUgcG9ydCBzZXQgdG8gMCwKICAgIGVsaWNpdGluZyBhbiB1bnVzZWQgZXBoZW1lcmFsIHBvcnQgZnJvbSB0aGUgT1MuICBUaGUgdGVtcG9yYXJ5IHNvY2tldCBpcwogICAgdGhlbiBjbG9zZWQgYW5kIGRlbGV0ZWQsIGFuZCB0aGUgZXBoZW1lcmFsIHBvcnQgaXMgcmV0dXJuZWQuCgogICAgRWl0aGVyIHRoaXMgbWV0aG9kIG9yIGJpbmRfcG9ydCgpIHNob3VsZCBiZSB1c2VkIGZvciBhbnkgdGVzdHMgd2hlcmUgYQogICAgc2VydmVyIHNvY2tldCBuZWVkcyB0byBiZSBib3VuZCB0byBhIHBhcnRpY3VsYXIgcG9ydCBmb3IgdGhlIGR1cmF0aW9uIG9mCiAgICB0aGUgdGVzdC4gIFdoaWNoIG9uZSB0byB1c2UgZGVwZW5kcyBvbiB3aGV0aGVyIHRoZSBjYWxsaW5nIGNvZGUgaXMgY3JlYXRpbmcKICAgIGEgcHl0aG9uIHNvY2tldCwgb3IgaWYgYW4gdW51c2VkIHBvcnQgbmVlZHMgdG8gYmUgcHJvdmlkZWQgaW4gYSBjb25zdHJ1Y3RvcgogICAgb3IgcGFzc2VkIHRvIGFuIGV4dGVybmFsIHByb2dyYW0gKGkuZS4gdGhlIC1hY2NlcHQgYXJndW1lbnQgdG8gb3BlbnNzbCdzCiAgICBzX3NlcnZlciBtb2RlKS4gIEFsd2F5cyBwcmVmZXIgYmluZF9wb3J0KCkgb3ZlciBmaW5kX3VudXNlZF9wb3J0KCkgd2hlcmUKICAgIHBvc3NpYmxlLiAgSGFyZCBjb2RlZCBwb3J0cyBzaG91bGQgKk5FVkVSKiBiZSB1c2VkLiAgQXMgc29vbiBhcyBhIHNlcnZlcgogICAgc29ja2V0IGlzIGJvdW5kIHRvIGEgaGFyZCBjb2RlZCBwb3J0LCB0aGUgYWJpbGl0eSB0byBydW4gbXVsdGlwbGUgaW5zdGFuY2VzCiAgICBvZiB0aGUgdGVzdCBzaW11bHRhbmVvdXNseSBvbiB0aGUgc2FtZSBob3N0IGlzIGNvbXByb21pc2VkLCB3aGljaCBtYWtlcyB0aGUKICAgIHRlc3QgYSB0aWNraW5nIHRpbWUgYm9tYiBpbiBhIGJ1aWxkYm90IGVudmlyb25tZW50LiBPbiBVbml4IGJ1aWxkYm90cywgdGhpcwogICAgbWF5IHNpbXBseSBtYW5pZmVzdCBhcyBhIGZhaWxlZCB0ZXN0LCB3aGljaCBjYW4gYmUgcmVjb3ZlcmVkIGZyb20gd2l0aG91dAogICAgaW50ZXJ2ZW50aW9uIGluIG1vc3QgY2FzZXMsIGJ1dCBvbiBXaW5kb3dzLCB0aGUgZW50aXJlIHB5dGhvbiBwcm9jZXNzIGNhbgogICAgY29tcGxldGVseSBhbmQgdXR0ZXJseSB3ZWRnZSwgcmVxdWlyaW5nIHNvbWVvbmUgdG8gbG9nIGluIHRvIHRoZSBidWlsZGJvdAogICAgYW5kIG1hbnVhbGx5IGtpbGwgdGhlIGFmZmVjdGVkIHByb2Nlc3MuCgogICAgKFRoaXMgaXMgZWFzeSB0byByZXByb2R1Y2Ugb24gV2luZG93cywgdW5mb3J0dW5hdGVseSwgYW5kIGNhbiBiZSB0cmFjZWQgdG8KICAgIHRoZSBTT19SRVVTRUFERFIgc29ja2V0IG9wdGlvbiBoYXZpbmcgZGlmZmVyZW50IHNlbWFudGljcyBvbiBXaW5kb3dzIHZlcnN1cwogICAgVW5peC9MaW51eC4gIE9uIFVuaXgsIHlvdSBjYW4ndCBoYXZlIHR3byBBRl9JTkVUIFNPQ0tfU1RSRUFNIHNvY2tldHMgYmluZCwKICAgIGxpc3RlbiBhbmQgdGhlbiBhY2NlcHQgY29ubmVjdGlvbnMgb24gaWRlbnRpY2FsIGhvc3QvcG9ydHMuICBBbiBFQUREUklOVVNFCiAgICBPU0Vycm9yIHdpbGwgYmUgcmFpc2VkIGF0IHNvbWUgcG9pbnQgKGRlcGVuZGluZyBvbiB0aGUgcGxhdGZvcm0gYW5kCiAgICB0aGUgb3JkZXIgYmluZCBhbmQgbGlzdGVuIHdlcmUgY2FsbGVkIG9uIGVhY2ggc29ja2V0KS4KCiAgICBIb3dldmVyLCBvbiBXaW5kb3dzLCBpZiBTT19SRVVTRUFERFIgaXMgc2V0IG9uIHRoZSBzb2NrZXRzLCBubyBFQUREUklOVVNFCiAgICB3aWxsIGV2ZXIgYmUgcmFpc2VkIHdoZW4gYXR0ZW1wdGluZyB0byBiaW5kIHR3byBpZGVudGljYWwgaG9zdC9wb3J0cy4gV2hlbgogICAgYWNjZXB0KCkgaXMgY2FsbGVkIG9uIGVhY2ggc29ja2V0LCB0aGUgc2Vjb25kIGNhbGxlcidzIHByb2Nlc3Mgd2lsbCBzdGVhbAogICAgdGhlIHBvcnQgZnJvbSB0aGUgZmlyc3QgY2FsbGVyLCBsZWF2aW5nIHRoZW0gYm90aCBpbiBhbiBhd2t3YXJkbHkgd2VkZ2VkCiAgICBzdGF0ZSB3aGVyZSB0aGV5J2xsIG5vIGxvbmdlciByZXNwb25kIHRvIGFueSBzaWduYWxzIG9yIGdyYWNlZnVsIGtpbGxzLCBhbmQKICAgIG11c3QgYmUgZm9yY2libHkga2lsbGVkIHZpYSBPcGVuUHJvY2VzcygpL1Rlcm1pbmF0ZVByb2Nlc3MoKS4KCiAgICBUaGUgc29sdXRpb24gb24gV2luZG93cyBpcyB0byB1c2UgdGhlIFNPX0VYQ0xVU0lWRUFERFJVU0Ugc29ja2V0IG9wdGlvbgogICAgaW5zdGVhZCBvZiBTT19SRVVTRUFERFIsIHdoaWNoIGVmZmVjdGl2ZWx5IGFmZm9yZHMgdGhlIHNhbWUgc2VtYW50aWNzIGFzCiAgICBTT19SRVVTRUFERFIgb24gVW5peC4gIEdpdmVuIHRoZSBwcm9wZW5zaXR5IG9mIFVuaXggZGV2ZWxvcGVycyBpbiB0aGUgT3BlbgogICAgU291cmNlIHdvcmxkIGNvbXBhcmVkIHRvIFdpbmRvd3Mgb25lcywgdGhpcyBpcyBhIGNvbW1vbiBtaXN0YWtlLiAgQSBxdWljawogICAgbG9vayBvdmVyIE9wZW5TU0wncyAwLjkuOGcgc291cmNlIHNob3dzIHRoYXQgdGhleSB1c2UgU09fUkVVU0VBRERSIHdoZW4KICAgIG9wZW5zc2wuZXhlIGlzIGNhbGxlZCB3aXRoIHRoZSAnc19zZXJ2ZXInIG9wdGlvbiwgZm9yIGV4YW1wbGUuIFNlZQogICAgaHR0cDovL2J1Z3MucHl0aG9uLm9yZy9pc3N1ZTI1NTAgZm9yIG1vcmUgaW5mby4gIFRoZSBmb2xsb3dpbmcgc2l0ZSBhbHNvCiAgICBoYXMgYSB2ZXJ5IHRob3JvdWdoIGRlc2NyaXB0aW9uIGFib3V0IHRoZSBpbXBsaWNhdGlvbnMgb2YgYm90aCBSRVVTRUFERFIKICAgIGFuZCBFWENMVVNJVkVBRERSVVNFIG9uIFdpbmRvd3M6CiAgICBodHRwOi8vbXNkbjIubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L21zNzQwNjIxKFZTLjg1KS5hc3B4KQoKICAgIFhYWDogYWx0aG91Z2ggdGhpcyBhcHByb2FjaCBpcyBhIHZhc3QgaW1wcm92ZW1lbnQgb24gcHJldmlvdXMgYXR0ZW1wdHMgdG8KICAgIGVsaWNpdCB1bnVzZWQgcG9ydHMsIGl0IHJlc3RzIGhlYXZpbHkgb24gdGhlIGFzc3VtcHRpb24gdGhhdCB0aGUgZXBoZW1lcmFsCiAgICBwb3J0IHJldHVybmVkIHRvIHVzIGJ5IHRoZSBPUyB3b24ndCBpbW1lZGlhdGVseSBiZSBkaXNoZWQgYmFjayBvdXQgdG8gc29tZQogICAgb3RoZXIgcHJvY2VzcyB3aGVuIHdlIGNsb3NlIGFuZCBkZWxldGUgb3VyIHRlbXBvcmFyeSBzb2NrZXQgYnV0IGJlZm9yZSBvdXIKICAgIGNhbGxpbmcgY29kZSBoYXMgYSBjaGFuY2UgdG8gYmluZCB0aGUgcmV0dXJuZWQgcG9ydC4gIFdlIGNhbiBkZWFsIHdpdGggdGhpcwogICAgaXNzdWUgaWYvd2hlbiB3ZSBjb21lIGFjcm9zcyBpdC4KICAgICkD2gZzb2NrZXRyRgAAANoFY2xvc2UpBNoGZmFtaWx5Wghzb2NrdHlwZVoIdGVtcHNvY2vaBHBvcnRyZQAAAHJlAAAAcmYAAAByRQAAAHoCAABzCgAAAAA4DAEIAQgBAgFjAgAAAAAAAAADAAAACAAAAEMAAABzwgAAAHwAagB0AWoCawJypHwAagN0AWoEawJypHQFdAFkAYMCcj58AKAGdAFqB3QBagihAmQCawJyPnQJZAODAYIBdAV0AWQEgwJyiGQFdApqC2sHcoh5IHwAoAZ0AWoHdAFqDKECZAJrAnJwdAlkBoMBggFXAG4UBAB0DWsKcoYBAAEAAQBZAG4CWAB0BXQBZAeDAnKkfACgDnQBagd0AWoPZAKhAwEAfACgEHwBZAhmAqEBAQB8AKARoQBkAhkAfQJ8AlMAKQlhJQMAAEJpbmQgdGhlIHNvY2tldCB0byBhIGZyZWUgcG9ydCBhbmQgcmV0dXJuIHRoZSBwb3J0IG51bWJlci4gIFJlbGllcyBvbgogICAgZXBoZW1lcmFsIHBvcnRzIGluIG9yZGVyIHRvIGVuc3VyZSB3ZSBhcmUgdXNpbmcgYW4gdW5ib3VuZCBwb3J0LiAgVGhpcyBpcwogICAgaW1wb3J0YW50IGFzIG1hbnkgdGVzdHMgbWF5IGJlIHJ1bm5pbmcgc2ltdWx0YW5lb3VzbHksIGVzcGVjaWFsbHkgaW4gYQogICAgYnVpbGRib3QgZW52aXJvbm1lbnQuICBUaGlzIG1ldGhvZCByYWlzZXMgYW4gZXhjZXB0aW9uIGlmIHRoZSBzb2NrLmZhbWlseQogICAgaXMgQUZfSU5FVCBhbmQgc29jay50eXBlIGlzIFNPQ0tfU1RSRUFNLCAqYW5kKiB0aGUgc29ja2V0IGhhcyBTT19SRVVTRUFERFIKICAgIG9yIFNPX1JFVVNFUE9SVCBzZXQgb24gaXQuICBUZXN0cyBzaG91bGQgKm5ldmVyKiBzZXQgdGhlc2Ugc29ja2V0IG9wdGlvbnMKICAgIGZvciBUQ1AvSVAgc29ja2V0cy4gIFRoZSBvbmx5IGNhc2UgZm9yIHNldHRpbmcgdGhlc2Ugb3B0aW9ucyBpcyB0ZXN0aW5nCiAgICBtdWx0aWNhc3RpbmcgdmlhIG11bHRpcGxlIFVEUCBzb2NrZXRzLgoKICAgIEFkZGl0aW9uYWxseSwgaWYgdGhlIFNPX0VYQ0xVU0lWRUFERFJVU0Ugc29ja2V0IG9wdGlvbiBpcyBhdmFpbGFibGUgKGkuZS4KICAgIG9uIFdpbmRvd3MpLCBpdCB3aWxsIGJlIHNldCBvbiB0aGUgc29ja2V0LiAgVGhpcyB3aWxsIHByZXZlbnQgYW55b25lIGVsc2UKICAgIGZyb20gYmluZCgpJ2luZyB0byBvdXIgaG9zdC9wb3J0IGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIHRlc3QuCiAgICDaDFNPX1JFVVNFQUREUnICAAAAekh0ZXN0cyBzaG91bGQgbmV2ZXIgc2V0IHRoZSBTT19SRVVTRUFERFIgc29ja2V0IG9wdGlvbiBvbiBUQ1AvSVAgc29ja2V0cyHaDFNPX1JFVVNFUE9SVFoXV0lUSElOX1BZVEhPTl9SUE1fQlVJTER6SHRlc3RzIHNob3VsZCBuZXZlciBzZXQgdGhlIFNPX1JFVVNFUE9SVCBzb2NrZXQgb3B0aW9uIG9uIFRDUC9JUCBzb2NrZXRzIdoTU09fRVhDTFVTSVZFQUREUlVTRXIBAAAAKRJyAgEAAHIAAQAA2gdBRl9JTkVUcuYAAADaC1NPQ0tfU1RSRUFNcuAAAABaCmdldHNvY2tvcHRaClNPTF9TT0NLRVRyBAEAAHIKAAAAcocAAADaB2Vudmlyb25yBQEAAHKVAAAAWgpzZXRzb2Nrb3B0cgYBAADaBGJpbmRaC2dldHNvY2tuYW1lKQPaBHNvY2taBGhvc3RyAwEAAHJlAAAAcmUAAAByZgAAAHJGAAAAuAIAAHMgAAAAAA8YAQoBFAEIAgoBCgECARQBDAIOBAYBCgESAg4BDAFjAgAAAAAAAAACAAAACAAAAEMAAABzOgAAAHkOfACgAHwBoQEBAFcAbiYEAHQBawpyNAEAAQABAHwAoAKhAAEAdAOgBGQBoQGCAVkAbgJYAGQCUwApA3pCQmluZCBhIHVuaXggc29ja2V0LCByYWlzaW5nIFNraXBUZXN0IGlmIFBlcm1pc3Npb25FcnJvciBpcyByYWlzZWQuehtjYW5ub3QgYmluZCBBRl9VTklYIHNvY2tldHNOKQVyCgEAANoPUGVybWlzc2lvbkVycm9ycgEBAABydAAAAHJ1AAAAKQJyCwEAAFoEYWRkcnJlAAAAcmUAAAByZgAAAHJIAAAA3gIAAHMKAAAAAAMCAQ4BDgEIAWMAAAAAAAAAAAEAAAAIAAAAQwAAAHNaAAAAdABqAXJWZAF9AHo8eSJ0AKAAdABqAnQAagOhAn0AfACgBHQFZAJmAqEBAQBkA1MABAB0BmsKckIBAAEAAQBZAG4CWABXAGQBfAByVHwAoAehAAEAWABkBFMAKQV6K0NoZWNrIHdoZXRoZXIgSVB2NiBpcyBlbmFibGVkIG9uIHRoaXMgaG9zdC5OcgEAAABURikIcgABAABaCGhhc19pcHY2WghBRl9JTkVUNnIIAQAAcgoBAADaBkhPU1R2NnKVAAAAcgEBAAApAXILAQAAcmUAAAByZQAAAHJmAAAA2hBfaXNfaXB2Nl9lbmFibGVk5wIAAHMWAAAAAAIGAQQBBAEQAQ4BBAEOAQoCBAEKAXIOAQAAYwEAAAAAAAAAAgAAAAQAAAADAAAAcxoAAAB0AKABiAChAYcAZgFkAWQChAiDAX0BfAFTACkDejVTa2lwIHRoZSB0ZXN0IG9uIFRMUyBjZXJ0aWZpY2F0ZSB2YWxpZGF0aW9uIGZhaWx1cmVzLmMAAAAAAAAAAAMAAAAKAAAAHwAAAHNOAAAAeQ6IAHwAfAGOAQEAVwBuOgQAdABrCnJIAQB9AgEAehxkAXQBfAKDAWsGcjZ0AqADZAKhAYIBggBXAGQAZAB9An4CWABZAG4CWABkAFMAKQNOWhlDRVJUSUZJQ0FURV9WRVJJRllfRkFJTEVEei5zeXN0ZW0gZG9lcyBub3QgY29udGFpbiBuZWNlc3NhcnkgY2VydGlmaWNhdGVzKQRylQAAAHJ2AAAAcnQAAABydQAAACkDcpwAAADaBmt3YXJnc3LqAAAAKQFygwAAAHJlAAAAcmYAAADaA2RlY/oCAABzDAAAAAACAgEOARABDAEKAnomc3lzdGVtX211c3RfdmFsaWRhdGVfY2VydC48bG9jYWxzPi5kZWMpAnL9AAAAcv4AAAApAnKDAAAAchABAAByZQAAACkBcoMAAAByZgAAANoZc3lzdGVtX211c3RfdmFsaWRhdGVfY2VydPgCAABzBAAAAAACFglyEQEAAGkBAEAAaQEAAAFaBmRvdWJsZVoESUVFRXoedGVzdCByZXF1aXJlcyBJRUVFIDc1NCBkb3VibGVzeg1yZXF1aXJlcyB6bGlieg1yZXF1aXJlcyBnemlwegxyZXF1aXJlcyBiejJ6DXJlcXVpcmVzIGx6bWHaBGphdmFaEmdldGFuZHJvaWRhcGlsZXZlbNoFd2luMzJ6Di9zeXN0ZW0vYmluL3NoegcvYmluL3NoegUkdGVzdHoFQHRlc3R6CXt9X3t9X3RtcHoZaHR0cDovL3d3dy5weXRob250ZXN0Lm5ldCkL9QIAAADDpnUCAAAAxLB1AgAAAMWBdQIAAADPhnUCAAAA0Jp1AgAAANeQdQIAAADYjHUCAAAA2Kp1AwAAAOC4gfUCAAAAwqB1AwAAAOKCrHULAAAALcOgw7LJmMWBxJ9y1wAAAFoDTkZE2gJudHKUAAAAdQ4AAAAt5YWxxYHimaHNo+2ygHp0V0FSTklORzogVGhlIGZpbGVuYW1lICVyIENBTiBiZSBlbmNvZGVkIGJ5IHRoZSBmaWxlc3lzdGVtIGVuY29kaW5nICglcykuIFVuaWNvZGUgZmlsZW5hbWUgdGVzdHMgbWF5IG5vdCBiZSBlZmZlY3RpdmXzAQAAAP9zAgAAAC3/2g9zdXJyb2dhdGVlc2NhcGUpBXMDAAAA53fwchcBAABzBQAAAK7V7bKAcwMAAADttIBzAgAAAIGYcu0AAABjAgAAAAAAAAAFAAAACgAAAGMAAABztAAAAGQBfQJ8AGQCawhyJnQAoAGhAH0AZAN9AnQCagOgBHwAoQF9AG5YeRJ0AqAFfAChAQEAZAN9AlcAbkQEAHQGawpyfAEAfQMBAHomfAFzUIIAdAdqCGQEfACbAmQFfAObAJ0EdAlkBmQHjQMBAFcAZAJkAn0DfgNYAFkAbgJYAHwCcop0AqAKoQB9BHoKfABWAAEAVwBkAnwCcq58BHQCoAqhAGsCcq50C3wAgwEBAFgAZAJTACkIYaIBAABSZXR1cm4gYSBjb250ZXh0IG1hbmFnZXIgdGhhdCBjcmVhdGVzIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeS4KCiAgICBBcmd1bWVudHM6CgogICAgICBwYXRoOiB0aGUgZGlyZWN0b3J5IHRvIGNyZWF0ZSB0ZW1wb3JhcmlseS4gIElmIG9taXR0ZWQgb3IgTm9uZSwKICAgICAgICBkZWZhdWx0cyB0byBjcmVhdGluZyBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgdXNpbmcgdGVtcGZpbGUubWtkdGVtcC4KCiAgICAgIHF1aWV0OiBpZiBGYWxzZSAodGhlIGRlZmF1bHQpLCB0aGUgY29udGV4dCBtYW5hZ2VyIHJhaXNlcyBhbiBleGNlcHRpb24KICAgICAgICBvbiBlcnJvci4gIE90aGVyd2lzZSwgaWYgdGhlIHBhdGggaXMgc3BlY2lmaWVkIGFuZCBjYW5ub3QgYmUKICAgICAgICBjcmVhdGVkLCBvbmx5IGEgd2FybmluZyBpcyBpc3N1ZWQuCgogICAgRk5UejV0ZXN0cyBtYXkgZmFpbCwgdW5hYmxlIHRvIGNyZWF0ZSB0ZW1wb3JhcnkgZGlyZWN0b3J5IHoCOiDpAwAAACkBcqEAAAApDNoIdGVtcGZpbGXaB21rZHRlbXByhwAAAHKIAAAA2ghyZWFscGF0aNoFbWtkaXJylQAAAHJoAAAAcqYAAABypwAAANoGZ2V0cGlkchoAAAApBXKIAAAA2gVxdWlldFoLZGlyX2NyZWF0ZWRyuQAAANoDcGlkcmUAAAByZQAAAHJmAAAA2gh0ZW1wX2Rpcr0DAABzJgAAAAAOBAEIAQgBBAEOAgIBCgEIARABBAECARICHAEEAQgBAgEKBBABciEBAABjAgAAAAAAAAAEAAAACgAAAGMAAABzfAAAAHQAoAGhAH0CeQ50AKACfAChAQEAVwBuRAQAdANrCnJaAQB9AwEAeiZ8AXMuggB0BGoFZAF8AJsCZAJ8A5sAnQR0BmQDZASNAwEAVwBkBWQFfQN+A1gAWQBuAlgAeg50AKABoQBWAAEAVwBkBXQAoAJ8AqEBAQBYAGQFUwApBmFnAQAAUmV0dXJuIGEgY29udGV4dCBtYW5hZ2VyIHRoYXQgY2hhbmdlcyB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS4KCiAgICBBcmd1bWVudHM6CgogICAgICBwYXRoOiB0aGUgZGlyZWN0b3J5IHRvIHVzZSBhcyB0aGUgdGVtcG9yYXJ5IGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkuCgogICAgICBxdWlldDogaWYgRmFsc2UgKHRoZSBkZWZhdWx0KSwgdGhlIGNvbnRleHQgbWFuYWdlciByYWlzZXMgYW4gZXhjZXB0aW9uCiAgICAgICAgb24gZXJyb3IuICBPdGhlcndpc2UsIGl0IGlzc3VlcyBvbmx5IGEgd2FybmluZyBhbmQga2VlcHMgdGhlIGN1cnJlbnQKICAgICAgICB3b3JraW5nIGRpcmVjdG9yeSB0aGUgc2FtZS4KCiAgICB6QnRlc3RzIG1heSBmYWlsLCB1bmFibGUgdG8gY2hhbmdlIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IHRvIHoCOiByGQEAACkBcqEAAABOKQdyhwAAANoGZ2V0Y3dk2gVjaGRpcnKVAAAAcmgAAABypgAAAHKnAAAAKQRyiAAAAHIfAQAAWglzYXZlZF9kaXJyuQAAAHJlAAAAcmUAAAByZgAAANoKY2hhbmdlX2N3ZOQDAABzFgAAAAANCAECAQ4BEAEEAQIBEgIcAQIBDgJyJAEAANoHdGVtcGN3ZGMCAAAAAAAAAAQAAAAKAAAAYwAAAHM6AAAAdAB8AHwBZAGNAo8kfQJ0AXwCfAFkAo0Cjwx9A3wDVgABAFcAZANRAFIAWABXAGQDUQBSAFgAZANTACkEYfYBAAAKICAgIENvbnRleHQgbWFuYWdlciB0aGF0IHRlbXBvcmFyaWx5IGNyZWF0ZXMgYW5kIGNoYW5nZXMgdGhlIENXRC4KCiAgICBUaGUgZnVuY3Rpb24gdGVtcG9yYXJpbHkgY2hhbmdlcyB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeQogICAgYWZ0ZXIgY3JlYXRpbmcgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeSB3aXRoCiAgICBuYW1lICpuYW1lKi4gIElmICpuYW1lKiBpcyBOb25lLCB0aGUgdGVtcG9yYXJ5IGRpcmVjdG9yeSBpcwogICAgY3JlYXRlZCB1c2luZyB0ZW1wZmlsZS5ta2R0ZW1wLgoKICAgIElmICpxdWlldCogaXMgRmFsc2UgKGRlZmF1bHQpIGFuZCBpdCBpcyBub3QgcG9zc2libGUgdG8KICAgIGNyZWF0ZSBvciBjaGFuZ2UgdGhlIENXRCwgYW4gZXJyb3IgaXMgcmFpc2VkLiAgSWYgKnF1aWV0KiBpcyBUcnVlLAogICAgb25seSBhIHdhcm5pbmcgaXMgcmFpc2VkIGFuZCB0aGUgb3JpZ2luYWwgQ1dEIGlzIHVzZWQuCgogICAgKQJyiAAAAHIfAQAAKQFyHwEAAE4pAnIhAQAAciQBAAApBHJ3AAAAch8BAABaCXRlbXBfcGF0aFoHY3dkX2RpcnJlAAAAcmUAAAByZgAAAHIbAAAAAAQAAHMGAAAAAA8OAQ4B2gV1bWFza2MBAAAAAAAAAAIAAAAJAAAAYwAAAHMmAAAAdACgAXwAoQF9AXoKZAFWAAEAVwBkAXQAoAF8AaEBAQBYAGQBUwApAno4Q29udGV4dCBtYW5hZ2VyIHRoYXQgdGVtcG9yYXJpbHkgc2V0cyB0aGUgcHJvY2VzcyB1bWFzay5OKQJyhwAAAHImAQAAKQJyJgEAAFoHb2xkbWFza3JlAAAAcmUAAAByZgAAAHJJAAAAFAQAAHMIAAAAAAMKAQIBCgLaBGRhdGFjAgAAAAAAAAAFAAAABQAAAEMAAABzYgAAAHQAagGgAnwAoQFyEHwAUwB8AWQBawlyJnQAagGgA3wBfAChAn0AdARnAXQFagEXAH0CeCp8AkQAXSJ9A3QAagGgA3wDfAChAn0EdABqAaAGfAShAXI4fARTAHE4VwB8AFMAKQJhWwEAAFRyeSB0byBmaW5kIGEgZmlsZSBvbiBzeXMucGF0aCBvciBpbiB0aGUgdGVzdCBkaXJlY3RvcnkuICBJZiBpdCBpcyBub3QKICAgIGZvdW5kIHRoZSBhcmd1bWVudCBwYXNzZWQgdG8gdGhlIGZ1bmN0aW9uIGlzIHJldHVybmVkICh0aGlzIGRvZXMgbm90CiAgICBuZWNlc3NhcmlseSBzaWduYWwgZmFpbHVyZTsgY291bGQgc3RpbGwgYmUgdGhlIGxlZ2l0aW1hdGUgcGF0aCkuCgogICAgU2V0dGluZyAqc3ViZGlyKiBpbmRpY2F0ZXMgYSByZWxhdGl2ZSBwYXRoIHRvIHVzZSB0byBmaW5kIHRoZSBmaWxlCiAgICByYXRoZXIgdGhhbiBsb29raW5nIGRpcmVjdGx5IGluIHRoZSBwYXRoIGRpcmVjdG9yaWVzLgogICAgTikHcocAAAByiAAAANoFaXNhYnNysgAAANoNVEVTVF9IT01FX0RJUnJwAAAA2gZleGlzdHMpBXKtAAAAWgZzdWJkaXJyiAAAAFoCZG7aAmZucmUAAAByZQAAAHJmAAAAchwAAAAlBAAAcxQAAAAACAwBBAEIAQ4BDAEKAQ4BDAAIAWMBAAAAAAAAAAIAAAAFAAAAQwAAAHMoAAAAdACgAXwAdABqAnQAagNCAHQAagRCAKECfQF0AKAFfAGhAQEAZAFTACkCej5DcmVhdGUgYW4gZW1wdHkgZmlsZS4gSWYgdGhlIGZpbGUgYWxyZWFkeSBleGlzdHMsIHRydW5jYXRlIGl0Lk4pBnKHAAAA2gRvcGVu2ghPX1dST05MWdoHT19DUkVBVNoHT19UUlVOQ3IBAQAAKQJyrQAAANoCZmRyZQAAAHJlAAAAcmYAAAByHQAAADcEAABzBAAAAAACGgFjAQAAAAAAAAAEAAAAAwAAAEMAAABzLAAAAHQAfACgAaEAgwF9AWQBZAKEAHwBRACDAX0CZAOgAnwCoQF9A2QEfAMWAFMAKQV6JUxpa2UgcmVwcihkaWN0KSwgYnV0IGluIHNvcnRlZCBvcmRlci5jAQAAAAAAAAACAAAABAAAAFMAAABzFAAAAGcAfABdDH0BZAB8ARYAkQJxBFMAKQF6BiVyOiAlcnJlAAAAKQLaAi4wWgRwYWlycmUAAAByZQAAAHJmAAAA+go8bGlzdGNvbXA+PwQAAHMCAAAABgB6HHNvcnRkaWN0Ljxsb2NhbHM+LjxsaXN0Y29tcD56AiwgegR7JXN9KQPaBnNvcnRlZHKNAAAAcrIAAAApBNoEZGljdHKNAAAAWglyZXBycGFpcnNaCndpdGhjb21tYXNyZQAAAHJlAAAAcmYAAAByWQAAADwEAABzCAAAAAACDAEOAQoBYwAAAAAAAAAAAQAAAAgAAABDAAAAcyoAAAB0AHQBZAGDAn0Aegh8AKACoQBTAHwAoAOhAAEAdAR0AYMBAQBYAGQCUwApA3pgCiAgICBDcmVhdGUgYW4gaW52YWxpZCBmaWxlIGRlc2NyaXB0b3IgYnkgb3BlbmluZyBhbmQgY2xvc2luZyBhIGZpbGUgYW5kIHJldHVybgogICAgaXRzIGZkLgogICAg2gJ3Yk4pBXIsAQAAchcAAADaBmZpbGVub3IBAQAAchkAAAApAXKxAAAAcmUAAAByZQAAAHJmAAAA2gttYWtlX2JhZF9mZEMEAABzCgAAAAAFCgECAQgCCAFyNwEAACkC2gZsaW5lbm/aBm9mZnNldGMCAAAAAgAAAAYAAAAJAAAAQwAAAHNwAAAAfACgAHQBoQGPEn0EdAJ8AWQBZAKDAwEAVwBkAFEAUgBYAHwEagN9BXwAoAR8BWoFoQEBAHwCZABrCXJKfACgBnwFagV8AqECAQB8AKAEfAVqB6EBAQB8A2QAawlybHwAoAZ8BWoHfAOhAgEAZABTACkDTnoNPHRlc3Qgc3RyaW5nPtoEZXhlYykI2gxhc3NlcnRSYWlzZXPaC1N5bnRheEVycm9y2gdjb21waWxlWglleGNlcHRpb25aD2Fzc2VydElzTm90Tm9uZXI4AQAA2gthc3NlcnRFcXVhbHI5AQAAKQbaCHRlc3RjYXNlWglzdGF0ZW1lbnRyOAEAAHI5AQAA2gJjbXKdAAAAcmUAAAByZQAAAHJmAAAAciUAAABPBAAAcxIAAAAAAQwBFgEGAQwBCAEOAQwBCAFjAQAAAAAAAAALAAAACQAAAA8AAABzVAEAAGQBZABsAH0DZAFkAGwBfQOIAqACZAJkAKECiQF8A2oDoAR8AKEBZAMZAKAFZAShAWQFGQB9BHQGagegCHQJfAShAn0FhwCHAYcCZgNkBmQHhAh9BnQGagegCnwFoQFyfHwGfAWDAX0HfAdkAGsJcnR8B1MAdAt8BYMBAQB0DGQIgwEBAHQNcpp0DmQJfAAWAHQPgwBkCo0CAQB8A2oQoBGhAH0IdBJytHwIahOgFGQLoQEBAHwIahV8AGQMZA2NAn0HdBJy4nwHahagF2QOoQFkD2sCcuJ0EmoYfAdkEI0BfQd6QHQVfAVkEYMCjyx9CXwHoBmhAH0KeBx8CpABchR8CaAafAqhAQEAfAegGaEAfQpx+lcAVwBkAFEAUgBYAFcAZAB8B6AboQABAFgAfAZ8BYMBfQd8B2QAawmQAXJEfAdTAHQcZBJ8BRYAgwGCAWQAUwApE05yAQAAANoFY2hlY2tylAAAAPoBL+n/////YwEAAAAAAAAAAgAAAAMAAAATAAAAcz4AAAB0AHwAZgGIAJ4CiAKOAX0BiAFkAGsIchx8AVMAiAF8AYMBcjJ8AaABZAGhAQEAfAFTAHwBoAKhAAEAZABTACkCTnIBAAAAKQNyLAEAANoEc2Vla3IBAQAAKQJyKwEAAHKDAAAAKQNynAAAAHJBAQAAcvsAAAByZQAAAHJmAAAA2hBjaGVja192YWxpZF9maWxlYwQAAHMOAAAAAAEQAQgBBAEIAQoBBAF6Km9wZW5fdXJscmVzb3VyY2UuPGxvY2Fscz4uY2hlY2tfdmFsaWRfZmlsZVoIdXJsZmV0Y2h6EAlmZXRjaGluZyAlcyAuLi4pAXKxAAAAKQJ6D0FjY2VwdC1FbmNvZGluZ9oEZ3ppcOkPAAAAKQFyqgAAAHoQQ29udGVudC1FbmNvZGluZ3JGAQAAKQFaB2ZpbGVvYmpyNQEAAHoTaW52YWxpZCByZXNvdXJjZSAlcikdWg51cmxsaWIucmVxdWVzdFoMdXJsbGliLnBhcnNl2gNwb3DaBXBhcnNlWgh1cmxwYXJzZXKiAAAAcocAAAByiAAAAHKyAAAA2g1URVNUX0RBVEFfRElScioBAAByGQAAAHIhAAAAcgUAAABylgAAAHITAAAAWgdyZXF1ZXN0WgxidWlsZF9vcGVuZXJyRgEAAFoKYWRkaGVhZGVyc3KMAAAAciwBAABaB2hlYWRlcnPaA2dldFoIR3ppcEZpbGXaBHJlYWTaBXdyaXRlcgEBAAByCgAAACkLWgN1cmxynAAAAHL7AAAA2gZ1cmxsaWJyrQAAAHIrAQAAckUBAABygwAAANoGb3BlbmVy2gNvdXTaAXNyZQAAACkDcpwAAAByQQEAAHL7AAAAcmYAAAByRwAAAFoEAABzPAAAAAABEAIMAhoCDgIQCQwBCAEIAQQBCAMIAgQBEgEKAQQBDAEOARQBDAECAQwBCAEIAQoBGgIKAggBCgEEAWMAAAAAAAAAAAAAAAADAAAAQAAAAHM0AAAAZQBaAWQAWgJkAVoDZAJkA4QAWgRkBGQFhABaBWUGZAZkB4QAgwFaB2QIZAmEAFoIZApTACkL2hBXYXJuaW5nc1JlY29yZGVyenlDb252ZW5pZW5jZSB3cmFwcGVyIGZvciB0aGUgd2FybmluZ3MgbGlzdCByZXR1cm5lZCBvbgogICAgICAgZW50cnkgdG8gdGhlIHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKCkgY29udGV4dCBtYW5hZ2VyLgogICAgYwIAAAAAAAAAAgAAAAIAAABDAAAAcxAAAAB8AXwAXwBkAXwAXwFkAFMAKQJOcgEAAAApAtoJX3dhcm5pbmdz2gVfbGFzdCkC2gRzZWxmWg13YXJuaW5nc19saXN0cmUAAAByZQAAAHJmAAAA2ghfX2luaXRfX5AEAABzBAAAAAABBgF6GVdhcm5pbmdzUmVjb3JkZXIuX19pbml0X19jAgAAAAAAAAACAAAABAAAAEMAAABzRAAAAHQAfABqAYMBfABqAmsEciB0A3wAagFkARkAfAGDAlMAfAF0BGoFagZrBnIwZABTAHQHZAJ8AHwBZgIWAIMBggFkAFMAKQNOckMBAAB6FiVyIGhhcyBubyBhdHRyaWJ1dGUgJXIpCHK+AAAAclMBAAByVAEAAHKPAAAAcmgAAADaDldhcm5pbmdNZXNzYWdl2hBfV0FSTklOR19ERVRBSUxTcpAAAAApAnJVAQAA2gRhdHRycmUAAAByZQAAAHJmAAAA2gtfX2dldGF0dHJfX5QEAABzCgAAAAABEAEQAQwBBAF6HFdhcm5pbmdzUmVjb3JkZXIuX19nZXRhdHRyX19jAQAAAAAAAAABAAAAAwAAAEMAAABzEAAAAHwAagB8AGoBZACFAhkAUwApAU4pAnJTAQAAclQBAAApAXJVAQAAcmUAAAByZQAAAHJmAAAAcmgAAACbBAAAcwIAAAAAAnoZV2FybmluZ3NSZWNvcmRlci53YXJuaW5nc2MBAAAAAAAAAAEAAAACAAAAQwAAAHMQAAAAdAB8AGoBgwF8AF8CZABTACkBTikDcr4AAAByUwEAAHJUAQAAKQFyVQEAAHJlAAAAcmUAAAByZgAAANoFcmVzZXSfBAAAcwIAAAAAAXoWV2FybmluZ3NSZWNvcmRlci5yZXNldE4pCXJhAAAAcmIAAAByYwAAAHJkAAAAclYBAAByWgEAANoIcHJvcGVydHlyaAAAAHJbAQAAcmUAAAByZQAAAHJlAAAAcmYAAAByUgEAAIwEAABzCgAAAAgDBAEIBAgHDARyUgEAAGMCAAAAAAAAAAsAAAAJAAAAYwAAAHMGAQAAdACgAWQBoQF9AnwCagKgA2QCoQF9A3wDciJ8A6AEoQABAHQFagZkA2QEjQGPIH0EdABqB2QFGQCgCGQGoQEBAHQJfASDAVYAAQBXAGQHUQBSAFgAdAp8BIMBfQVnAH0GeHZ8AEQAXW5cAn0HfQhkCH0JeEh8BWQHZAeFAhkARABdOH0EfARqC30KdAygDXwHdA58CoMBdAxqD6EDcoB0EHwKahF8CIMCcoBkA30JfAWgEnwEoQEBAHGAVwB8CXNmfAFzZnwGoBN8B3wIahRmAqEBAQBxZlcAfAVy7HQVZAl8BWQKGQAWAIMBggF8BpABcgJ0FWQLfAZkChkAFgCDAYIBZAdTACkMerZDYXRjaCB0aGUgd2FybmluZ3MsIHRoZW4gY2hlY2sgaWYgYWxsIHRoZSBleHBlY3RlZAogICAgd2FybmluZ3MgaGF2ZSBiZWVuIHJhaXNlZCBhbmQgcmUtcmFpc2UgdW5leHBlY3RlZCB3YXJuaW5ncy4KICAgIElmICdxdWlldCcgaXMgVHJ1ZSwgb25seSByZS1yYWlzZSB0aGUgdW5leHBlY3RlZCB3YXJuaW5ncy4KICAgIHKUAAAAWhNfX3dhcm5pbmdyZWdpc3RyeV9fVCkB2gZyZWNvcmRyaAAAANoGYWx3YXlzTkZ6FHVuaGFuZGxlZCB3YXJuaW5nICVzcgEAAAB6KWZpbHRlciAoJXIsICVzKSBkaWQgbm90IGNhdGNoIGFueSB3YXJuaW5nKRZycAAAANoJX2dldGZyYW1l2glmX2dsb2JhbHNySwEAANoFY2xlYXJyaAAAAHJpAAAAcnsAAADaDHNpbXBsZWZpbHRlcnJSAQAAcn0AAADaB21lc3NhZ2XaAnJl2gVtYXRjaHJ2AAAA2gFJ2gppc3N1YmNsYXNzcpcAAADaBnJlbW92ZXKMAAAAcmEAAADaDkFzc2VydGlvbkVycm9yKQvaB2ZpbHRlcnNyHwEAANoFZnJhbWXaCHJlZ2lzdHJ52gF3WgdyZXJhaXNlWgdtaXNzaW5ncnkAAADaA2NhdNoEc2VlbloHd2FybmluZ3JlAAAAcmUAAAByZgAAANoPX2ZpbHRlcndhcm5pbmdzowQAAHMwAAAAAAcKAQwBBAEIAQ4EEAEUAggBBAEOAQQBEgEGAhQBDAEEAQ4BCAIUAQQBEAEGAQQBcnABAABjAAAAAAAAAAADAAAAAwAAAE8AAABzLgAAAHwBoABkAaEBfQJ8AHMkZAJ0AWYCZgF9AHwCZANrCHIkZAR9AnQCfAB8AoMCUwApBWGYAQAAQ29udGV4dCBtYW5hZ2VyIHRvIHNpbGVuY2Ugd2FybmluZ3MuCgogICAgQWNjZXB0IDItdHVwbGVzIGFzIHBvc2l0aW9uYWwgYXJndW1lbnRzOgogICAgICAgICgibWVzc2FnZSByZWdleHAiLCBXYXJuaW5nQ2F0ZWdvcnkpCgogICAgT3B0aW9uYWwgYXJndW1lbnQ6CiAgICAgLSBpZiAncXVpZXQnIGlzIFRydWUsIGl0IGRvZXMgbm90IGZhaWwgaWYgYSBmaWx0ZXIgY2F0Y2hlcyBub3RoaW5nCiAgICAgICAgKGRlZmF1bHQgVHJ1ZSB3aXRob3V0IGFyZ3VtZW50LAogICAgICAgICBkZWZhdWx0IEZhbHNlIGlmIHNvbWUgZmlsdGVycyBhcmUgZGVmaW5lZCkKCiAgICBXaXRob3V0IGFyZ3VtZW50LCBpdCBkZWZhdWx0cyB0bzoKICAgICAgICBjaGVja193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AnwAFwB9A3hqdACgAaEAfQR8BHwBawFyOFAAdAKgA6EAfANrBHJ8dAKgA6EAfAIYAH0FZAJ8BHwBGACbAGQDfAVkBJsEZAV8BJsAZAZ8AZsAZAedCX0GdAR8BoMBggF0AqAFZAihAQEAdAaDAAEAcSZXAFgAZAFTACkJYUgCAAAKICAgIGJwby0zMTIzNDogQ29udGV4dCBtYW5hZ2VyIHRvIHdhaXQgdW50aWwgYWxsIHRocmVhZHMgY3JlYXRlZCBpbiB0aGUgd2l0aAogICAgc3RhdGVtZW50IGV4aXQuCgogICAgVXNlIF90aHJlYWQuY291bnQoKSB0byBjaGVjayBpZiB0aHJlYWRzIGV4aXRlZC4gSW5kaXJlY3RseSwgd2FpdCB1bnRpbAogICAgdGhyZWFkcyBleGl0IHRoZSBpbnRlcm5hbCB0X2Jvb3RzdHJhcCgpIEMgZnVuY3Rpb24gb2YgdGhlIF90aHJlYWQgbW9kdWxlLgoKICAgIHRocmVhZGluZ19zZXR1cCgpIGFuZCB0aHJlYWRpbmdfY2xlYW51cCgpIGFyZSBkZXNpZ25lZCB0byBlbWl0IGEgd2FybmluZwogICAgaWYgYSB0ZXN0IGxlYXZlcyBydW5uaW5nIHRocmVhZHMgaW4gdGhlIGJhY2tncm91bmQuIFRoaXMgY29udGV4dCBtYW5hZ2VyCiAgICBpcyBkZXNpZ25lZCB0byBjbGVhbnVwIHRocmVhZHMgc3RhcnRlZCBieSB0aGUgX3RocmVhZC5zdGFydF9uZXdfdGhyZWFkKCkKICAgIHdoaWNoIGRvZXNuJ3QgYWxsb3cgdG8gd2FpdCBmb3IgdGhyZWFkIGV4aXQsIHdoZXJlYXMgdGhyZWFkLlRocmVhZCBoYXMgYQogICAgam9pbigpIG1ldGhvZC4KICAgIE56IXdhaXRfdGhyZWFkcygpIGZhaWxlZCB0byBjbGVhbnVwIHoPIHRocmVhZHMgYWZ0ZXIgegMuMWZ6ESBzZWNvbmRzIChjb3VudDogeg0sIG9sZCBjb3VudDog+gEpZ3sUrkfheoQ/KQdyJgIAAHInAgAAcqQAAADaCW1vbm90b25pY3JpAQAAcqUAAABydAEAACkHcqoAAABaCW9sZF9jb3VudFoKc3RhcnRfdGltZVoIZGVhZGxpbmVy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b2JqZWN0cyB3aXRob3V0IGEgcHJvcGVyCiAgICAnX19tb2R1bGVfXycgYXR0cmlidXRlLiBJZiBwcm92aWRlZCwgaXQgd2lsbCBiZSBhZGRlZCB0byB0aGUKICAgIGF1dG9tYXRpY2FsbHkgZGV0ZWN0ZWQgb25lcy4KCiAgICBUaGUgJ2JsYWNrbGlzdCcgYXJndW1lbnQgY2FuIGJlIGEgc2V0IG9mIG5hbWVzIHRoYXQgbXVzdCBub3QgYmUgdHJlYXRlZAogICAgYXMgcGFydCBvZiB0aGUgcHVibGljIEFQSSBldmVuIHRob3VnaCB0aGVpciBuYW1lcyBpbmRpY2F0ZSBvdGhlcndpc2UuCgogICAgVXNhZ2U6CiAgICAgICAgaW1wb3J0IGJhcgogICAgICAgIGltcG9ydCBmb28KICAgICAgICBpbXBvcnQgdW5pdHRlc3QKICAgICAgICBmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKCiAgICAgICAgY2xhc3MgTWlzY1Rlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgZGVmIHRlc3RfX2FsbF9fKHNlbGYpOgogICAgICAgICAgICAgICAgc3VwcG9ydC5jaGVja19fYWxsX18oc2VsZiwgZm9vKQoKICAgICAgICBjbGFzcyBPdGhlclRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgZGVmIHRlc3RfX2FsbF9fKHNlbGYpOgogICAgICAgICAgICAgICAgZXh0cmEgPSB7J0JBUl9DT05TVCcsICdGT09fQ09OU1QnfQogICAgICAgICAgICAgICAgYmxhY2tsaXN0ID0geydiYXonfSAgIyBVbmRvY3VtZW50ZWQgbmFtZS4KICAgICAgICAgICAgICAgICMgYmFyIGltcG9ydHMgcGFydCBvZiBpdHMgQVBJIGZyb20gX2Jhci4KICAgICAgICAgICAgICAgIHN1cHBvcnQuY2hlY2tfX2FsbF9fKHNlbGYsIGJhciwgKCdiYXInLCAnX2JhcicpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmE9ZXh0cmEsIGJsYWNrbGlzdD1ibGFja2xpc3QpCgogICAgTnJjAgAAcmIAAAApDXJhAAAAcqoBAABydgAAAHKFAQAAclgCAABycgAAAHKPAAAAcuAAAADaBXR5cGVz2gpNb2R1bGVUeXBl2gNhZGRaEGFzc2VydENvdW50RXF1YWzaB19fYWxsX18pCFoJdGVzdF9jYXNlco4AAABaDm5hbWVfb2ZfbW9kdWxlWgVleHRyYVoJYmxhY2tsaXN0WghleHBlY3RlZHJ3AAAAcpEAAAByZQAAAHJlAAAAcmYAAAByPAAAAPcJAABzHAAAAAApCAEKAQoBBgIIAg4BEgECAQoBEAEKAQwBDgFjAAAAAAAAAAAAAAAAAgAAAEAAAABzKAAAAGUAWgFkAFoCZAFaA2QCWgRkAloFZANkBIQAWgZkBWQGhABaB2QCUwApB3JYAAAAeqtUcnkgdG8gcHJldmVudCBhIGNyYXNoIHJlcG9ydCBmcm9tIHBvcHBpbmcgdXAuCgogICAgT24gV2luZG93cywgZG9uJ3QgZGlzcGxheSB0aGUgV2luZG93cyBFcnJvciBSZXBvcnRpbmcgZGlhbG9nLiAgT24gVU5JWCwKICAgIGRpc2FibGUgdGhlIGNyZWF0aW9uIG9mIGNvcmVkdW1wIGZpbGUuCiAgICBOYwEAAAAAAAAACgAAAAkAAABDAAAAc3IBAAB0AGoBoAJkAaEBcrpkAmQDbAN9AXwBagRqBXwAXwZkBH0CfABqBqAHfAKhAXwAXwh8AGoGoAd8AGoIfAJCAKEBAQB5EmQCZANsCX0DfANqCgEAVwBuGAQAdAt0DGYCawpybAEAAQABAFkAbkxYAGkAfABfDXj4fANqDnwDag98A2oQZwNEAF0ufQR8A6AKfAR8A2oRoQJ9BXwDoBJ8BHwDahOhAn0GfAV8BmYCfABqDXwEPABxhlcAbrR0FGQDawmQAXIKeSp0FKAVdBRqFqEBfABfCHQUoBd0FGoWZAJ8AGoIZAUZAGYCoQIBAFcAbhoEAHQYdBlmAmsKkAFyCAEAAQABAFkAbgJYAHQAagFkBmsCkAFybmQHZAhkCWQKZwR9B3Qaaht8B3Qaahx0GmocZAuNA30IfAiPEgEAfAigHaEAZAIZAH0JVwBkA1EAUgBYAHwJoB6hAGQMawKQAXJudB9kDWQOZA9kEI0DAQB8AFMAKRF6u09uIFdpbmRvd3MsIGRpc2FibGUgV2luZG93cyBFcnJvciBSZXBvcnRpbmcgZGlhbG9ncyB1c2luZwogICAgICAgIFNldEVycm9yTW9kZS4KCiAgICAgICAgT24gVU5JWCwgdHJ5IHRvIHNhdmUgdGhlIHByZXZpb3VzIGNvcmUgZmlsZSBzaXplIGxpbWl0LCB0aGVuIHNldAogICAgICAgIHNvZnQgbGltaXQgdG8gMC4KICAgICAgICBynwAAAHIBAAAATnKUAAAAcgIAAABy1wAAAHoRL3Vzci9iaW4vZGVmYXVsdHNyTAEAAHoXY29tLmFwcGxlLkNyYXNoUmVwb3J0ZXJaCkRpYWxvZ1R5cGUpAnKTAAAAcq0BAABzCQAAAGRldmVsb3Blcno6dGhpcyB0ZXN0IHRyaWdnZXJzIHRoZSBDcmFzaCBSZXBvcnRlciwgdGhhdCBpcyBpbnRlbnRpb25hbHLOAAAAVCkC2gNlbmRy7AEAACkgcnAAAABycQAAAHJyAAAAcr0AAAByvwAAAHLAAAAA2gRfazMy2gxTZXRFcnJvck1vZGXaCW9sZF92YWx1ZdoGbXN2Y3J02hBDcnRTZXRSZXBvcnRNb2RlcpAAAABybwAAANoJb2xkX21vZGVz2ghDUlRfV0FSTtoJQ1JUX0VSUk9S2gpDUlRfQVNTRVJUWhBDUlREQkdfTU9ERV9GSUxF2hBDcnRTZXRSZXBvcnRGaWxlWhJDUlREQkdfRklMRV9TVERFUlJy6wAAAFoJZ2V0cmxpbWl02gtSTElNSVRfQ09SRdoJc2V0cmxpbWl0cvIAAABylQAAAHLtAQAAcu4BAADaBFBJUEVaC2NvbW11bmljYXRlckECAABylgAAACkKclUBAAByvQAAAFoVU0VNX05PR1BGQVVMVEVSUk9SQk9Ycm8CAADaC3JlcG9ydF90eXBl2ghvbGRfbW9kZdoIb2xkX2ZpbGXaA2NtZNoEcHJvY3KTAAAAcmUAAAByZQAAAHJmAAAAcncBAAA7CgAAc04AAAAABwwECAEKAQQBDgESBAIBCAEKARICBgIGAQYBBAEMAQYBCAEGAQgBFAMKAQIBDgEIARQBFAEGAgwHBAEIAQYBBAEKAQYBFgEOAQQBCgJ6HVN1cHByZXNzQ3Jhc2hSZXBvcnQuX19lbnRlcl9fYwEAAAAAAAAABgAAAAkAAABHAAAAc6YA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BgIIFggDCAYIBggGCA0IEAhKCAgMCQgbCAkICQgcBAEEAQQDEj4MJggJCA8GAggSBAcEAwQBDgEGAgwCDAIMAgwCDAIKAgwBEAIEAwwCBgIEBBAEBAQEAQIGCBsCBBYBCAEQAQYCBAEIAwgBDAQIAQwBCAUEAQwCEAMIAQIBDgEQAQYCBAIMAQYCDAECAg4BEAICARQMBAECBQgMAgEOARABDgEOAgYBDgIEAwgEBAIEAQ4mBAEOGwQBDhIMAQ4LFAEMAw4CDBIIBQgHCAwQCwgyEBcMJw4YDhUQIBQ1EBkQHA4BDgEOAwgTBAESTQ4MCAkICQgNCBAOCwgKBAEEAQwBCAEEAQgCCAMIBAQBBAIIDwgkCCMEAQoBCAEKAgYCChUUHg4wChIQBgwDDAgKBhANDAoKCwwQDAsMDAwZBAIEAQQDDAgMChAhDB8KFwwDCAEMAQ4CDAEGAgYBCAYOGwwDDBkECgoDCh8KDgQBEiIQCgodBAEQIxAfEB8MCg4BCAIMBQwJFhwSIgQBCg8KBgYBDh4MBgYBDBYMDRQPAAEQOhJfDiIOFBITEBkGAQwOFBAMOxYnDgUWEhYJCgIeCgoCHgoKAg==
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 3
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
__init__.cpython-37.opt-1.pyc
79.54 KB
lrw-r--r--
2024-04-17 17:36:12
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-37.opt-2.pyc
56.92 KB
lrw-r--r--
2024-04-17 17:35:55
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-37.pyc
79.69 KB
lrw-r--r--
2024-04-17 17:36:18
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).