REDROOM
PHP 8.0.30
Path:
Logout
Edit File
Size: 32.50 KB
Close
/proc/thread-self/root/opt/alt/python37/lib64/python3.7/site-packages/sqlalchemy/sql/__pycache__/functions.cpython-37.pyc
Text
Base64
Qg0NCgAAAADDzDRd4IMAAOMAAAAAAAAAAAAAAAAHAAAAQAAAAHMQBAAAZABaAGQBZAJsAW0CWgIBAGQBZANsAW0DWgMBAGQBZARsAW0EWgQBAGQBZAVsAW0FWgUBAGQBZAZsAW0GWgcBAGQBZAdsCG0JWgkBAGQBZAhsCG0KWgoBAGQBZAlsC20MWgwBAGQBZApsC20NWg0BAGQBZAtsC20OWg4BAGQBZAxsC20PWg8BAGQBZA1sC20QWhABAGQBZA5sC20RWhEBAGQBZA9sC20SWhIBAGQBZBBsC20TWhMBAGQBZBFsC20UWhQBAGQBZBJsC20VWhUBAGQBZBNsC20WWhYBAGQBZBRsC20XWhcBAGQBZBVsC20YWhgBAGQBZBZsC20ZWhkBAGQBZBdsGm0bWhsBAGQBZBhsGm0cWhwBAGQBZBlsGm0dWh0BAGQBZBpsHm0fWh8BAGQbZAZsAW0GWgYBAGUGoCBlIaEBWiJlBqAgZBxkHYQAoQFaI2UGaiRkHmQfZCCNAlolZHdkImQjhAFaJkcAZCRkJYQAZCVlCmUTZRyDBVonRwBkJmQnhABkJ2UPgwNaKEcAZChkKYQAZCllKYMDWiplKoMAWitlKmQqZCuNAVosRwBkLGQthABkLWUngwNaLUcAZC5kL4QAZC9lH4MDWi5HAGQwZDGEAGQxZQagL2UuZS2hAoMDWjBlJmQyZRGDAgEAZSZkM2UUgwIBAEcAZDRkNYQAZDVlMIMDWjFHAGQ2ZDeEAGQ3ZTCDA1oyRwBkOGQ5hABkOWUwgwNaM0cAZDpkO4QAZDtlM4MDWjRHAGQ8ZD2EAGQ9ZTODA1o1RwBkPmQ/hABkP2UzgwNaNkcAZEBkQYQAZEFlM4MDWjdHAGRCZEOEAGRDZTCDA1o4RwBkRGRFhABkRWUwgwNaOUcAZEZkR4QAZEdlMIMDWjpHAGRIZEmEAGRJZTCDA1o7RwBkSmRLhABkS2UwgwNaPEcAZExkTYQAZE1lMoMDWj1HAGROZE+EAGRPZTKDA1o+RwBkUGRRhABkUWUygwNaP0cAZFJkU4QAZFNlMoMDWkBHAGRUZFWEAGRVZTKDA1pBRwBkVmRXhABkV2UygwNaQkcAZFhkWYQAZFllMoMDWkNHAGRaZFuEAGRbZTKDA1pERwBkXGRdhABkXWUygwNaRUcAZF5kX4QAZF9lMIMDWkZHAGRgZGGEAGRhZTCDA1pHRwBkYmRjhABkY2VHgwNaSEcAZGRkZYQAZGVlR4MDWklHAGRmZGeEAGRnZUeDA1pKRwBkaGRphABkaWUwgwNaS0cAZGpka4QAZGtlMIMDWkxHAGRsZG2EAGRtZTCDA1pNRwBkbmRvhABkb2UwgwNaTkcAZHBkcYQAZHFlMIMDWk9HAGRyZHOEAGRzZTCDA1pQRwBkdGR1hABkdWUwgwNaUWR2UwApeHo2U1FMIGZ1bmN0aW9uIEFQSSwgZmFjdG9yaWVzLCBhbmQgYnVpbHQtaW4gZnVuY3Rpb25zLgoK6QEAAAApAdoKYW5ub3RhdGlvbikB2glvcGVyYXRvcnMpAdoGc2NoZW1hKQHaCHNxbHR5cGVzKQHaBHV0aWwpAdoQQ29sdW1uQ29sbGVjdGlvbikB2gpFeGVjdXRhYmxlKQHaBl9jbG9uZSkB2hFfbGl0ZXJhbF9hc19iaW5kcykB2g9fdHlwZV9mcm9tX2FyZ3MpAdoQQmluYXJ5RXhwcmVzc2lvbikB2g1CaW5kUGFyYW1ldGVyKQHaBENhc3QpAdoKQ2xhdXNlTGlzdCkB2g1Db2x1bW5FbGVtZW50KQHaB0V4dHJhY3QpAdoORnVuY3Rpb25GaWx0ZXIpAdoIR3JvdXBpbmcpAdoObGl0ZXJhbF9jb2x1bW4pAdoET3ZlcikB2gtXaXRoaW5Hcm91cCkB2gVBbGlhcykB2gpGcm9tQ2xhdXNlKQHaBlNlbGVjdCkB2g1WaXNpdGFibGVUeXBl6QIAAABjAAAAAAAAAAAAAAAAAwAAAEMAAABzCgAAAHQAoAF0AqEBUwApAU4pA3IGAAAA2gtkZWZhdWx0ZGljdNoEZGljdKkAch4AAAByHgAAAPpLL29wdC9hbHQvcHl0aG9uMzcvbGliNjQvcHl0aG9uMy43L3NpdGUtcGFja2FnZXMvc3FsYWxjaGVteS9zcWwvZnVuY3Rpb25zLnB52gg8bGFtYmRhPigAAADzAAAAAHIgAAAAWhdjYXNlX3NlbnNpdGl2ZV9mdW5jdGlvbnpIU3ltYm9sIHRvIG1hcmsgdGhlIGZ1bmN0aW9ucyB0aGF0IGFyZSBzd2l0Y2hlZCBpbnRvIGNhc2Utc2Vuc2l0aXZlIG1vZGUuKQLaBG5hbWXaA2RvY9oIX2RlZmF1bHRj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IG5vIHJlc3VsdCBjb2x1bW4gbmFtZXMgYnVpbHQgaW47CiAgICAgICAgdGhpcyBtZXRob2QgcmV0dXJucyBhIHNpbmdsZS1lbGVtZW50IGNvbHVtbiBjb2xsZWN0aW9uIHdpdGgKICAgICAgICBhbiBhbm9ueW1vdXNseSBuYW1lZCBjb2x1bW4uCgogICAgICAgIEFuIGludGVyaW0gYXBwcm9hY2ggdG8gcHJvdmlkaW5nIG5hbWVkIGNvbHVtbnMgZm9yIGEgZnVuY3Rpb24KICAgICAgICBhcyBhIEZST00gY2xhdXNlIGlzIHRvIGJ1aWxkIGEgOmZ1bmM6YC5zZWxlY3RgIHdpdGggdGhlCiAgICAgICAgZGVzaXJlZCBjb2x1bW5zOjoKCiAgICAgICAgICAgIGZyb20gc3FsYWxjaGVteS5zcWwgaW1wb3J0IGNvbHVtbgoKICAgICAgICAgICAgc3RtdCA9IHNlbGVjdChbY29sdW1uKCd4JyksIGNvbHVtbigneScpXSkuICAgICAgICAgICAgICAgIHNlbGVjdF9mcm9tKGZ1bmMubXlmdW5jdGlvbigpKQoKCiAgICAgICAgTikCcgcAAADaBWxhYmVsKQFyNwAAAHIeAAAAch4AAAByHwAAANoHY29sdW1uc5EAAABzAgAAAAATehdGdW5jdGlvbkVsZW1lbnQuY29sdW1uc2MBAAAAAAAAAAEAAAABAAAAQwAAAHMIAAAAfABqAGoBUwApAXp9UmV0dXJuIHRoZSB1bmRlcmx5aW5nIDpjbGFzczpgLkNsYXVzZUxpc3RgIHdoaWNoIGNvbnRhaW5zCiAgICAgICAgdGhlIGFyZ3VtZW50cyBmb3IgdGhpcyA6Y2xhc3M6YC5GdW5jdGlvbkVsZW1lbnRgLgoKICAgICAgICApAnI/AAAA2gdlbGVtZW50KQFyNwAAAHIeAAAAch4AAAByHwAAAHJAAAAApgAAAHMCAAAAAAZ6F0Z1bmN0aW9uRWxlbWVudC5jbGF1c2VzTmMFAAAAAAAAAAUAAAAHAAAAQwAAAHMSAAAAdAB8AHwBfAJ8A3wEZAGNBVMAKQJhtwEAAFByb2R1Y2UgYW4gT1ZFUiBjbGF1c2UgYWdhaW5zdCB0aGlzIGZ1bmN0aW9uLgoKICAgICAgICBVc2VkIGFnYWluc3QgYWdncmVnYXRlIG9yIHNvLWNhbGxlZCAid2luZG93IiBmdW5jdGlvbnMsCiAgICAgICAgZm9yIGRhdGFiYXNlIGJhY2tlbmRzIHRoYXQgc3VwcG9ydCB3aW5kb3cgZnVuY3Rpb25zLgoKICAgICAgICBUaGUgZXhwcmVzc2lvbjo6CgogICAgICAgICAgICBmdW5jLnJvd19udW1iZXIoKS5vdmVyKG9yZGVyX2J5PSd4JykKCiAgICAgICAgaXMgc2hvcnRoYW5kIGZvcjo6CgogICAgICAgICAgICBmcm9tIHNxbGFsY2hlbXkgaW1wb3J0IG92ZXIKICAgICAgICAgICAgb3ZlcihmdW5jLnJvd19udW1iZXIoKSwgb3JkZXJfYnk9J3gnKQoKICAgICAgICBTZWUgOmZ1bmM6YH4uZXhwcmVzc2lvbi5vdmVyYCBmb3IgYSBmdWxsIGRlc2NyaXB0aW9uLgoKICAgICAgICApBNoMcGFydGl0aW9uX2J52ghvcmRlcl9iedoEcm93c9oGcmFuZ2VfKQFyFQAAACkFcjcAAABySQAAAHJKAAAAcksAAAByTAAAAHIeAAAAch4AAAByHwAAANoEb3Zlcq4AAABzDAAAAAASAgECAQIBAgECAXoURnVuY3Rpb25FbGVtZW50Lm92ZXJjAQAAAAAAAAACAAAAAwAAAEcAAABzDgAAAHQAfABmAXwBngKOAFMAKQFheQEAAFByb2R1Y2UgYSBXSVRISU4gR1JPVVAgKE9SREVSIEJZIGV4cHIpIGNsYXVzZSBhZ2FpbnN0IHRoaXMgZnVuY3Rpb24uCgogICAgICAgIFVzZWQgYWdhaW5zdCBzby1jYWxsZWQgIm9yZGVyZWQgc2V0IGFnZ3JlZ2F0ZSIgYW5kICJoeXBvdGhldGljYWwKICAgICAgICBzZXQgYWdncmVnYXRlIiBmdW5jdGlvbnMsIGluY2x1ZGluZyA6Y2xhc3M6YC5wZXJjZW50aWxlX2NvbnRgLAogICAgICAgIDpjbGFzczpgLnJhbmtgLCA6Y2xhc3M6YC5kZW5zZV9yYW5rYCwgZXRjLgoKICAgICAgICBTZWUgOmZ1bmM6YH4uZXhwcmVzc2lvbi53aXRoaW5fZ3JvdXBgIGZvciBhIGZ1bGwgZGVzY3JpcHRpb24uCgogICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDEuMQoKCiAgICAgICAgKQFyFgAAACkCcjcAAABySgAAAHIeAAAAch4AAAByHwAAANoMd2l0aGluX2dyb3VwyAAAAHMCAAAAAA16HEZ1bmN0aW9uRWxlbWVudC53aXRoaW5fZ3JvdXBjAQAAAAAAAAACAAAAAwAAAEcAAABzFgAAAHwBcwh8AFMAdAB8AGYBfAGeAo4AUwApAWHmAQAAUHJvZHVjZSBhIEZJTFRFUiBjbGF1c2UgYWdhaW5zdCB0aGlzIGZ1bmN0aW9uLgoKICAgICAgICBVc2VkIGFnYWluc3QgYWdncmVnYXRlIGFuZCB3aW5kb3cgZnVuY3Rpb25zLAogICAgICAgIGZvciBkYXRhYmFzZSBiYWNrZW5kcyB0aGF0IHN1cHBvcnQgdGhlICJGSUxURVIiIGNsYXVzZS4KCiAgICAgICAgVGhlIGV4cHJlc3Npb246OgoKICAgICAgICAgICAgZnVuYy5jb3VudCgxKS5maWx0ZXIoVHJ1ZSkKCiAgICAgICAgaXMgc2hvcnRoYW5kIGZvcjo6CgogICAgICAgICAgICBmcm9tIHNxbGFsY2hlbXkgaW1wb3J0IGZ1bmNmaWx0ZXIKICAgICAgICAgICAgZnVuY2ZpbHRlcihmdW5jLmNvdW50KDEpLCBUcnVlKQoKICAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAxLjAuMAoKICAgICAgICAuLiBzZWVhbHNvOjoKCiAgICAgICAgICAgIDpjbGFzczpgLkZ1bmN0aW9uRmlsdGVyYAoKICAgICAgICAgICAgOmZ1bmM6YC5mdW5jZmlsdGVyYAoKCiAgICAgICAgKQFyEgAAACkCcjcAAABaCWNyaXRlcmlvbnIeAAAAch4AAAByHwAAANoGZmlsdGVy1wAAAHMGAAAAABkEAQQBehZGdW5jdGlvbkVsZW1lbnQuZmlsdGVyYwMAAAAAAAAAAwAAAAQAAABDAAAAcwwAAAB0AHwAfAF8AoMDUwApAWFeCgAASW50ZXJwcmV0IHRoaXMgZXhwcmVzc2lvbiBhcyBhIGJvb2xlYW4gY29tcGFyaXNvbiBiZXR3ZWVuIHR3byB2YWx1ZXMuCgogICAgICAgIEEgaHlwb3RoZXRpY2FsIFNRTCBmdW5jdGlvbiAiaXNfZXF1YWwoKSIgd2hpY2ggY29tcGFyZXMgdG8gdmFsdWVzCiAgICAgICAgZm9yIGVxdWFsaXR5IHdvdWxkIGJlIHdyaXR0ZW4gaW4gdGhlIENvcmUgZXhwcmVzc2lvbiBsYW5ndWFnZSBhczo6CgogICAgICAgICAgICBleHByID0gZnVuYy5pc19lcXVhbCgiYSIsICJiIikKCiAgICAgICAgSWYgImlzX2VxdWFsKCkiIGFib3ZlIGlzIGNvbXBhcmluZyAiYSIgYW5kICJiIiBmb3IgZXF1YWxpdHksIHRoZQogICAgICAgIDptZXRoOmAuRnVuY3Rpb25FbGVtZW50LmFzX2NvbXBhcmlzb25gIG1ldGhvZCB3b3VsZCBiZSBpbnZva2VkIGFzOjoKCiAgICAgICAgICAgIGV4cHIgPSBmdW5jLmlzX2VxdWFsKCJhIiwgImIiKS5hc19jb21wYXJpc29uKDEsIDIpCgogICAgICAgIFdoZXJlIGFib3ZlLCB0aGUgaW50ZWdlciB2YWx1ZSAiMSIgcmVmZXJzIHRvIHRoZSBmaXJzdCBhcmd1bWVudCBvZiB0aGUKICAgICAgICAiaXNfZXF1YWwoKSIgZnVuY3Rpb24gYW5kIHRoZSBpbnRlZ2VyIHZhbHVlICIyIiByZWZlcnMgdG8gdGhlIHNlY29uZC4KCiAgICAgICAgVGhpcyB3b3VsZCBjcmVhdGUgYSA6Y2xhc3M6YC5CaW5hcnlFeHByZXNzaW9uYCB0aGF0IGlzIGVxdWl2YWxlbnQgdG86OgoKICAgICAgICAgICAgQmluYXJ5RXhwcmVzc2lvbigiYSIsICJiIiwgb3BlcmF0b3I9b3AuZXEpCgogICAgICAgIEhvd2V2ZXIsIGF0IHRoZSBTUUwgbGV2ZWwgaXQgd291bGQgc3RpbGwgcmVuZGVyIGFzCiAgICAgICAgImlzX2VxdWFsKCdhJywgJ2InKSIuCgogICAgICAgIFRoZSBPUk0sIHdoZW4gaXQgbG9hZHMgYSByZWxhdGVkIG9iamVjdCBvciBjb2xsZWN0aW9uLCBuZWVkcyB0byBiZSBhYmxlCiAgICAgICAgdG8gbWFuaXB1bGF0ZSB0aGUgImxlZnQiIGFuZCAicmlnaHQiIHNpZGVzIG9mIHRoZSBPTiBjbGF1c2Ugb2YgYSBKT0lOCiAgICAgICAgZXhwcmVzc2lvbi4gVGhlIHB1cnBvc2Ugb2YgdGhpcyBtZXRob2QgaXMgdG8gcHJvdmlkZSBhIFNRTCBmdW5jdGlvbgogICAgICAgIGNvbnN0cnVjdCB0aGF0IGNhbiBhbHNvIHN1cHBseSB0aGlzIGluZm9ybWF0aW9uIHRvIHRoZSBPUk0sIHdoZW4gdXNlZAogICAgICAgIHdpdGggdGhlIDpwYXJhbXJlZjpgLnJlbGF0aW9uc2hpcC5wcmltYXJ5am9pbmAgcGFyYW1ldGVyLiAgVGhlIHJldHVybgogICAgICAgIHZhbHVlIGlzIGEgY29udGFpbm1lbnQgb2JqZWN0IGNhbGxlZCA6Y2xhc3M6YC5GdW5jdGlvbkFzQmluYXJ5YC4KCiAgICAgICAgQW4gT1JNIGV4YW1wbGUgaXMgYXMgZm9sbG93czo6CgogICAgICAgICAgICBjbGFzcyBWZW51ZShCYXNlKToKICAgICAgICAgICAgICAgIF9fdGFibGVuYW1lX18gPSAndmVudWUnCiAgICAgICAgICAgICAgICBpZCA9IENvbHVtbihJbnRlZ2VyLCBwcmltYXJ5X2tleT1UcnVlKQogICAgICAgICAgICAgICAgbmFtZSA9IENvbHVtbihTdHJpbmcpCgogICAgICAgICAgICAgICAgZGVzY2VuZGFudHMgPSByZWxhdGlvbnNoaXAoCiAgICAgICAgICAgICAgICAgICAgIlZlbnVlIiwKICAgICAgICAgICAgICAgICAgICBwcmltYXJ5am9pbj1mdW5jLmluc3RyKAogICAgICAgICAgICAgICAgICAgICAgICByZW1vdGUoZm9yZWlnbihuYW1lKSksIG5hbWUgKyAiLyIKICAgICAgICAgICAgICAgICAgICApLmFzX2NvbXBhcmlzb24oMSwgMikgPT0gMSwKICAgICAgICAgICAgICAgICAgICB2aWV3b25seT1UcnVlLAogICAgICAgICAgICAgICAgICAgIG9yZGVyX2J5PW5hbWUKICAgICAgICAgICAgICAgICkKCiAgICAgICAgQWJvdmUsIHRoZSAiVmVudWUiIGNsYXNzIGNhbiBsb2FkIGRlc2NlbmRhbnQgIlZlbnVlIiBvYmplY3RzIGJ5CiAgICAgICAgZGV0ZXJtaW5pbmcgaWYgdGhlIG5hbWUgb2YgdGhlIHBhcmVudCBWZW51ZSBpcyBjb250YWluZWQgd2l0aGluIHRoZQogICAgICAgIHN0YXJ0IG9mIHRoZSBoeXBvdGhldGljYWwgZGVzY2VuZGFudCB2YWx1ZSdzIG5hbWUsIGUuZy4gInBhcmVudDEiIHdvdWxkCiAgICAgICAgbWF0Y2ggdXAgdG8gInBhcmVudDEvY2hpbGQxIiwgYnV0IG5vdCB0byAicGFyZW50Mi9jaGlsZDEiLgoKICAgICAgICBQb3NzaWJsZSB1c2UgY2FzZXMgaW5jbHVkZSB0aGUgIm1hdGVyaWFsaXplZCBwYXRoIiBleGFtcGxlIGdpdmVuIGFib3ZlLAogICAgICAgIGFzIHdlbGwgYXMgbWFraW5nIHVzZSBvZiBzcGVjaWFsIFNRTCBmdW5jdGlvbnMgc3VjaCBhcyBnZW9tZXRyaWMKICAgICAgICBmdW5jdGlvbnMgdG8gY3JlYXRlIGpvaW4gY29uZGl0aW9ucy4KCiAgICAgICAgOnBhcmFtIGxlZnRfaW5kZXg6IHRoZSBpbnRlZ2VyIDEtYmFzZWQgaW5kZXggb2YgdGhlIGZ1bmN0aW9uIGFyZ3VtZW50CiAgICAgICAgIHRoYXQgc2VydmVzIGFzIHRoZSAibGVmdCIgc2lkZSBvZiB0aGUgZXhwcmVzc2lvbi4KICAgICAgICA6cGFyYW0gcmlnaHRfaW5kZXg6IHRoZSBpbnRlZ2VyIDEtYmFzZWQgaW5kZXggb2YgdGhlIGZ1bmN0aW9uIGFyZ3VtZW50CiAgICAgICAgIHRoYXQgc2VydmVzIGFzIHRoZSAicmlnaHQiIHNpZGUgb2YgdGhlIGV4cHJlc3Npb24uCgogICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDEuMwoKICAgICAgICApAdoQRnVuY3Rpb25Bc0JpbmFyeSkDcjcAAADaCmxlZnRfaW5kZXjaC3JpZ2h0X2luZGV4ch4AAAByHgAAAHIfAAAA2g1hc19jb21wYXJpc29u9AAAAHMCAAAAAD96HUZ1bmN0aW9uRWxlbWVudC5hc19jb21wYXJpc29uYwEAAAAAAAAAAQAAAAEAAABDAAAAcwgAAAB8AGoAagFTACkBTikCckAAAADaDV9mcm9tX29iamVjdHMpAXI3AAAAch4AAAByHgAAAHIfAAAAclQAAAA1AQAAcwIAAAAAAnodRnVuY3Rpb25FbGVtZW50Ll9mcm9tX29iamVjdHNjAQAAAAAAAAACAAAAAQAAAEsAAABzCAAAAHwAagBmAVMAKQFOKQFyPwAAACkCcjcAAAByQQAAAHIeAAAAch4AAAByHwAAANoMZ2V0X2NoaWxkcmVuOQEAAHMCAAAAAAF6HEZ1bmN0aW9uRWxlbWVudC5nZXRfY2hpbGRyZW5jAgAAAAAAAAADAAAAAwAAAEsAAABzKAAAAHwBfABqAGYBfAKOAXwAXwB8AKABoQABAHQCagOgBHwAoQEBAGQAUwApAU4pBXI/AAAAWg9fcmVzZXRfZXhwb3J0ZWRyNAAAAHJAAAAAWgZfcmVzZXQpA3I3AAAA2gVjbG9uZdoCa3dyHgAAAHIeAAAAch8AAADaD19jb3B5X2ludGVybmFsczwBAABzBgAAAAABEAEIAXofRnVuY3Rpb25FbGVtZW50Ll9jb3B5X2ludGVybmFsc2MCAAAAAAAAAAIAAAABAAAAQwAAAHMEAAAAZAFTACkCYRcBAABGb3IgdHlwZXMgdGhhdCBkZWZpbmUgdGhlaXIgcmV0dXJuIHR5cGUgYXMgYmFzZWQgb24gdGhlIGNyaXRlcmlhCiAgICAgICAgd2l0aGluIGEgV0lUSElOIEdST1VQIChPUkRFUiBCWSkgZXhwcmVzc2lvbiwgY2FsbGVkIGJ5IHRoZQogICAgICAgIDpjbGFzczpgLldpdGhpbkdyb3VwYCBjb25zdHJ1Y3QuCgogICAgICAgIFJldHVybnMgTm9uZSBieSBkZWZhdWx0LCBpbiB3aGljaCBjYXNlIHRoZSBmdW5jdGlvbidzIG5vcm1hbCBgYC50eXBlYGAKICAgICAgICBpcyB1c2VkLgoKICAgICAgICBOch4AAAApAnI3AAAAck4AAAByHgAAAHIeAAAAch8AAADaEXdpdGhpbl9ncm91cF90eXBlQQEAAHMCAAAAAAp6IUZ1bmN0aW9uRWxlbWVudC53aXRoaW5fZ3JvdXBfdHlwZWMDAAAAAAAAAAMAAAAEAAAAQwAAAHMMAAAAdACgAXwAfAGhAlMAKQFhXwMAAFByb2R1Y2UgYSA6Y2xhc3M6YC5BbGlhc2AgY29uc3RydWN0IGFnYWluc3QgdGhpcwogICAgICAgIDpjbGFzczpgLkZ1bmN0aW9uRWxlbWVudGAuCgogICAgICAgIFRoaXMgY29uc3RydWN0IHdyYXBzIHRoZSBmdW5jdGlvbiBpbiBhIG5hbWVkIGFsaWFzIHdoaWNoCiAgICAgICAgaXMgc3VpdGFibGUgZm9yIHRoZSBGUk9NIGNsYXVzZSwgaW4gdGhlIHN0eWxlIGFjY2VwdGVkIGZvciBleGFtcGxlCiAgICAgICAgYnkgUG9zdGdyZVNRTC4KCiAgICAgICAgZS5nLjo6CgogICAgICAgICAgICBmcm9tIHNxbGFsY2hlbXkuc3FsIGltcG9ydCBjb2x1bW4KCiAgICAgICAgICAgIHN0bXQgPSBzZWxlY3QoW2NvbHVtbignZGF0YV92aWV3JyldKS5cCiAgICAgICAgICAgICAgICBzZWxlY3RfZnJvbShTb21lVGFibGUpLlwKICAgICAgICAgICAgICAgIHNlbGVjdF9mcm9tKGZ1bmMudW5uZXN0KFNvbWVUYWJsZS5kYXRhKS5hbGlhcygnZGF0YV92aWV3JykKICAgICAgICAgICAgKQoKICAgICAgICBXb3VsZCBwcm9kdWNlOgoKICAgICAgICAuLiBzb3VyY2Vjb2RlOjogc3FsCgogICAgICAgICAgICBTRUxFQ1QgZGF0YV92aWV3CiAgICAgICAgICAgIEZST00gc29tZXRhYmxlLCB1bm5lc3Qoc29tZXRhYmxlLmRhdGEpIEFTIGRhdGFfdmlldwoKICAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAwLjkuOCBUaGUgOm1ldGg6YC5GdW5jdGlvbkVsZW1lbnQuYWxpYXNgIG1ldGhvZAogICAgICAgICAgIGlzIG5vdyBzdXBwb3J0ZWQuICBQcmV2aW91c2x5LCB0aGlzIG1ldGhvZCdzIGJlaGF2aW9yIHdhcwogICAgICAgICAgIHVuZGVmaW5lZCBhbmQgZGlkIG5vdCBiZWhhdmUgY29uc2lzdGVudGx5IGFjcm9zcyB2ZXJzaW9ucy4KCiAgICAgICAgKQJyFwAAAFoKX2NvbnN0cnVjdCkDcjcAAAByIgAAAFoEZmxhdHIe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ch4AAAByHgAAACkBcmsAAAByHwAAAHKVAAAAeAIAAHMCAAAACAFylQAAAGMAAAAAAAAAAAAAAAACAAAAQAAAAHMgAAAAZQBaAWQAWgJkAVoDZAJaBGQDWgVkBGQFhABaBmQGUwApB9oPR2VuZXJpY0Z1bmN0aW9uYaQIAABEZWZpbmUgYSAnZ2VuZXJpYycgZnVuY3Rpb24uCgogICAgQSBnZW5lcmljIGZ1bmN0aW9uIGlzIGEgcHJlLWVzdGFibGlzaGVkIDpjbGFzczpgLkZ1bmN0aW9uYAogICAgY2xhc3MgdGhhdCBpcyBpbnN0YW50aWF0ZWQgYXV0b21hdGljYWxseSB3aGVuIGNhbGxlZAogICAgYnkgbmFtZSBmcm9tIHRoZSA6ZGF0YTpgLmZ1bmNgIGF0dHJpYnV0ZS4gICAgTm90ZSB0aGF0CiAgICBjYWxsaW5nIGFueSBuYW1lIGZyb20gOmRhdGE6YC5mdW5jYCBoYXMgdGhlIGVmZmVjdCB0aGF0CiAgICBhIG5ldyA6Y2xhc3M6YC5GdW5jdGlvbmAgaW5zdGFuY2UgaXMgY3JlYXRlZCBhdXRvbWF0aWNhbGx5LAogICAgZ2l2ZW4gdGhhdCBuYW1lLiAgVGhlIHByaW1hcnkgdXNlIGNhc2UgZm9yIGRlZmluaW5nCiAgICBhIDpjbGFzczpgLkdlbmVyaWNGdW5jdGlvbmAgY2xhc3MgaXMgc28gdGhhdCBhIGZ1bmN0aW9uCiAgICBvZiBhIHBhcnRpY3VsYXIgbmFtZSBtYXkgYmUgZ2l2ZW4gYSBmaXhlZCByZXR1cm4gdHlwZS4KICAgIEl0IGNhbiBhbHNvIGluY2x1ZGUgY3VzdG9tIGFyZ3VtZW50IHBhcnNpbmcgc2NoZW1lcyBhcyB3ZWxsCiAgICBhcyBhZGRpdGlvbmFsIG1ldGhvZHMuCgogICAgU3ViY2xhc3NlcyBvZiA6Y2xhc3M6YC5HZW5lcmljRnVuY3Rpb25gIGFyZSBhdXRvbWF0aWNhbGx5CiAgICByZWdpc3RlcmVkIHVuZGVyIHRoZSBuYW1lIG9mIHRoZSBjbGFzcy4gIEZvcgogICAgZXhhbXBsZSwgYSB1c2VyLWRlZmluZWQgZnVuY3Rpb24gYGBhc191dGMoKWBgIHdvdWxkCiAgICBiZSBhdmFpbGFibGUgaW1tZWRpYXRlbHk6OgoKICAgICAgICBmcm9tIHNxbGFsY2hlbXkuc3FsLmZ1bmN0aW9ucyBpbXBvcnQgR2VuZXJpY0Z1bmN0aW9uCiAgICAgICAgZnJvbSBzcWxhbGNoZW15LnR5cGVzIGltcG9ydCBEYXRlVGltZQoKICAgICAgICBjbGFzcyBhc191dGMoR2VuZXJpY0Z1bmN0aW9uKToKICAgICAgICAgICAgdHlwZSA9IERhdGVUaW1lCgogICAgICAgIHByaW50IHNlbGVjdChbZnVuYy5hc191dGMoKV0pCgogICAgVXNlci1kZWZpbmVkIGdlbmVyaWMgZnVuY3Rpb25zIGNhbiBiZSBvcmdhbml6ZWQgaW50bwogICAgcGFja2FnZXMgYnkgc3BlY2lmeWluZyB0aGUgInBhY2thZ2UiIGF0dHJpYnV0ZSB3aGVuIGRlZmluaW5nCiAgICA6Y2xhc3M6YC5HZW5lcmljRnVuY3Rpb25gLiAgIFRoaXJkIHBhcnR5IGxpYnJhcmllcwogICAgY29udGFpbmluZyBtYW55IGZ1bmN0aW9ucyBtYXkgd2FudCB0byB1c2UgdGhpcyBpbiBvcmRlcgogICAgdG8gYXZvaWQgbmFtZSBjb25mbGljdHMgd2l0aCBvdGhlciBzeXN0ZW1zLiAgIEZvciBleGFtcGxlLAogICAgaWYgb3VyIGBgYXNfdXRjKClgYCBmdW5jdGlvbiB3ZXJlIHBhcnQgb2YgYSBwYWNrYWdlCiAgICAidGltZSI6OgoKICAgICAgICBjbGFzcyBhc191dGMoR2VuZXJpY0Z1bmN0aW9uKToKICAgICAgICAgICAgdHlwZSA9IERhdGVUaW1lCiAgICAgICAgICAgIHBhY2thZ2UgPSAidGltZSIKCiAgICBUaGUgYWJvdmUgZnVuY3Rpb24gd291bGQgYmUgYXZhaWxhYmxlIGZyb20gOmRhdGE6YC5mdW5jYAogICAgdXNpbmcgdGhlIHBhY2thZ2UgbmFtZSBgYHRpbWVgYDo6CgogICAgICAgIHByaW50IHNlbGVjdChbZnVuYy50aW1lLmFzX3V0YygpXSkKCiAgICBBIGZpbmFsIG9wdGlvbiBpcyB0byBhbGxvdyB0aGUgZnVuY3Rpb24gdG8gYmUg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AABlAFoBZABaAmQBWgNkAloEZANTACkE2g9wZXJjZW50aWxlX2NvbnRhlwEAAGltcGxlbWVudCB0aGUgYGBwZXJjZW50aWxlX2NvbnRgYCBvcmRlcmVkLXNldCBhZ2dyZWdhdGUgZnVuY3Rpb24uCgogICAgVGhpcyBmdW5jdGlvbiBtdXN0IGJlIHVzZWQgd2l0aCB0aGUgOm1ldGg6YC5GdW5jdGlvbkVsZW1lbnQud2l0aGluX2dyb3VwYAogICAgbW9kaWZpZXIgdG8gc3VwcGx5IGEgc29ydCBleHByZXNzaW9uIHRvIG9wZXJhdGUgdXBvbi4KCiAgICBUaGUgcmV0dXJuIHR5cGUgb2YgdGhpcyBmdW5jdGlvbiBpcyB0aGUgc2FtZSBhcyB0aGUgc29ydCBleHByZXNzaW9uLAogICAgb3IgaWYgdGhlIGFyZ3VtZW50cyBhcmUgYW4gYXJyYXksIGFuIDpjbGFzczpgLnR5cGVzLkFSUkFZYCBvZiB0aGUgc29ydAogICAgZXhwcmVzc2lvbidzIHR5cGUuCgogICAgLi4gdmVyc2lvbmFkZGVkOjogMS4xCgogICAgVE4pBXJsAAAAcm0AAABybgAAAHJvAAAAcsEAAAByHgAAAHIeAAAAch4AAAByHwAAAHLDAAAAsgMAAHMEAAAACAwEAnLDAAAAYwAAAAAAAAAAAAAAAAEAAABAAAAAcxQAAABlAFoBZABaAmQBWgNkAloEZANTACkE2g9wZXJjZW50aWxlX2Rpc2NhlwEAAGltcGxlbWVudCB0aGUgYGBwZXJjZW50aWxlX2Rpc2NgYCBvcmRlcmVkLXNldCBhZ2dyZWdhdGUgZnVuY3Rpb24uCgogICAgVGhpcyBmdW5jdGlvbiBtdXN0IGJlIHVzZWQgd2l0aCB0aGUgOm1ldGg6YC5GdW5jdGlvbkVsZW1lbnQud2l0aGluX2dyb3VwYAogICAgbW9kaWZpZXIgdG8gc3VwcGx5IGEgc29ydCBleHByZXNzaW9uIHRvIG9wZXJhdGUgdXBvbi4KCiAgICBUaGUgcmV0dXJuIHR5cGUgb2YgdGhpcyBmdW5jdGlvbiBpcyB0aGUgc2FtZSBhcyB0aGUgc29ydCBleHByZXNzaW9uLAogICAgb3IgaWYgdGhlIGFyZ3VtZW50cyBhcmUg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YWJsZS5jLmNvbF8yXQogICAgICAgICkuZ3JvdXBfYnkoZnVuYy5yb2xsdXAodGFibGUuYy5jb2xfMSwgdGFibGUuYy5jb2xfMikpCgogICAgLi4gdmVyc2lvbmFkZGVkOjogMS4yCgogICAgVE4pBXJsAAAAcm0AAABybgAAAHJvAAAAcjsAAAByHgAAAHIeAAAAch4AAAByHwAAAHLLAAAAIAQAAHMEAAAACAwEAXLLAAAAYwAAAAAAAAAAAAAAAAEAAABAAAAAcxQAAABlAFoBZABaAmQBWgNkAloEZANTACkE2g1ncm91cGluZ19zZXRzYSUDAABJbXBsZW1lbnQgdGhlIGBgR1JPVVBJTkcgU0VUU2BgIGdyb3VwaW5nIG9wZXJhdGlvbi4KCiAgICBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgYXMgcGFydCBvZiB0aGUgR1JPVVAgQlkgb2YgYSBzdGF0ZW1lbnQsCiAgICBlLmcuIDptZXRoOmAuU2VsZWN0Lmdyb3VwX2J5YDo6CgogICAgICAgIHN0bXQgPSBzZWxlY3QoCiAgICAgICAgICAgIFtmdW5jLnN1bSh0YWJsZS5jLnZhbHVlKSwgdGFibGUuYy5jb2xfMSwgdGFibGUuYy5jb2xfMl0KICAgICAgICApLmdyb3VwX2J5KGZ1bmMuZ3JvdXBpbmdfc2V0cyh0YWJsZS5jLmNvbF8xLCB0YWJsZS5jLmNvbF8yKSkKCiAgICBJbiBvcmRlciB0byBncm91cCBieSBtdWx0aXBsZSBzZXRzLCB1c2UgdGhlIDpmdW5jOmAudHVwbGVfYCBjb25zdHJ1Y3Q6OgoKICAgICAgICBmcm9tIHNxbGFsY2hlbXkgaW1wb3J0IHR1cGxlXwoKICAgICAgICBzdG10ID0gc2VsZWN0KAogICAgICAgICAgICBbCiAgICAgICAgICAgICAgICBmdW5jLnN1bSh0YWJsZS5jLnZhbHVlKSwKICAgICAgICAgICAgICAgIHRhYmxlLmMuY29sXzEsIHRhYmxlLmMuY29sXzIsCiAgICAgICAgICAgICAgICB0YWJsZS5jLmNvbF8zXQogICAgICAgICkuZ3JvdXBfYnkoCiAgICAgICAgICAgIGZ1bmMuZ3JvdXBpbmdfc2V0cygKICAgICAgICAgICAgICAgIHR1cGxlXyh0YWJsZS5jLmNvbF8xLCB0YWJsZS5jLmNvbF8yKSwKICAgICAgICAgICAgICAgIHR1cGxlXyh0YWJsZS5jLnZhbHVlLCB0YWJsZS5jLmNvbF8zKSwKICAgICAgICAgICAgKQogICAgICAgICkKCgogICAgLi4gdmVyc2lvbmFkZGVkOjogMS4yCgogICAgVE4pBXJsAAAAcm0AAABybgAAAHJvAAAAcjsAAAByHgAAAHIeAAAAch4AAAByHwAAAHLMAAAAMAQAAHMEAAAACB0EAXLMAAAATikBciQAAAApUnJvAAAA2gByAgAAAHIDAAAAcgQAAAByBQAAAHIGAAAAcsAAAADaBGJhc2VyBwAAAHIIAAAA2ghlbGVtZW50c3IJAAAAcgoAAAByCwAAAHIMAAAAcg0AAAByDgAAAHIPAAAAchAAAAByEQAAAHISAAAAchMAAAByFAAAAHIVAAAAchYAAABaCnNlbGVjdGFibGVyFwAAAHIYAAAAchkAAABaCHZpc2l0b3JzchoAAAByHAAAAHIdAAAAciYAAAByJwAAANoGc3ltYm9scikAAAByMwAAAHI0AAAAclAAAADaBm9iamVjdHJ5AAAAco4AAADaCG1vZGlmaWVycooAAABylQAAANoOd2l0aF9tZXRhY2xhc3NymwAAAHKfAAAAcqUAAABypgAAAHKoAAAAcqkAAAByqgAAAHKrAAAAcqwAAAByrgAAAHKwAAAAcrIAAAByswAAAHK1AAAAcrYAAABytwAAAHK4AAAAcrkAAAByugAAAHK7AAAAcrwAAAByvQAAAHK+AAAAcr8AAABywgAAAHLDAAAAcsQAAAByxQAAAHLGAAAAcscAAAByyQAAAHLKAAAAcssAAAByzAAAAHIeAAAAch4AAAByHgAAAHIfAAAA2gg8bW9kdWxlPgoAAABzmgAAAAQBDAEMAQwBDAEMAQwBDAEMAQwBDAEMAQwBDAEMAQwBDAEMAQwBDAEMAQwBDAEMAQwBDAEMAwoBDgEEAQIBCAUKQhR/AH8APhAmEDAGRgoDECsQFxhRCgEKAxAZEAUQChAEEAQQBBAEEAQQBBAHEAQQHRAEEAQQBBAEEAQQBBAEEAQQBBAlEBAQDRAREBEQDxAPEA8QDxAQEBA=
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 19
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
annotation.cpython-37.pyc
5.57 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
base.cpython-37.pyc
23.16 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
compiler.cpython-37.pyc
93.70 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
crud.cpython-37.pyc
15.01 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ddl.cpython-37.pyc
36.50 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
default_comparator.cpython-37.pyc
7.21 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
dml.cpython-37.pyc
31.66 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
elements.cpython-37.pyc
146.00 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
expression.cpython-37.pyc
6.47 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
functions.cpython-37.pyc
32.50 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
naming.cpython-37.pyc
4.67 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
operators.cpython-37.pyc
45.37 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
schema.cpython-37.pyc
142.91 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
selectable.cpython-37.pyc
122.08 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
sqltypes.cpython-37.pyc
86.91 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
type_api.cpython-37.pyc
47.55 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
util.cpython-37.pyc
23.63 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
visitors.cpython-37.pyc
10.00 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-37.pyc
3.02 KB
lrw-r--r--
2023-11-14 14:32:36
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).