diff --git a/prebuild.py b/prebuild.py index 8d11e24c..b7c7ec58 100644 --- a/prebuild.py +++ b/prebuild.py @@ -8,15 +8,16 @@ def get_sources(): key = file.split(".")[0] const_char_array = [] with open("python/" + file) as f: - # convert to char array (signed) + specials = { 10: '\\n', 34: '\\"' } for c in f.read().encode('utf-8'): - if c < 128: - const_char_array.append(str(c)) + if c in specials: + const_char_array.append(specials[c]) + elif c >= 32 and c <= 126 and c != 92: + const_char_array.append(chr(c)) else: - const_char_array.append(str(c - 256)) - const_char_array.append('0') - const_char_array = ','.join(const_char_array) - sources[key] = '{' + const_char_array + '}' + const_char_array.append(f'\\x{c:02x}') + const_char_array = ''.join(const_char_array) + sources[key] = '"' + const_char_array + '"' return sources sources = get_sources() diff --git a/src/_generated.cpp b/src/_generated.cpp index cda7acf7..9b9ade08 100644 --- a/src/_generated.cpp +++ b/src/_generated.cpp @@ -2,19 +2,19 @@ #include "pocketpy/_generated.h" namespace pkpy{ - const char kPythonLibs__enum[] = {99,108,97,115,115,32,69,110,117,109,58,10,32,32,32,32,100,101,102,32,95,95,105,110,105,116,95,95,40,115,101,108,102,44,32,110,97,109,101,44,32,118,97,108,117,101,41,58,10,32,32,32,32,32,32,32,32,115,101,108,102,46,110,97,109,101,32,61,32,110,97,109,101,10,32,32,32,32,32,32,32,32,115,101,108,102,46,118,97,108,117,101,32,61,32,118,97,108,117,101,10,10,32,32,32,32,100,101,102,32,95,95,115,116,114,95,95,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,39,123,116,121,112,101,40,115,101,108,102,41,46,95,95,110,97,109,101,95,95,125,46,123,115,101,108,102,46,110,97,109,101,125,39,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,114,101,112,114,95,95,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,39,60,123,115,116,114,40,115,101,108,102,41,125,58,32,123,115,101,108,102,46,118,97,108,117,101,33,114,125,62,39,10,32,32,32,32,10,0}; - const char kPythonLibs__long[] = {35,32,97,102,116,101,114,32,118,49,46,50,46,50,44,32,105,110,116,32,105,115,32,97,108,119,97,121,115,32,54,52,45,98,105,116,10,80,121,76,111,110,103,95,83,72,73,70,84,32,61,32,54,48,47,47,50,32,45,32,49,10,10,80,121,76,111,110,103,95,66,65,83,69,32,61,32,50,32,42,42,32,80,121,76,111,110,103,95,83,72,73,70,84,10,80,121,76,111,110,103,95,77,65,83,75,32,61,32,80,121,76,111,110,103,95,66,65,83,69,32,45,32,49,10,80,121,76,111,110,103,95,68,69,67,73,77,65,76,95,83,72,73,70,84,32,61,32,52,10,80,121,76,111,110,103,95,68,69,67,73,77,65,76,95,66,65,83,69,32,61,32,49,48,32,42,42,32,80,121,76,111,110,103,95,68,69,67,73,77,65,76,95,83,72,73,70,84,10,10,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,10,10,100,101,102,32,117,108,111,110,103,95,102,114,111,109,105,110,116,40,120,58,32,105,110,116,41,58,10,32,32,32,32,35,32,114,101,116,117,114,110,32,97,32,108,105,115,116,32,111,102,32,100,105,103,105,116,115,32,97,110,100,32,115,105,103,110,10,32,32,32,32,105,102,32,120,32,61,61,32,48,58,32,114,101,116,117,114,110,32,91,48,93,44,32,49,10,32,32,32,32,115,105,103,110,32,61,32,49,32,105,102,32,120,32,62,32,48,32,101,108,115,101,32,45,49,10,32,32,32,32,105,102,32,115,105,103,110,32,60,32,48,58,32,120,32,61,32,45,120,10,32,32,32,32,114,101,115,32,61,32,91,93,10,32,32,32,32,119,104,105,108,101,32,120,58,10,32,32,32,32,32,32,32,32,114,101,115,46,97,112,112,101,110,100,40,120,32,38,32,80,121,76,111,110,103,95,77,65,83,75,41,10,32,32,32,32,32,32,32,32,120,32,62,62,61,32,80,121,76,111,110,103,95,83,72,73,70,84,10,32,32,32,32,114,101,116,117,114,110,32,114,101,115,44,32,115,105,103,110,10,10,100,101,102,32,117,108,111,110,103,95,99,109,112,40,97,58,32,108,105,115,116,44,32,98,58,32,108,105,115,116,41,32,45,62,32,105,110,116,58,10,32,32,32,32,35,32,114,101,116,117,114,110,32,49,32,105,102,32,97,62,98,44,32,45,49,32,105,102,32,97,60,98,44,32,48,32,105,102,32,97,61,61,98,10,32,32,32,32,105,102,32,108,101,110,40,97,41,32,62,32,108,101,110,40,98,41,58,32,114,101,116,117,114,110,32,49,10,32,32,32,32,105,102,32,108,101,110,40,97,41,32,60,32,108,101,110,40,98,41,58,32,114,101,116,117,114,110,32,45,49,10,32,32,32,32,102,111,114,32,105,32,105,110,32,114,97,110,103,101,40,108,101,110,40,97,41,45,49,44,32,45,49,44,32,45,49,41,58,10,32,32,32,32,32,32,32,32,105,102,32,97,91,105,93,32,62,32,98,91,105,93,58,32,114,101,116,117,114,110,32,49,10,32,32,32,32,32,32,32,32,105,102,32,97,91,105,93,32,60,32,98,91,105,93,58,32,114,101,116,117,114,110,32,45,49,10,32,32,32,32,114,101,116,117,114,110,32,48,10,10,100,101,102,32,117,108,111,110,103,95,112,97,100,95,40,97,58,32,108,105,115,116,44,32,115,105,122,101,58,32,105,110,116,41,58,10,32,32,32,32,35,32,112,97,100,32,108,101,97,100,105,110,103,32,122,101,114,111,115,32,116,111,32,104,97,118,101,32,96,115,105,122,101,96,32,100,105,103,105,116,115,10,32,32,32,32,100,101,108,116,97,32,61,32,115,105,122,101,32,45,32,108,101,110,40,97,41,10,32,32,32,32,105,102,32,100,101,108,116,97,32,62,32,48,58,10,32,32,32,32,32,32,32,32,97,46,101,120,116,101,110,100,40,91,48,93,32,42,32,100,101,108,116,97,41,10,10,100,101,102,32,117,108,111,110,103,95,117,110,112,97,100,95,40,97,58,32,108,105,115,116,41,58,10,32,32,32,32,35,32,114,101,109,111,118,101,32,108,101,97,100,105,110,103,32,122,101,114,111,115,10,32,32,32,32,119,104,105,108,101,32,108,101,110,40,97,41,62,49,32,97,110,100,32,97,91,45,49,93,61,61,48,58,10,32,32,32,32,32,32,32,32,97,46,112,111,112,40,41,10,10,100,101,102,32,117,108,111,110,103,95,97,100,100,40,97,58,32,108,105,115,116,44,32,98,58,32,108,105,115,116,41,32,45,62,32,108,105,115,116,58,10,32,32,32,32,114,101,115,32,61,32,91,48,93,32,42,32,109,97,120,40,108,101,110,40,97,41,44,32,108,101,110,40,98,41,41,10,32,32,32,32,117,108,111,110,103,95,112,97,100,95,40,97,44,32,108,101,110,40,114,101,115,41,41,10,32,32,32,32,117,108,111,110,103,95,112,97,100,95,40,98,44,32,108,101,110,40,114,101,115,41,41,10,32,32,32,32,99,97,114,114,121,32,61,32,48,10,32,32,32,32,102,111,114,32,105,32,105,110,32,114,97,110,103,101,40,108,101,110,40,114,101,115,41,41,58,10,32,32,32,32,32,32,32,32,99,97,114,114,121,32,43,61,32,97,91,105,93,32,43,32,98,91,105,93,10,32,32,32,32,32,32,32,32,114,101,115,91,105,93,32,61,32,99,97,114,114,121,32,38,32,80,121,76,111,110,103,95,77,65,83,75,10,32,32,32,32,32,32,32,32,99,97,114,114,121,32,62,62,61,32,80,121,76,111,110,103,95,83,72,73,70,84,10,32,32,32,32,105,102,32,99,97,114,114,121,32,62,32,48,58,10,32,32,32,32,32,32,32,32,114,101,115,46,97,112,112,101,110,100,40,99,97,114,114,121,41,10,32,32,32,32,114,101,116,117,114,110,32,114,101,115,10,10,100,101,102,32,117,108,111,110,103,95,105,110,99,95,40,97,58,32,108,105,115,116,41,58,10,32,32,32,32,97,91,48,93,32,43,61,32,49,10,32,32,32,32,102,111,114,32,105,32,105,110,32,114,97,110,103,101,40,108,101,110,40,97,41,41,58,10,32,32,32,32,32,32,32,32,105,102,32,97,91,105,93,32,60,32,80,121,76,111,110,103,95,66,65,83,69,58,32,98,114,101,97,107,10,32,32,32,32,32,32,32,32,97,91,105,93,32,45,61,32,80,121,76,111,110,103,95,66,65,83,69,10,32,32,32,32,32,32,32,32,105,102,32,105,43,49,32,61,61,32,108,101,110,40,97,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,97,46,97,112,112,101,110,100,40,49,41,10,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,97,91,105,43,49,93,32,43,61,32,49,10,32,32,32,32,10,10,100,101,102,32,117,108,111,110,103,95,115,117,98,40,97,58,32,108,105,115,116,44,32,98,58,32,108,105,115,116,41,32,45,62,32,108,105,115,116,58,10,32,32,32,32,35,32,97,32,62,61,32,98,10,32,32,32,32,114,101,115,32,61,32,91,93,10,32,32,32,32,98,111,114,114,111,119,32,61,32,48,10,32,32,32,32,102,111,114,32,105,32,105,110,32,114,97,110,103,101,40,108,101,110,40,98,41,41,58,10,32,32,32,32,32,32,32,32,116,109,112,32,61,32,97,91,105,93,32,45,32,98,91,105,93,32,45,32,98,111,114,114,111,119,10,32,32,32,32,32,32,32,32,105,102,32,116,109,112,32,60,32,48,58,10,32,32,32,32,32,32,32,32,32,32,32,32,116,109,112,32,43,61,32,80,121,76,111,110,103,95,66,65,83,69,10,32,32,32,32,32,32,32,32,32,32,32,32,98,111,114,114,111,119,32,61,32,49,10,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,98,111,114,114,111,119,32,61,32,48,10,32,32,32,32,32,32,32,32,114,101,115,46,97,112,112,101,110,100,40,116,109,112,41,10,32,32,32,32,102,111,114,32,105,32,105,110,32,114,97,110,103,101,40,108,101,110,40,98,41,44,32,108,101,110,40,97,41,41,58,10,32,32,32,32,32,32,32,32,116,109,112,32,61,32,97,91,105,93,32,45,32,98,111,114,114,111,119,10,32,32,32,32,32,32,32,32,105,102,32,116,109,112,32,60,32,48,58,10,32,32,32,32,32,32,32,32,32,32,32,32,116,109,112,32,43,61,32,80,121,76,111,110,103,95,66,65,83,69,10,32,32,32,32,32,32,32,32,32,32,32,32,98,111,114,114,111,119,32,61,32,49,10,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,98,111,114,114,111,119,32,61,32,48,10,32,32,32,32,32,32,32,32,114,101,115,46,97,112,112,101,110,100,40,116,109,112,41,10,32,32,32,32,117,108,111,110,103,95,117,110,112,97,100,95,40,114,101,115,41,10,32,32,32,32,114,101,116,117,114,110,32,114,101,115,10,10,100,101,102,32,117,108,111,110,103,95,100,105,118,109,111,100,105,40,97,58,32,108,105,115,116,44,32,98,58,32,105,110,116,41,58,10,32,32,32,32,35,32,98,32,62,32,48,10,32,32,32,32,114,101,115,32,61,32,91,93,10,32,32,32,32,99,97,114,114,121,32,61,32,48,10,32,32,32,32,102,111,114,32,105,32,105,110,32,114,97,110,103,101,40,108,101,110,40,97,41,45,49,44,32,45,49,44,32,45,49,41,58,10,32,32,32,32,32,32,32,32,99,97,114,114,121,32,60,60,61,32,80,121,76,111,110,103,95,83,72,73,70,84,10,32,32,32,32,32,32,32,32,99,97,114,114,121,32,43,61,32,97,91,105,93,10,32,32,32,32,32,32,32,32,114,101,115,46,97,112,112,101,110,100,40,99,97,114,114,121,32,47,47,32,98,41,10,32,32,32,32,32,32,32,32,99,97,114,114,121,32,37,61,32,98,10,32,32,32,32,114,101,115,46,114,101,118,101,114,115,101,40,41,10,32,32,32,32,117,108,111,110,103,95,117,110,112,97,100,95,40,114,101,115,41,10,32,32,32,32,114,101,116,117,114,110,32,114,101,115,44,32,99,97,114,114,121,10,10,10,100,101,102,32,117,108,111,110,103,95,100,105,118,109,111,100,40,97,58,32,108,105,115,116,44,32,98,58,32,108,105,115,116,41,58,10,10,32,32,32,32,105,102,32,117,108,111,110,103,95,99,109,112,40,97,44,32,98,41,32,60,32,48,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,48,93,44,32,97,10,10,32,32,32,32,105,102,32,108,101,110,40,98,41,32,61,61,32,49,58,10,32,32,32,32,32,32,32,32,113,44,32,114,32,61,32,117,108,111,110,103,95,100,105,118,109,111,100,105,40,97,44,32,98,91,48,93,41,10,32,32,32,32,32,32,32,32,114,44,32,95,32,61,32,117,108,111,110,103,95,102,114,111,109,105,110,116,40,114,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,113,44,32,114,10,10,32,32,32,32,109,97,120,32,61,32,40,108,101,110,40,97,41,32,45,32,108,101,110,40,98,41,41,32,42,32,80,121,76,111,110,103,95,83,72,73,70,84,32,43,32,92,10,32,32,32,32,32,32,32,32,40,97,91,45,49,93,46,98,105,116,95,108,101,110,103,116,104,40,41,32,45,32,98,91,45,49,93,46,98,105,116,95,108,101,110,103,116,104,40,41,41,10,10,32,32,32,32,108,111,119,32,61,32,91,48,93,10,10,32,32,32,32,104,105,103,104,32,61,32,40,109,97,120,32,47,47,32,80,121,76,111,110,103,95,83,72,73,70,84,41,32,42,32,91,48,93,32,43,32,92,10,32,32,32,32,32,32,32,32,91,40,50,42,42,40,109,97,120,32,37,32,80,121,76,111,110,103,95,83,72,73,70,84,41,41,32,38,32,80,121,76,111,110,103,95,77,65,83,75,93,10,10,32,32,32,32,119,104,105,108,101,32,117,108,111,110,103,95,99,109,112,40,108,111,119,44,32,104,105,103,104,41,32,60,32,48,58,10,32,32,32,32,32,32,32,32,117,108,111,110,103,95,105,110,99,95,40,104,105,103,104,41,10,32,32,32,32,32,32,32,32,109,105,100,44,32,114,32,61,32,117,108,111,110,103,95,100,105,118,109,111,100,105,40,117,108,111,110,103,95,97,100,100,40,108,111,119,44,32,104,105,103,104,41,44,32,50,41,10,32,32,32,32,32,32,32,32,105,102,32,117,108,111,110,103,95,99,109,112,40,97,44,32,117,108,111,110,103,95,109,117,108,40,98,44,32,109,105,100,41,41,32,62,61,32,48,58,10,32,32,32,32,32,32,32,32,32,32,32,32,108,111,119,32,61,32,109,105,100,10,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,104,105,103,104,32,61,32,117,108,111,110,103,95,115,117,98,40,109,105,100,44,32,91,49,93,41,10,10,32,32,32,32,113,32,61,32,91,48,93,32,42,32,40,108,101,110,40,97,41,32,45,32,108,101,110,40,98,41,32,43,32,49,41,10,32,32,32,32,119,104,105,108,101,32,117,108,111,110,103,95,99,109,112,40,97,44,32,117,108,111,110,103,95,109,117,108,40,98,44,32,108,111,119,41,41,32,62,61,32,48,58,10,32,32,32,32,32,32,32,32,113,32,61,32,117,108,111,110,103,95,97,100,100,40,113,44,32,108,111,119,41,10,32,32,32,32,32,32,32,32,97,32,61,32,117,108,111,110,103,95,115,117,98,40,97,44,32,117,108,111,110,103,95,109,117,108,40,98,44,32,108,111,119,41,41,10,32,32,32,32,117,108,111,110,103,95,117,110,112,97,100,95,40,113,41,10,32,32,32,32,114,101,116,117,114,110,32,113,44,32,97,10,10,100,101,102,32,117,108,111,110,103,95,102,108,111,111,114,100,105,118,105,40,97,58,32,108,105,115,116,44,32,98,58,32,105,110,116,41,58,10,32,32,32,32,35,32,98,32,62,32,48,10,32,32,32,32,114,101,116,117,114,110,32,117,108,111,110,103,95,100,105,118,109,111,100,105,40,97,44,32,98,41,91,48,93,10,10,100,101,102,32,117,108,111,110,103,95,109,117,108,105,40,97,58,32,108,105,115,116,44,32,98,58,32,105,110,116,41,58,10,32,32,32,32,35,32,98,32,62,61,32,48,10,32,32,32,32,114,101,115,32,61,32,91,48,93,32,42,32,108,101,110,40,97,41,10,32,32,32,32,99,97,114,114,121,32,61,32,48,10,32,32,32,32,102,111,114,32,105,32,105,110,32,114,97,110,103,101,40,108,101,110,40,97,41,41,58,10,32,32,32,32,32,32,32,32,99,97,114,114,121,32,43,61,32,97,91,105,93,32,42,32,98,10,32,32,32,32,32,32,32,32,114,101,115,91,105,93,32,61,32,99,97,114,114,121,32,38,32,80,121,76,111,110,103,95,77,65,83,75,10,32,32,32,32,32,32,32,32,99,97,114,114,121,32,62,62,61,32,80,121,76,111,110,103,95,83,72,73,70,84,10,32,32,32,32,105,102,32,99,97,114,114,121,32,62,32,48,58,10,32,32,32,32,32,32,32,32,114,101,115,46,97,112,112,101,110,100,40,99,97,114,114,121,41,10,32,32,32,32,114,101,116,117,114,110,32,114,101,115,10,10,100,101,102,32,117,108,111,110,103,95,109,117,108,40,97,58,32,108,105,115,116,44,32,98,58,32,108,105,115,116,41,58,10,32,32,32,32,78,32,61,32,108,101,110,40,97,41,32,43,32,108,101,110,40,98,41,10,32,32,32,32,35,32,117,115,101,32,103,114,97,100,101,45,115,99,104,111,111,108,32,109,117,108,116,105,112,108,105,99,97,116,105,111,110,10,32,32,32,32,114,101,115,32,61,32,91,48,93,32,42,32,78,10,32,32,32,32,102,111,114,32,105,32,105,110,32,114,97,110,103,101,40,108,101,110,40,97,41,41,58,10,32,32,32,32,32,32,32,32,99,97,114,114,121,32,61,32,48,10,32,32,32,32,32,32,32,32,102,111,114,32,106,32,105,110,32,114,97,110,103,101,40,108,101,110,40,98,41,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,99,97,114,114,121,32,43,61,32,114,101,115,91,105,43,106,93,32,43,32,97,91,105,93,32,42,32,98,91,106,93,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,115,91,105,43,106,93,32,61,32,99,97,114,114,121,32,38,32,80,121,76,111,110,103,95,77,65,83,75,10,32,32,32,32,32,32,32,32,32,32,32,32,99,97,114,114,121,32,62,62,61,32,80,121,76,111,110,103,95,83,72,73,70,84,10,32,32,32,32,32,32,32,32,114,101,115,91,105,43,108,101,110,40,98,41,93,32,61,32,99,97,114,114,121,10,32,32,32,32,117,108,111,110,103,95,117,110,112,97,100,95,40,114,101,115,41,10,32,32,32,32,114,101,116,117,114,110,32,114,101,115,10,10,100,101,102,32,117,108,111,110,103,95,112,111,119,105,40,97,58,32,108,105,115,116,44,32,98,58,32,105,110,116,41,58,10,32,32,32,32,35,32,98,32,62,61,32,48,10,32,32,32,32,105,102,32,98,32,61,61,32,48,58,32,114,101,116,117,114,110,32,91,49,93,10,32,32,32,32,114,101,115,32,61,32,91,49,93,10,32,32,32,32,119,104,105,108,101,32,98,58,10,32,32,32,32,32,32,32,32,105,102,32,98,32,38,32,49,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,115,32,61,32,117,108,111,110,103,95,109,117,108,40,114,101,115,44,32,97,41,10,32,32,32,32,32,32,32,32,97,32,61,32,117,108,111,110,103,95,109,117,108,40,97,44,32,97,41,10,32,32,32,32,32,32,32,32,98,32,62,62,61,32,49,10,32,32,32,32,114,101,116,117,114,110,32,114,101,115,10,10,100,101,102,32,117,108,111,110,103,95,114,101,112,114,40,120,58,32,108,105,115,116,41,32,45,62,32,115,116,114,58,10,32,32,32,32,114,101,115,32,61,32,91,93,10,32,32,32,32,119,104,105,108,101,32,108,101,110,40,120,41,62,49,32,111,114,32,120,91,48,93,62,48,58,32,32,32,35,32,110,111,110,45,122,101,114,111,10,32,32,32,32,32,32,32,32,120,44,32,114,32,61,32,117,108,111,110,103,95,100,105,118,109,111,100,105,40,120,44,32,80,121,76,111,110,103,95,68,69,67,73,77,65,76,95,66,65,83,69,41,10,32,32,32,32,32,32,32,32,114,101,115,46,97,112,112,101,110,100,40,115,116,114,40,114,41,46,122,102,105,108,108,40,80,121,76,111,110,103,95,68,69,67,73,77,65,76,95,83,72,73,70,84,41,41,10,32,32,32,32,114,101,115,46,114,101,118,101,114,115,101,40,41,10,32,32,32,32,115,32,61,32,39,39,46,106,111,105,110,40,114,101,115,41,10,32,32,32,32,105,102,32,108,101,110,40,115,41,32,61,61,32,48,58,32,114,101,116,117,114,110,32,39,48,39,10,32,32,32,32,105,102,32,108,101,110,40,115,41,32,62,32,49,58,32,115,32,61,32,115,46,108,115,116,114,105,112,40,39,48,39,41,10,32,32,32,32,114,101,116,117,114,110,32,115,10,10,100,101,102,32,117,108,111,110,103,95,102,114,111,109,115,116,114,40,115,58,32,115,116,114,41,58,10,32,32,32,32,105,102,32,115,91,45,49,93,32,61,61,32,39,76,39,58,10,32,32,32,32,32,32,32,32,115,32,61,32,115,91,58,45,49,93,10,32,32,32,32,114,101,115,44,32,98,97,115,101,32,61,32,91,48,93,44,32,91,49,93,10,32,32,32,32,105,102,32,115,91,48,93,32,61,61,32,39,45,39,58,10,32,32,32,32,32,32,32,32,115,105,103,110,32,61,32,45,49,10,32,32,32,32,32,32,32,32,115,32,61,32,115,91,49,58,93,10,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,115,105,103,110,32,61,32,49,10,32,32,32,32,115,32,61,32,115,91,58,58,45,49,93,10,32,32,32,32,102,111,114,32,99,32,105,110,32,115,58,10,32,32,32,32,32,32,32,32,99,32,61,32,111,114,100,40,99,41,32,45,32,52,56,10,32,32,32,32,32,32,32,32,97,115,115,101,114,116,32,48,32,60,61,32,99,32,60,61,32,57,10,32,32,32,32,32,32,32,32,114,101,115,32,61,32,117,108,111,110,103,95,97,100,100,40,114,101,115,44,32,117,108,111,110,103,95,109,117,108,105,40,98,97,115,101,44,32,99,41,41,10,32,32,32,32,32,32,32,32,98,97,115,101,32,61,32,117,108,111,110,103,95,109,117,108,105,40,98,97,115,101,44,32,49,48,41,10,32,32,32,32,114,101,116,117,114,110,32,114,101,115,44,32,115,105,103,110,10,10,99,108,97,115,115,32,108,111,110,103,58,10,32,32,32,32,100,101,102,32,95,95,105,110,105,116,95,95,40,115,101,108,102,44,32,120,41,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,120,41,32,105,115,32,116,117,112,108,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,100,105,103,105,116,115,44,32,115,101,108,102,46,115,105,103,110,32,61,32,120,10,32,32,32,32,32,32,32,32,101,108,105,102,32,116,121,112,101,40,120,41,32,105,115,32,105,110,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,100,105,103,105,116,115,44,32,115,101,108,102,46,115,105,103,110,32,61,32,117,108,111,110,103,95,102,114,111,109,105,110,116,40,120,41,10,32,32,32,32,32,32,32,32,101,108,105,102,32,116,121,112,101,40,120,41,32,105,115,32,102,108,111,97,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,100,105,103,105,116,115,44,32,115,101,108,102,46,115,105,103,110,32,61,32,117,108,111,110,103,95,102,114,111,109,105,110,116,40,105,110,116,40,120,41,41,10,32,32,32,32,32,32,32,32,101,108,105,102,32,116,121,112,101,40,120,41,32,105,115,32,115,116,114,58,10,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,100,105,103,105,116,115,44,32,115,101,108,102,46,115,105,103,110,32,61,32,117,108,111,110,103,95,102,114,111,109,115,116,114,40,120,41,10,32,32,32,32,32,32,32,32,101,108,105,102,32,116,121,112,101,40,120,41,32,105,115,32,108,111,110,103,58,10,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,100,105,103,105,116,115,44,32,115,101,108,102,46,115,105,103,110,32,61,32,120,46,100,105,103,105,116,115,46,99,111,112,121,40,41,44,32,120,46,115,105,103,110,10,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,97,105,115,101,32,84,121,112,101,69,114,114,111,114,40,39,101,120,112,101,99,116,101,100,32,105,110,116,32,111,114,32,115,116,114,39,41,10,32,32,32,32,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,108,101,110,95,95,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,101,110,40,115,101,108,102,46,100,105,103,105,116,115,41,10,10,32,32,32,32,100,101,102,32,95,95,97,100,100,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,105,110,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,111,116,104,101,114,32,61,32,108,111,110,103,40,111,116,104,101,114,41,10,32,32,32,32,32,32,32,32,101,108,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,108,111,110,103,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,105,102,32,115,101,108,102,46,115,105,103,110,32,61,61,32,111,116,104,101,114,46,115,105,103,110,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,111,110,103,40,40,117,108,111,110,103,95,97,100,100,40,115,101,108,102,46,100,105,103,105,116,115,44,32,111,116,104,101,114,46,100,105,103,105,116,115,41,44,32,115,101,108,102,46,115,105,103,110,41,41,10,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,99,109,112,32,61,32,117,108,111,110,103,95,99,109,112,40,115,101,108,102,46,100,105,103,105,116,115,44,32,111,116,104,101,114,46,100,105,103,105,116,115,41,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,99,109,112,32,61,61,32,48,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,111,110,103,40,48,41,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,99,109,112,32,62,32,48,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,111,110,103,40,40,117,108,111,110,103,95,115,117,98,40,115,101,108,102,46,100,105,103,105,116,115,44,32,111,116,104,101,114,46,100,105,103,105,116,115,41,44,32,115,101,108,102,46,115,105,103,110,41,41,10,32,32,32,32,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,111,110,103,40,40,117,108,111,110,103,95,115,117,98,40,111,116,104,101,114,46,100,105,103,105,116,115,44,32,115,101,108,102,46,100,105,103,105,116,115,41,44,32,111,116,104,101,114,46,115,105,103,110,41,41,10,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,114,97,100,100,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,95,95,97,100,100,95,95,40,111,116,104,101,114,41,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,115,117,98,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,105,110,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,111,116,104,101,114,32,61,32,108,111,110,103,40,111,116,104,101,114,41,10,32,32,32,32,32,32,32,32,101,108,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,108,111,110,103,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,105,102,32,115,101,108,102,46,115,105,103,110,32,33,61,32,111,116,104,101,114,46,115,105,103,110,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,111,110,103,40,40,117,108,111,110,103,95,97,100,100,40,115,101,108,102,46,100,105,103,105,116,115,44,32,111,116,104,101,114,46,100,105,103,105,116,115,41,44,32,115,101,108,102,46,115,105,103,110,41,41,10,32,32,32,32,32,32,32,32,99,109,112,32,61,32,117,108,111,110,103,95,99,109,112,40,115,101,108,102,46,100,105,103,105,116,115,44,32,111,116,104,101,114,46,100,105,103,105,116,115,41,10,32,32,32,32,32,32,32,32,105,102,32,99,109,112,32,61,61,32,48,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,111,110,103,40,48,41,10,32,32,32,32,32,32,32,32,105,102,32,99,109,112,32,62,32,48,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,111,110,103,40,40,117,108,111,110,103,95,115,117,98,40,115,101,108,102,46,100,105,103,105,116,115,44,32,111,116,104,101,114,46,100,105,103,105,116,115,41,44,32,115,101,108,102,46,115,105,103,110,41,41,10,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,111,110,103,40,40,117,108,111,110,103,95,115,117,98,40,111,116,104,101,114,46,100,105,103,105,116,115,44,32,115,101,108,102,46,100,105,103,105,116,115,41,44,32,45,111,116,104,101,114,46,115,105,103,110,41,41,10,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,114,115,117,98,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,105,110,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,111,116,104,101,114,32,61,32,108,111,110,103,40,111,116,104,101,114,41,10,32,32,32,32,32,32,32,32,101,108,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,108,111,110,103,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,111,116,104,101,114,46,95,95,115,117,98,95,95,40,115,101,108,102,41,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,109,117,108,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,105,110,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,111,110,103,40,40,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,117,108,111,110,103,95,109,117,108,105,40,115,101,108,102,46,100,105,103,105,116,115,44,32,97,98,115,40,111,116,104,101,114,41,41,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,115,105,103,110,32,42,32,40,49,32,105,102,32,111,116,104,101,114,32,62,61,32,48,32,101,108,115,101,32,45,49,41,10,32,32,32,32,32,32,32,32,32,32,32,32,41,41,10,32,32,32,32,32,32,32,32,101,108,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,108,111,110,103,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,111,110,103,40,40,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,117,108,111,110,103,95,109,117,108,40,115,101,108,102,46,100,105,103,105,116,115,44,32,111,116,104,101,114,46,100,105,103,105,116,115,41,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,115,105,103,110,32,42,32,111,116,104,101,114,46,115,105,103,110,10,32,32,32,32,32,32,32,32,32,32,32,32,41,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,114,109,117,108,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,95,95,109,117,108,95,95,40,111,116,104,101,114,41,10,32,32,32,32,10,32,32,32,32,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,10,32,32,32,32,100,101,102,32,95,95,100,105,118,109,111,100,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,105,110,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,97,115,115,101,114,116,32,115,101,108,102,46,115,105,103,110,32,61,61,32,49,32,97,110,100,32,111,116,104,101,114,32,62,32,48,10,32,32,32,32,32,32,32,32,32,32,32,32,113,44,32,114,32,61,32,117,108,111,110,103,95,100,105,118,109,111,100,105,40,115,101,108,102,46,100,105,103,105,116,115,44,32,111,116,104,101,114,41,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,111,110,103,40,40,113,44,32,49,41,41,44,32,114,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,108,111,110,103,58,10,32,32,32,32,32,32,32,32,32,32,32,32,97,115,115,101,114,116,32,115,101,108,102,46,115,105,103,110,32,61,61,32,49,32,97,110,100,32,111,116,104,101,114,46,115,105,103,110,32,61,61,32,49,10,32,32,32,32,32,32,32,32,32,32,32,32,113,44,32,114,32,61,32,117,108,111,110,103,95,100,105,118,109,111,100,40,115,101,108,102,46,100,105,103,105,116,115,44,32,111,116,104,101,114,46,100,105,103,105,116,115,41,10,32,32,32,32,32,32,32,32,32,32,32,32,97,115,115,101,114,116,32,108,101,110,40,111,116,104,101,114,41,62,49,32,111,114,32,111,116,104,101,114,46,100,105,103,105,116,115,91,48,93,62,48,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,111,110,103,40,40,113,44,32,49,41,41,44,32,108,111,110,103,40,40,114,44,32,49,41,41,10,32,32,32,32,32,32,32,32,114,97,105,115,101,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,69,114,114,111,114,10,10,32,32,32,32,100,101,102,32,95,95,102,108,111,111,114,100,105,118,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,95,95,100,105,118,109,111,100,95,95,40,111,116,104,101,114,41,91,48,93,10,10,32,32,32,32,100,101,102,32,95,95,109,111,100,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,95,95,100,105,118,109,111,100,95,95,40,111,116,104,101,114,41,91,49,93,10,10,32,32,32,32,100,101,102,32,95,95,112,111,119,95,95,40,115,101,108,102,44,32,111,116,104,101,114,58,32,105,110,116,41,58,10,32,32,32,32,32,32,32,32,97,115,115,101,114,116,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,105,110,116,32,97,110,100,32,111,116,104,101,114,32,62,61,32,48,10,32,32,32,32,32,32,32,32,105,102,32,115,101,108,102,46,115,105,103,110,32,61,61,32,45,49,32,97,110,100,32,111,116,104,101,114,32,38,32,49,58,10,32,32,32,32,32,32,32,32,32,32,32,32,115,105,103,110,32,61,32,45,49,10,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,115,105,103,110,32,61,32,49,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,111,110,103,40,40,117,108,111,110,103,95,112,111,119,105,40,115,101,108,102,46,100,105,103,105,116,115,44,32,111,116,104,101,114,41,44,32,115,105,103,110,41,41,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,108,115,104,105,102,116,95,95,40,115,101,108,102,44,32,111,116,104,101,114,58,32,105,110,116,41,58,10,32,32,32,32,32,32,32,32,97,115,115,101,114,116,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,105,110,116,32,97,110,100,32,111,116,104,101,114,32,62,61,32,48,10,32,32,32,32,32,32,32,32,120,32,61,32,115,101,108,102,46,100,105,103,105,116,115,46,99,111,112,121,40,41,10,32,32,32,32,32,32,32,32,113,44,32,114,32,61,32,100,105,118,109,111,100,40,111,116,104,101,114,44,32,80,121,76,111,110,103,95,83,72,73,70,84,41,10,32,32,32,32,32,32,32,32,120,32,61,32,91,48,93,42,113,32,43,32,120,10,32,32,32,32,32,32,32,32,102,111,114,32,95,32,105,110,32,114,97,110,103,101,40,114,41,58,32,120,32,61,32,117,108,111,110,103,95,109,117,108,105,40,120,44,32,50,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,111,110,103,40,40,120,44,32,115,101,108,102,46,115,105,103,110,41,41,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,114,115,104,105,102,116,95,95,40,115,101,108,102,44,32,111,116,104,101,114,58,32,105,110,116,41,58,10,32,32,32,32,32,32,32,32,97,115,115,101,114,116,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,105,110,116,32,97,110,100,32,111,116,104,101,114,32,62,61,32,48,10,32,32,32,32,32,32,32,32,120,32,61,32,115,101,108,102,46,100,105,103,105,116,115,46,99,111,112,121,40,41,10,32,32,32,32,32,32,32,32,113,44,32,114,32,61,32,100,105,118,109,111,100,40,111,116,104,101,114,44,32,80,121,76,111,110,103,95,83,72,73,70,84,41,10,32,32,32,32,32,32,32,32,120,32,61,32,120,91,113,58,93,10,32,32,32,32,32,32,32,32,105,102,32,110,111,116,32,120,58,32,114,101,116,117,114,110,32,108,111,110,103,40,48,41,10,32,32,32,32,32,32,32,32,102,111,114,32,95,32,105,110,32,114,97,110,103,101,40,114,41,58,32,120,32,61,32,117,108,111,110,103,95,102,108,111,111,114,100,105,118,105,40,120,44,32,50,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,111,110,103,40,40,120,44,32,115,101,108,102,46,115,105,103,110,41,41,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,110,101,103,95,95,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,111,110,103,40,40,115,101,108,102,46,100,105,103,105,116,115,44,32,45,115,101,108,102,46,115,105,103,110,41,41,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,99,109,112,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,105,110,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,111,116,104,101,114,32,61,32,108,111,110,103,40,111,116,104,101,114,41,10,32,32,32,32,32,32,32,32,101,108,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,108,111,110,103,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,105,102,32,115,101,108,102,46,115,105,103,110,32,62,32,111,116,104,101,114,46,115,105,103,110,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,49,10,32,32,32,32,32,32,32,32,101,108,105,102,32,115,101,108,102,46,115,105,103,110,32,60,32,111,116,104,101,114,46,115,105,103,110,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,45,49,10,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,117,108,111,110,103,95,99,109,112,40,115,101,108,102,46,100,105,103,105,116,115,44,32,111,116,104,101,114,46,100,105,103,105,116,115,41,10,32,32,32,32,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,101,113,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,95,95,99,109,112,95,95,40,111,116,104,101,114,41,32,61,61,32,48,10,32,32,32,32,100,101,102,32,95,95,108,116,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,95,95,99,109,112,95,95,40,111,116,104,101,114,41,32,60,32,48,10,32,32,32,32,100,101,102,32,95,95,108,101,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,95,95,99,109,112,95,95,40,111,116,104,101,114,41,32,60,61,32,48,10,32,32,32,32,100,101,102,32,95,95,103,116,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,95,95,99,109,112,95,95,40,111,116,104,101,114,41,32,62,32,48,10,32,32,32,32,100,101,102,32,95,95,103,101,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,95,95,99,109,112,95,95,40,111,116,104,101,114,41,32,62,61,32,48,10,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,114,101,112,114,95,95,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,112,114,101,102,105,120,32,61,32,39,45,39,32,105,102,32,115,101,108,102,46,115,105,103,110,32,60,32,48,32,101,108,115,101,32,39,39,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,112,114,101,102,105,120,32,43,32,117,108,111,110,103,95,114,101,112,114,40,115,101,108,102,46,100,105,103,105,116,115,41,32,43,32,39,76,39,10,0}; - const char kPythonLibs__set[] = {99,108,97,115,115,32,115,101,116,58,10,32,32,32,32,100,101,102,32,95,95,105,110,105,116,95,95,40,115,101,108,102,44,32,105,116,101,114,97,98,108,101,61,78,111,110,101,41,58,10,32,32,32,32,32,32,32,32,105,116,101,114,97,98,108,101,32,61,32,105,116,101,114,97,98,108,101,32,111,114,32,91,93,10,32,32,32,32,32,32,32,32,115,101,108,102,46,95,97,32,61,32,123,125,10,32,32,32,32,32,32,32,32,115,101,108,102,46,117,112,100,97,116,101,40,105,116,101,114,97,98,108,101,41,10,10,32,32,32,32,100,101,102,32,97,100,100,40,115,101,108,102,44,32,101,108,101,109,41,58,10,32,32,32,32,32,32,32,32,115,101,108,102,46,95,97,91,101,108,101,109,93,32,61,32,78,111,110,101,10,32,32,32,32,32,32,32,32,10,32,32,32,32,100,101,102,32,100,105,115,99,97,114,100,40,115,101,108,102,44,32,101,108,101,109,41,58,10,32,32,32,32,32,32,32,32,115,101,108,102,46,95,97,46,112,111,112,40,101,108,101,109,44,32,78,111,110,101,41,10,10,32,32,32,32,100,101,102,32,114,101,109,111,118,101,40,115,101,108,102,44,32,101,108,101,109,41,58,10,32,32,32,32,32,32,32,32,100,101,108,32,115,101,108,102,46,95,97,91,101,108,101,109,93,10,32,32,32,32,32,32,32,32,10,32,32,32,32,100,101,102,32,99,108,101,97,114,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,115,101,108,102,46,95,97,46,99,108,101,97,114,40,41,10,10,32,32,32,32,100,101,102,32,117,112,100,97,116,101,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,102,111,114,32,101,108,101,109,32,105,110,32,111,116,104,101,114,58,10,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,97,100,100,40,101,108,101,109,41,10,10,32,32,32,32,100,101,102,32,95,95,108,101,110,95,95,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,101,110,40,115,101,108,102,46,95,97,41,10,32,32,32,32,10,32,32,32,32,100,101,102,32,99,111,112,121,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,116,40,115,101,108,102,46,95,97,46,107,101,121,115,40,41,41,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,97,110,100,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,123,101,108,101,109,32,102,111,114,32,101,108,101,109,32,105,110,32,115,101,108,102,32,105,102,32,101,108,101,109,32,105,110,32,111,116,104,101,114,125,10,10,32,32,32,32,100,101,102,32,95,95,115,117,98,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,123,101,108,101,109,32,102,111,114,32,101,108,101,109,32,105,110,32,115,101,108,102,32,105,102,32,101,108,101,109,32,110,111,116,32,105,110,32,111,116,104,101,114,125,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,111,114,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,32,61,32,115,101,108,102,46,99,111,112,121,40,41,10,32,32,32,32,32,32,32,32,114,101,116,46,117,112,100,97,116,101,40,111,116,104,101,114,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,114,101,116,10,10,32,32,32,32,100,101,102,32,95,95,120,111,114,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,32,10,32,32,32,32,32,32,32,32,95,48,32,61,32,115,101,108,102,32,45,32,111,116,104,101,114,10,32,32,32,32,32,32,32,32,95,49,32,61,32,111,116,104,101,114,32,45,32,115,101,108,102,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,95,48,32,124,32,95,49,10,10,32,32,32,32,100,101,102,32,117,110,105,111,110,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,32,124,32,111,116,104,101,114,10,10,32,32,32,32,100,101,102,32,105,110,116,101,114,115,101,99,116,105,111,110,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,32,38,32,111,116,104,101,114,10,10,32,32,32,32,100,101,102,32,100,105,102,102,101,114,101,110,99,101,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,32,45,32,111,116,104,101,114,10,10,32,32,32,32,100,101,102,32,115,121,109,109,101,116,114,105,99,95,100,105,102,102,101,114,101,110,99,101,40,115,101,108,102,44,32,111,116,104,101,114,41,58,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,32,94,32,111,116,104,101,114,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,101,113,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,105,102,32,110,111,116,32,105,115,105,110,115,116,97,110,99,101,40,111,116,104,101,114,44,32,115,101,116,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,101,110,40,115,101,108,102,32,94,32,111,116,104,101,114,41,32,61,61,32,48,10,10,32,32,32,32,100,101,102,32,105,115,100,105,115,106,111,105,110,116,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,101,110,40,115,101,108,102,32,38,32,111,116,104,101,114,41,32,61,61,32,48,10,32,32,32,32,10,32,32,32,32,100,101,102,32,105,115,115,117,98,115,101,116,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,101,110,40,115,101,108,102,32,45,32,111,116,104,101,114,41,32,61,61,32,48,10,32,32,32,32,10,32,32,32,32,100,101,102,32,105,115,115,117,112,101,114,115,101,116,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,101,110,40,111,116,104,101,114,32,45,32,115,101,108,102,41,32,61,61,32,48,10,10,32,32,32,32,100,101,102,32,95,95,99,111,110,116,97,105,110,115,95,95,40,115,101,108,102,44,32,101,108,101,109,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,101,108,101,109,32,105,110,32,115,101,108,102,46,95,97,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,114,101,112,114,95,95,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,105,102,32,108,101,110,40,115,101,108,102,41,32,61,61,32,48,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,39,115,101,116,40,41,39,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,39,123,39,43,32,39,44,32,39,46,106,111,105,110,40,91,114,101,112,114,40,105,41,32,102,111,114,32,105,32,105,110,32,115,101,108,102,46,95,97,46,107,101,121,115,40,41,93,41,32,43,32,39,125,39,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,105,116,101,114,95,95,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,105,116,101,114,40,115,101,108,102,46,95,97,46,107,101,121,115,40,41,41,0}; - const char kPythonLibs_bisect[] = {34,34,34,66,105,115,101,99,116,105,111,110,32,97,108,103,111,114,105,116,104,109,115,46,34,34,34,10,10,100,101,102,32,105,110,115,111,114,116,95,114,105,103,104,116,40,97,44,32,120,44,32,108,111,61,48,44,32,104,105,61,78,111,110,101,41,58,10,32,32,32,32,34,34,34,73,110,115,101,114,116,32,105,116,101,109,32,120,32,105,110,32,108,105,115,116,32,97,44,32,97,110,100,32,107,101,101,112,32,105,116,32,115,111,114,116,101,100,32,97,115,115,117,109,105,110,103,32,97,32,105,115,32,115,111,114,116,101,100,46,10,10,32,32,32,32,73,102,32,120,32,105,115,32,97,108,114,101,97,100,121,32,105,110,32,97,44,32,105,110,115,101,114,116,32,105,116,32,116,111,32,116,104,101,32,114,105,103,104,116,32,111,102,32,116,104,101,32,114,105,103,104,116,109,111,115,116,32,120,46,10,10,32,32,32,32,79,112,116,105,111,110,97,108,32,97,114,103,115,32,108,111,32,40,100,101,102,97,117,108,116,32,48,41,32,97,110,100,32,104,105,32,40,100,101,102,97,117,108,116,32,108,101,110,40,97,41,41,32,98,111,117,110,100,32,116,104,101,10,32,32,32,32,115,108,105,99,101,32,111,102,32,97,32,116,111,32,98,101,32,115,101,97,114,99,104,101,100,46,10,32,32,32,32,34,34,34,10,10,32,32,32,32,108,111,32,61,32,98,105,115,101,99,116,95,114,105,103,104,116,40,97,44,32,120,44,32,108,111,44,32,104,105,41,10,32,32,32,32,97,46,105,110,115,101,114,116,40,108,111,44,32,120,41,10,10,100,101,102,32,98,105,115,101,99,116,95,114,105,103,104,116,40,97,44,32,120,44,32,108,111,61,48,44,32,104,105,61,78,111,110,101,41,58,10,32,32,32,32,34,34,34,82,101,116,117,114,110,32,116,104,101,32,105,110,100,101,120,32,119,104,101,114,101,32,116,111,32,105,110,115,101,114,116,32,105,116,101,109,32,120,32,105,110,32,108,105,115,116,32,97,44,32,97,115,115,117,109,105,110,103,32,97,32,105,115,32,115,111,114,116,101,100,46,10,10,32,32,32,32,84,104,101,32,114,101,116,117,114,110,32,118,97,108,117,101,32,105,32,105,115,32,115,117,99,104,32,116,104,97,116,32,97,108,108,32,101,32,105,110,32,97,91,58,105,93,32,104,97,118,101,32,101,32,60,61,32,120,44,32,97,110,100,32,97,108,108,32,101,32,105,110,10,32,32,32,32,97,91,105,58,93,32,104,97,118,101,32,101,32,62,32,120,46,32,32,83,111,32,105,102,32,120,32,97,108,114,101,97,100,121,32,97,112,112,101,97,114,115,32,105,110,32,116,104,101,32,108,105,115,116,44,32,97,46,105,110,115,101,114,116,40,120,41,32,119,105,108,108,10,32,32,32,32,105,110,115,101,114,116,32,106,117,115,116,32,97,102,116,101,114,32,116,104,101,32,114,105,103,104,116,109,111,115,116,32,120,32,97,108,114,101,97,100,121,32,116,104,101,114,101,46,10,10,32,32,32,32,79,112,116,105,111,110,97,108,32,97,114,103,115,32,108,111,32,40,100,101,102,97,117,108,116,32,48,41,32,97,110,100,32,104,105,32,40,100,101,102,97,117,108,116,32,108,101,110,40,97,41,41,32,98,111,117,110,100,32,116,104,101,10,32,32,32,32,115,108,105,99,101,32,111,102,32,97,32,116,111,32,98,101,32,115,101,97,114,99,104,101,100,46,10,32,32,32,32,34,34,34,10,10,32,32,32,32,105,102,32,108,111,32,60,32,48,58,10,32,32,32,32,32,32,32,32,114,97,105,115,101,32,86,97,108,117,101,69,114,114,111,114,40,39,108,111,32,109,117,115,116,32,98,101,32,110,111,110,45,110,101,103,97,116,105,118,101,39,41,10,32,32,32,32,105,102,32,104,105,32,105,115,32,78,111,110,101,58,10,32,32,32,32,32,32,32,32,104,105,32,61,32,108,101,110,40,97,41,10,32,32,32,32,119,104,105,108,101,32,108,111,32,60,32,104,105,58,10,32,32,32,32,32,32,32,32,109,105,100,32,61,32,40,108,111,43,104,105,41,47,47,50,10,32,32,32,32,32,32,32,32,105,102,32,120,32,60,32,97,91,109,105,100,93,58,32,104,105,32,61,32,109,105,100,10,32,32,32,32,32,32,32,32,101,108,115,101,58,32,108,111,32,61,32,109,105,100,43,49,10,32,32,32,32,114,101,116,117,114,110,32,108,111,10,10,100,101,102,32,105,110,115,111,114,116,95,108,101,102,116,40,97,44,32,120,44,32,108,111,61,48,44,32,104,105,61,78,111,110,101,41,58,10,32,32,32,32,34,34,34,73,110,115,101,114,116,32,105,116,101,109,32,120,32,105,110,32,108,105,115,116,32,97,44,32,97,110,100,32,107,101,101,112,32,105,116,32,115,111,114,116,101,100,32,97,115,115,117,109,105,110,103,32,97,32,105,115,32,115,111,114,116,101,100,46,10,10,32,32,32,32,73,102,32,120,32,105,115,32,97,108,114,101,97,100,121,32,105,110,32,97,44,32,105,110,115,101,114,116,32,105,116,32,116,111,32,116,104,101,32,108,101,102,116,32,111,102,32,116,104,101,32,108,101,102,116,109,111,115,116,32,120,46,10,10,32,32,32,32,79,112,116,105,111,110,97,108,32,97,114,103,115,32,108,111,32,40,100,101,102,97,117,108,116,32,48,41,32,97,110,100,32,104,105,32,40,100,101,102,97,117,108,116,32,108,101,110,40,97,41,41,32,98,111,117,110,100,32,116,104,101,10,32,32,32,32,115,108,105,99,101,32,111,102,32,97,32,116,111,32,98,101,32,115,101,97,114,99,104,101,100,46,10,32,32,32,32,34,34,34,10,10,32,32,32,32,108,111,32,61,32,98,105,115,101,99,116,95,108,101,102,116,40,97,44,32,120,44,32,108,111,44,32,104,105,41,10,32,32,32,32,97,46,105,110,115,101,114,116,40,108,111,44,32,120,41,10,10,10,100,101,102,32,98,105,115,101,99,116,95,108,101,102,116,40,97,44,32,120,44,32,108,111,61,48,44,32,104,105,61,78,111,110,101,41,58,10,32,32,32,32,34,34,34,82,101,116,117,114,110,32,116,104,101,32,105,110,100,101,120,32,119,104,101,114,101,32,116,111,32,105,110,115,101,114,116,32,105,116,101,109,32,120,32,105,110,32,108,105,115,116,32,97,44,32,97,115,115,117,109,105,110,103,32,97,32,105,115,32,115,111,114,116,101,100,46,10,10,32,32,32,32,84,104,101,32,114,101,116,117,114,110,32,118,97,108,117,101,32,105,32,105,115,32,115,117,99,104,32,116,104,97,116,32,97,108,108,32,101,32,105,110,32,97,91,58,105,93,32,104,97,118,101,32,101,32,60,32,120,44,32,97,110,100,32,97,108,108,32,101,32,105,110,10,32,32,32,32,97,91,105,58,93,32,104,97,118,101,32,101,32,62,61,32,120,46,32,32,83,111,32,105,102,32,120,32,97,108,114,101,97,100,121,32,97,112,112,101,97,114,115,32,105,110,32,116,104,101,32,108,105,115,116,44,32,97,46,105,110,115,101,114,116,40,120,41,32,119,105,108,108,10,32,32,32,32,105,110,115,101,114,116,32,106,117,115,116,32,98,101,102,111,114,101,32,116,104,101,32,108,101,102,116,109,111,115,116,32,120,32,97,108,114,101,97,100,121,32,116,104,101,114,101,46,10,10,32,32,32,32,79,112,116,105,111,110,97,108,32,97,114,103,115,32,108,111,32,40,100,101,102,97,117,108,116,32,48,41,32,97,110,100,32,104,105,32,40,100,101,102,97,117,108,116,32,108,101,110,40,97,41,41,32,98,111,117,110,100,32,116,104,101,10,32,32,32,32,115,108,105,99,101,32,111,102,32,97,32,116,111,32,98,101,32,115,101,97,114,99,104,101,100,46,10,32,32,32,32,34,34,34,10,10,32,32,32,32,105,102,32,108,111,32,60,32,48,58,10,32,32,32,32,32,32,32,32,114,97,105,115,101,32,86,97,108,117,101,69,114,114,111,114,40,39,108,111,32,109,117,115,116,32,98,101,32,110,111,110,45,110,101,103,97,116,105,118,101,39,41,10,32,32,32,32,105,102,32,104,105,32,105,115,32,78,111,110,101,58,10,32,32,32,32,32,32,32,32,104,105,32,61,32,108,101,110,40,97,41,10,32,32,32,32,119,104,105,108,101,32,108,111,32,60,32,104,105,58,10,32,32,32,32,32,32,32,32,109,105,100,32,61,32,40,108,111,43,104,105,41,47,47,50,10,32,32,32,32,32,32,32,32,105,102,32,97,91,109,105,100,93,32,60,32,120,58,32,108,111,32,61,32,109,105,100,43,49,10,32,32,32,32,32,32,32,32,101,108,115,101,58,32,104,105,32,61,32,109,105,100,10,32,32,32,32,114,101,116,117,114,110,32,108,111,10,10,35,32,67,114,101,97,116,101,32,97,108,105,97,115,101,115,10,98,105,115,101,99,116,32,61,32,98,105,115,101,99,116,95,114,105,103,104,116,10,105,110,115,111,114,116,32,61,32,105,110,115,111,114,116,95,114,105,103,104,116,10,0}; - const char kPythonLibs_builtins[] = {102,114,111,109,32,95,95,98,117,105,108,116,105,110,115,32,105,109,112,111,114,116,32,110,101,120,116,32,97,115,32,95,95,98,117,105,108,116,105,110,115,95,110,101,120,116,10,10,100,101,102,32,97,108,108,40,105,116,101,114,97,98,108,101,41,58,10,32,32,32,32,102,111,114,32,105,32,105,110,32,105,116,101,114,97,98,108,101,58,10,32,32,32,32,32,32,32,32,105,102,32,110,111,116,32,105,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,70,97,108,115,101,10,32,32,32,32,114,101,116,117,114,110,32,84,114,117,101,10,10,100,101,102,32,97,110,121,40,105,116,101,114,97,98,108,101,41,58,10,32,32,32,32,102,111,114,32,105,32,105,110,32,105,116,101,114,97,98,108,101,58,10,32,32,32,32,32,32,32,32,105,102,32,105,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,84,114,117,101,10,32,32,32,32,114,101,116,117,114,110,32,70,97,108,115,101,10,10,100,101,102,32,101,110,117,109,101,114,97,116,101,40,105,116,101,114,97,98,108,101,44,32,115,116,97,114,116,61,48,41,58,10,32,32,32,32,110,32,61,32,115,116,97,114,116,10,32,32,32,32,102,111,114,32,101,108,101,109,32,105,110,32,105,116,101,114,97,98,108,101,58,10,32,32,32,32,32,32,32,32,121,105,101,108,100,32,110,44,32,101,108,101,109,10,32,32,32,32,32,32,32,32,43,43,110,10,10,100,101,102,32,115,117,109,40,105,116,101,114,97,98,108,101,41,58,10,32,32,32,32,114,101,115,32,61,32,48,10,32,32,32,32,102,111,114,32,105,32,105,110,32,105,116,101,114,97,98,108,101,58,10,32,32,32,32,32,32,32,32,114,101,115,32,43,61,32,105,10,32,32,32,32,114,101,116,117,114,110,32,114,101,115,10,10,100,101,102,32,109,97,112,40,102,44,32,105,116,101,114,97,98,108,101,41,58,10,32,32,32,32,102,111,114,32,105,32,105,110,32,105,116,101,114,97,98,108,101,58,10,32,32,32,32,32,32,32,32,121,105,101,108,100,32,102,40,105,41,10,10,100,101,102,32,102,105,108,116,101,114,40,102,44,32,105,116,101,114,97,98,108,101,41,58,10,32,32,32,32,102,111,114,32,105,32,105,110,32,105,116,101,114,97,98,108,101,58,10,32,32,32,32,32,32,32,32,105,102,32,102,40,105,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,121,105,101,108,100,32,105,10,10,100,101,102,32,122,105,112,40,97,44,32,98,41,58,10,32,32,32,32,97,32,61,32,105,116,101,114,40,97,41,10,32,32,32,32,98,32,61,32,105,116,101,114,40,98,41,10,32,32,32,32,119,104,105,108,101,32,84,114,117,101,58,10,32,32,32,32,32,32,32,32,97,105,32,61,32,95,95,98,117,105,108,116,105,110,115,95,110,101,120,116,40,97,41,10,32,32,32,32,32,32,32,32,98,105,32,61,32,95,95,98,117,105,108,116,105,110,115,95,110,101,120,116,40,98,41,10,32,32,32,32,32,32,32,32,105,102,32,97,105,32,105,115,32,83,116,111,112,73,116,101,114,97,116,105,111,110,32,111,114,32,98,105,32,105,115,32,83,116,111,112,73,116,101,114,97,116,105,111,110,58,10,32,32,32,32,32,32,32,32,32,32,32,32,98,114,101,97,107,10,32,32,32,32,32,32,32,32,121,105,101,108,100,32,97,105,44,32,98,105,10,10,100,101,102,32,114,101,118,101,114,115,101,100,40,105,116,101,114,97,98,108,101,41,58,10,32,32,32,32,97,32,61,32,108,105,115,116,40,105,116,101,114,97,98,108,101,41,10,32,32,32,32,97,46,114,101,118,101,114,115,101,40,41,10,32,32,32,32,114,101,116,117,114,110,32,97,10,10,100,101,102,32,115,111,114,116,101,100,40,105,116,101,114,97,98,108,101,44,32,107,101,121,61,78,111,110,101,44,32,114,101,118,101,114,115,101,61,70,97,108,115,101,41,58,10,32,32,32,32,97,32,61,32,108,105,115,116,40,105,116,101,114,97,98,108,101,41,10,32,32,32,32,97,46,115,111,114,116,40,107,101,121,61,107,101,121,44,32,114,101,118,101,114,115,101,61,114,101,118,101,114,115,101,41,10,32,32,32,32,114,101,116,117,114,110,32,97,10,10,35,35,35,35,35,32,115,116,114,32,35,35,35,35,35,10,100,101,102,32,95,95,102,111,114,109,97,116,95,115,116,114,105,110,103,40,115,101,108,102,58,32,115,116,114,44,32,42,97,114,103,115,44,32,42,42,107,119,97,114,103,115,41,32,45,62,32,115,116,114,58,10,32,32,32,32,100,101,102,32,116,111,107,101,110,105,122,101,83,116,114,105,110,103,40,115,58,32,115,116,114,41,58,10,32,32,32,32,32,32,32,32,116,111,107,101,110,115,32,61,32,91,93,10,32,32,32,32,32,32,32,32,76,44,32,82,32,61,32,48,44,48,10,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,109,111,100,101,32,61,32,78,111,110,101,10,32,32,32,32,32,32,32,32,99,117,114,65,114,103,32,61,32,48,10,32,32,32,32,32,32,32,32,35,32,108,111,111,107,105,110,103,70,111,114,75,119,111,114,100,32,61,32,70,97,108,115,101,10,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,119,104,105,108,101,40,82,60,108,101,110,40,115,41,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,99,117,114,67,104,97,114,32,61,32,115,91,82,93,10,32,32,32,32,32,32,32,32,32,32,32,32,110,101,120,116,67,104,97,114,32,61,32,115,91,82,43,49,93,32,105,102,32,82,43,49,60,108,101,110,40,115,41,32,101,108,115,101,32,39,39,10,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,35,32,73,110,118,97,108,105,100,32,99,97,115,101,32,49,58,32,115,116,114,97,121,32,39,125,39,32,101,110,99,111,117,110,116,101,114,101,100,44,32,101,120,97,109,112,108,101,58,32,34,65,66,67,68,32,69,70,71,72,32,123,110,97,109,101,125,32,73,74,75,76,125,34,44,32,34,72,101,108,108,111,32,123,118,118,125,125,34,44,32,34,72,69,76,76,79,32,123,48,125,32,87,79,82,76,68,125,34,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,99,117,114,67,104,97,114,32,61,61,32,39,125,39,32,97,110,100,32,110,101,120,116,67,104,97,114,32,33,61,32,39,125,39,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,97,105,115,101,32,86,97,108,117,101,69,114,114,111,114,40,34,83,105,110,103,108,101,32,39,125,39,32,101,110,99,111,117,110,116,101,114,101,100,32,105,110,32,102,111,114,109,97,116,32,115,116,114,105,110,103,34,41,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,35,32,86,97,108,105,100,32,67,97,115,101,32,49,58,32,69,115,99,97,112,105,110,103,32,99,97,115,101,44,32,119,101,32,101,115,99,97,112,101,32,34,123,123,32,111,114,32,34,125,125,34,32,116,111,32,98,101,32,34,123,34,32,111,114,32,34,125,34,44,32,101,120,97,109,112,108,101,58,32,34,123,123,125,125,34,44,32,34,123,123,77,121,32,78,97,109,101,32,105,115,32,123,48,125,125,125,34,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,99,117,114,67,104,97,114,32,61,61,32,39,123,39,32,97,110,100,32,110,101,120,116,67,104,97,114,32,61,61,32,39,123,39,41,32,111,114,32,40,99,117,114,67,104,97,114,32,61,61,32,39,125,39,32,97,110,100,32,110,101,120,116,67,104,97,114,32,61,61,32,39,125,39,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,76,60,82,41,58,32,35,32,86,97,108,105,100,32,67,97,115,101,32,49,46,49,58,32,109,97,107,101,32,115,117,114,101,32,119,101,32,97,114,101,32,110,111,116,32,97,100,100,105,110,103,32,101,109,112,116,121,32,115,116,114,105,110,103,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,111,107,101,110,115,46,97,112,112,101,110,100,40,115,91,76,58,82,93,41,32,35,32,97,100,100,32,116,104,101,32,115,116,114,105,110,103,32,98,101,102,111,114,101,32,116,104,101,32,101,115,99,97,112,101,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,111,107,101,110,115,46,97,112,112,101,110,100,40,99,117,114,67,104,97,114,41,32,35,32,86,97,108,105,100,32,67,97,115,101,32,49,46,50,58,32,97,100,100,32,116,104,101,32,101,115,99,97,112,101,32,99,104,97,114,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,76,32,61,32,82,43,50,32,35,32,109,111,118,101,32,116,104,101,32,108,101,102,116,32,112,111,105,110,116,101,114,32,116,111,32,116,104,101,32,110,101,120,116,32,99,104,97,114,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,82,32,61,32,82,43,50,32,35,32,109,111,118,101,32,116,104,101,32,114,105,103,104,116,32,112,111,105,110,116,101,114,32,116,111,32,116,104,101,32,110,101,120,116,32,99,104,97,114,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,99,111,110,116,105,110,117,101,10,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,35,32,86,97,108,105,100,32,67,97,115,101,32,50,58,32,82,101,103,117,108,97,114,32,99,111,109,109,97,110,100,32,108,105,110,101,32,97,114,103,32,99,97,115,101,58,32,101,120,97,109,112,108,101,58,32,32,34,65,66,67,68,32,69,70,71,72,32,123,125,32,73,74,75,76,34,44,32,34,123,125,34,44,32,34,72,69,76,76,79,32,123,125,32,87,79,82,76,68,34,10,32,32,32,32,32,32,32,32,32,32,32,32,101,108,105,102,32,99,117,114,67,104,97,114,32,61,61,32,39,123,39,32,97,110,100,32,110,101,120,116,67,104,97,114,32,61,61,32,39,125,39,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,109,111,100,101,32,105,115,32,110,111,116,32,78,111,110,101,32,97,110,100,32,109,111,100,101,32,33,61,32,39,97,117,116,111,39,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,35,32,73,110,118,97,108,105,100,32,99,97,115,101,32,50,58,32,109,105,120,105,110,103,32,97,117,116,111,109,97,116,105,99,32,97,110,100,32,109,97,110,117,97,108,32,102,105,101,108,100,32,115,112,101,99,105,102,105,99,97,116,105,111,110,115,32,45,45,32,101,120,97,109,112,108,101,58,32,34,65,66,67,68,32,69,70,71,72,32,123,110,97,109,101,125,32,73,74,75,76,32,123,125,34,44,32,34,72,101,108,108,111,32,123,118,118,125,32,123,125,34,44,32,34,72,69,76,76,79,32,123,48,125,32,87,79,82,76,68,32,123,125,34,32,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,97,105,115,101,32,86,97,108,117,101,69,114,114,111,114,40,34,67,97,110,110,111,116,32,115,119,105,116,99,104,32,102,114,111,109,32,109,97,110,117,97,108,32,102,105,101,108,100,32,110,117,109,98,101,114,105,110,103,32,116,111,32,97,117,116,111,109,97,116,105,99,32,102,105,101,108,100,32,115,112,101,99,105,102,105,99,97,116,105,111,110,34,41,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,109,111,100,101,32,61,32,39,97,117,116,111,39,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,40,76,60,82,41,58,32,35,32,86,97,108,105,100,32,67,97,115,101,32,50,46,49,58,32,109,97,107,101,32,115,117,114,101,32,119,101,32,97,114,101,32,110,111,116,32,97,100,100,105,110,103,32,101,109,112,116,121,32,115,116,114,105,110,103,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,111,107,101,110,115,46,97,112,112,101,110,100,40,115,91,76,58,82,93,41,32,35,32,97,100,100,32,116,104,101,32,115,116,114,105,110,103,32,98,101,102,111,114,101,32,116,104,101,32,115,112,101,99,105,97,108,32,109,97,114,107,101,114,32,102,111,114,32,116,104,101,32,97,114,103,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,111,107,101,110,115,46,97,112,112,101,110,100,40,34,123,34,43,115,116,114,40,99,117,114,65,114,103,41,43,34,125,34,41,32,35,32,86,97,108,105,100,32,67,97,115,101,32,50,46,50,58,32,97,100,100,32,116,104,101,32,115,112,101,99,105,97,108,32,109,97,114,107,101,114,32,102,111,114,32,116,104,101,32,97,114,103,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,99,117,114,65,114,103,43,61,49,32,35,32,105,110,99,114,101,109,101,110,116,32,116,104,101,32,97,114,103,32,112,111,115,105,116,105,111,110,44,32,116,104,105,115,32,119,105,108,108,32,98,101,32,117,115,101,100,32,102,111,114,32,114,101,102,101,114,101,110,99,105,110,103,32,116,104,101,32,97,114,103,32,108,97,116,101,114,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,76,32,61,32,82,43,50,32,35,32,109,111,118,101,32,116,104,101,32,108,101,102,116,32,112,111,105,110,116,101,114,32,116,111,32,116,104,101,32,110,101,120,116,32,99,104,97,114,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,82,32,61,32,82,43,50,32,35,32,109,111,118,101,32,116,104,101,32,114,105,103,104,116,32,112,111,105,110,116,101,114,32,116,111,32,116,104,101,32,110,101,120,116,32,99,104,97,114,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,99,111,110,116,105,110,117,101,10,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,35,32,86,97,108,105,100,32,67,97,115,101,32,51,58,32,75,101,121,45,119,111,114,100,32,97,114,103,32,99,97,115,101,58,32,101,120,97,109,112,108,101,58,32,34,65,66,67,68,32,69,70,71,72,32,123,110,97,109,101,125,32,73,74,75,76,34,44,32,34,72,101,108,108,111,32,123,118,118,125,34,44,32,34,72,69,76,76,79,32,123,110,97,109,101,125,32,87,79,82,76,68,34,10,32,32,32,32,32,32,32,32,32,32,32,32,101,108,105,102,32,40,99,117,114,67,104,97,114,32,61,61,32,39,123,39,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,109,111,100,101,32,105,115,32,110,111,116,32,78,111,110,101,32,97,110,100,32,109,111,100,101,32,33,61,32,39,109,97,110,117,97,108,39,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,35,32,35,32,73,110,118,97,108,105,100,32,99,97,115,101,32,50,58,32,109,105,120,105,110,103,32,97,117,116,111,109,97,116,105,99,32,97,110,100,32,109,97,110,117,97,108,32,102,105,101,108,100,32,115,112,101,99,105,102,105,99,97,116,105,111,110,115,32,45,45,32,101,120,97,109,112,108,101,58,32,34,65,66,67,68,32,69,70,71,72,32,123,125,32,73,74,75,76,32,123,110,97,109,101,125,34,44,32,34,72,101,108,108,111,32,123,125,32,123,49,125,34,44,32,34,72,69,76,76,79,32,123,125,32,87,79,82,76,68,32,123,110,97,109,101,125,34,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,97,105,115,101,32,86,97,108,117,101,69,114,114,111,114,40,34,67,97,110,110,111,116,32,115,119,105,116,99,104,32,102,114,111,109,32,97,117,116,111,109,97,116,105,99,32,102,105,101,108,100,32,115,112,101,99,105,102,105,99,97,116,105,111,110,32,116,111,32,109,97,110,117,97,108,32,102,105,101,108,100,32,110,117,109,98,101,114,105,110,103,34,41,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,109,111,100,101,32,61,32,39,109,97,110,117,97,108,39,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,40,76,60,82,41,58,32,35,32,86,97,108,105,100,32,99,97,115,101,32,51,46,49,58,32,109,97,107,101,32,115,117,114,101,32,119,101,32,97,114,101,32,110,111,116,32,97,100,100,105,110,103,32,101,109,112,116,121,32,115,116,114,105,110,103,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,111,107,101,110,115,46,97,112,112,101,110,100,40,115,91,76,58,82,93,41,32,35,32,97,100,100,32,116,104,101,32,115,116,114,105,110,103,32,98,101,102,111,114,101,32,116,104,101,32,115,112,101,99,105,97,108,32,109,97,114,107,101,114,32,102,111,114,32,116,104,101,32,97,114,103,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,35,32,87,101,32,108,111,111,107,32,102,111,114,32,116,104,101,32,101,110,100,32,111,102,32,116,104,101,32,107,101,121,119,111,114,100,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,107,119,76,32,61,32,82,32,35,32,75,101,121,119,111,114,100,32,108,101,102,116,32,112,111,105,110,116,101,114,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,107,119,82,32,61,32,82,43,49,32,35,32,75,101,121,119,111,114,100,32,114,105,103,104,116,32,112,111,105,110,116,101,114,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,119,104,105,108,101,40,107,119,82,60,108,101,110,40,115,41,32,97,110,100,32,115,91,107,119,82,93,33,61,39,125,39,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,115,91,107,119,82,93,32,61,61,32,39,123,39,58,32,35,32,73,110,118,97,108,105,100,32,99,97,115,101,32,51,58,32,115,116,114,97,121,32,39,123,39,32,101,110,99,111,117,110,116,101,114,101,100,44,32,101,120,97,109,112,108,101,58,32,34,65,66,67,68,32,69,70,71,72,32,123,110,123,97,109,101,125,32,73,74,75,76,32,123,34,44,32,34,72,101,108,108,111,32,123,118,118,123,125,125,34,44,32,34,72,69,76,76,79,32,123,48,125,32,87,79,82,123,76,68,125,34,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,97,105,115,101,32,86,97,108,117,101,69,114,114,111,114,40,34,85,110,101,120,112,101,99,116,101,100,32,39,123,39,32,105,110,32,102,105,101,108,100,32,110,97,109,101,34,41,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,107,119,82,32,43,61,32,49,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,35,32,86,97,108,105,100,32,99,97,115,101,32,51,46,50,58,32,87,101,32,104,97,118,101,32,115,117,99,99,101,115,115,102,117,108,108,121,32,102,111,117,110,100,32,116,104,101,32,101,110,100,32,111,102,32,116,104,101,32,107,101,121,119,111,114,100,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,107,119,82,60,108,101,110,40,115,41,32,97,110,100,32,115,91,107,119,82,93,32,61,61,32,39,125,39,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,111,107,101,110,115,46,97,112,112,101,110,100,40,115,91,107,119,76,58,107,119,82,43,49,93,41,32,35,32,97,100,100,32,116,104,101,32,115,112,101,99,105,97,108,32,109,97,114,107,101,114,32,102,111,114,32,116,104,101,32,97,114,103,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,76,32,61,32,107,119,82,43,49,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,82,32,61,32,107,119,82,43,49,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,35,32,73,110,118,97,108,105,100,32,99,97,115,101,32,52,58,32,87,101,32,100,105,100,110,39,116,32,102,105,110,100,32,116,104,101,32,101,110,100,32,111,102,32,116,104,101,32,107,101,121,119,111,114,100,44,32,116,104,114,111,119,32,101,114,114,111,114,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,97,105,115,101,32,86,97,108,117,101,69,114,114,111,114,40,34,69,120,112,101,99,116,101,100,32,39,125,39,32,98,101,102,111,114,101,32,101,110,100,32,111,102,32,115,116,114,105,110,103,34,41,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,99,111,110,116,105,110,117,101,10,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,82,32,61,32,82,43,49,10,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,35,32,86,97,108,105,100,32,99,97,115,101,32,52,58,32,87,101,32,104,97,118,101,32,114,101,97,99,104,101,100,32,116,104,101,32,101,110,100,32,111,102,32,116,104,101,32,115,116,114,105,110,103,44,32,97,100,100,32,116,104,101,32,114,101,109,97,105,110,105,110,103,32,115,116,114,105,110,103,32,116,111,32,116,104,101,32,116,111,107,101,110,115,32,10,32,32,32,32,32,32,32,32,105,102,32,76,60,82,58,10,32,32,32,32,32,32,32,32,32,32,32,32,116,111,107,101,110,115,46,97,112,112,101,110,100,40,115,91,76,58,82,93,41,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,35,32,112,114,105,110,116,40,116,111,107,101,110,115,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,111,107,101,110,115,10,10,32,32,32,32,116,111,107,101,110,115,32,61,32,116,111,107,101,110,105,122,101,83,116,114,105,110,103,40,115,101,108,102,41,10,32,32,32,32,97,114,103,77,97,112,32,61,32,123,125,10,32,32,32,32,102,111,114,32,105,44,32,97,32,105,110,32,101,110,117,109,101,114,97,116,101,40,97,114,103,115,41,58,10,32,32,32,32,32,32,32,32,97,114,103,77,97,112,91,115,116,114,40,105,41,93,32,61,32,97,10,32,32,32,32,102,105,110,97,108,95,116,111,107,101,110,115,32,61,32,91,93,10,32,32,32,32,102,111,114,32,116,32,105,110,32,116,111,107,101,110,115,58,10,32,32,32,32,32,32,32,32,105,102,32,116,91,48,93,32,61,61,32,39,123,39,32,97,110,100,32,116,91,45,49,93,32,61,61,32,39,125,39,58,10,32,32,32,32,32,32,32,32,32,32,32,32,107,101,121,32,61,32,116,91,49,58,45,49,93,10,32,32,32,32,32,32,32,32,32,32,32,32,97,114,103,77,97,112,86,97,108,32,61,32,97,114,103,77,97,112,46,103,101,116,40,107,101,121,44,32,78,111,110,101,41,10,32,32,32,32,32,32,32,32,32,32,32,32,107,119,97,114,103,115,86,97,108,32,61,32,107,119,97,114,103,115,46,103,101,116,40,107,101,121,44,32,78,111,110,101,41,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,97,114,103,77,97,112,86,97,108,32,105,115,32,78,111,110,101,32,97,110,100,32,107,119,97,114,103,115,86,97,108,32,105,115,32,78,111,110,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,97,105,115,101,32,86,97,108,117,101,69,114,114,111,114,40,34,78,111,32,97,114,103,32,102,111,117,110,100,32,102,111,114,32,116,111,107,101,110,58,32,34,43,116,41,10,32,32,32,32,32,32,32,32,32,32,32,32,101,108,105,102,32,97,114,103,77,97,112,86,97,108,32,105,115,32,110,111,116,32,78,111,110,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,102,105,110,97,108,95,116,111,107,101,110,115,46,97,112,112,101,110,100,40,115,116,114,40,97,114,103,77,97,112,86,97,108,41,41,10,32,32,32,32,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,102,105,110,97,108,95,116,111,107,101,110,115,46,97,112,112,101,110,100,40,115,116,114,40,107,119,97,114,103,115,86,97,108,41,41,10,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,102,105,110,97,108,95,116,111,107,101,110,115,46,97,112,112,101,110,100,40,116,41,10,32,32,32,32,10,32,32,32,32,114,101,116,117,114,110,32,39,39,46,106,111,105,110,40,102,105,110,97,108,95,116,111,107,101,110,115,41,10,10,115,116,114,46,102,111,114,109,97,116,32,61,32,95,95,102,111,114,109,97,116,95,115,116,114,105,110,103,10,100,101,108,32,95,95,102,111,114,109,97,116,95,115,116,114,105,110,103,10,10,10,100,101,102,32,104,101,108,112,40,111,98,106,41,58,10,32,32,32,32,105,102,32,104,97,115,97,116,116,114,40,111,98,106,44,32,39,95,95,102,117,110,99,95,95,39,41,58,10,32,32,32,32,32,32,32,32,111,98,106,32,61,32,111,98,106,46,95,95,102,117,110,99,95,95,10,32,32,32,32,112,114,105,110,116,40,111,98,106,46,95,95,115,105,103,110,97,116,117,114,101,95,95,41,10,32,32,32,32,112,114,105,110,116,40,111,98,106,46,95,95,100,111,99,95,95,41,10,10,100,101,102,32,99,111,109,112,108,101,120,40,42,97,114,103,115,44,32,42,42,107,119,97,114,103,115,41,58,10,32,32,32,32,105,109,112,111,114,116,32,99,109,97,116,104,10,32,32,32,32,114,101,116,117,114,110,32,99,109,97,116,104,46,99,111,109,112,108,101,120,40,42,97,114,103,115,44,32,42,42,107,119,97,114,103,115,41,10,10,100,101,102,32,108,111,110,103,40,42,97,114,103,115,44,32,42,42,107,119,97,114,103,115,41,58,10,32,32,32,32,105,109,112,111,114,116,32,95,108,111,110,103,10,32,32,32,32,114,101,116,117,114,110,32,95,108,111,110,103,46,108,111,110,103,40,42,97,114,103,115,44,32,42,42,107,119,97,114,103,115,41,10,10,10,35,32,98,117,105,108,116,105,110,32,101,120,99,101,112,116,105,111,110,115,10,99,108,97,115,115,32,83,116,97,99,107,79,118,101,114,102,108,111,119,69,114,114,111,114,40,69,120,99,101,112,116,105,111,110,41,58,32,112,97,115,115,10,99,108,97,115,115,32,73,79,69,114,114,111,114,40,69,120,99,101,112,116,105,111,110,41,58,32,112,97,115,115,10,99,108,97,115,115,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,69,114,114,111,114,40,69,120,99,101,112,116,105,111,110,41,58,32,112,97,115,115,10,99,108,97,115,115,32,84,121,112,101,69,114,114,111,114,40,69,120,99,101,112,116,105,111,110,41,58,32,112,97,115,115,10,99,108,97,115,115,32,73,110,100,101,120,69,114,114,111,114,40,69,120,99,101,112,116,105,111,110,41,58,32,112,97,115,115,10,99,108,97,115,115,32,86,97,108,117,101,69,114,114,111,114,40,69,120,99,101,112,116,105,111,110,41,58,32,112,97,115,115,10,99,108,97,115,115,32,82,117,110,116,105,109,101,69,114,114,111,114,40,69,120,99,101,112,116,105,111,110,41,58,32,112,97,115,115,10,99,108,97,115,115,32,90,101,114,111,68,105,118,105,115,105,111,110,69,114,114,111,114,40,69,120,99,101,112,116,105,111,110,41,58,32,112,97,115,115,10,99,108,97,115,115,32,78,97,109,101,69,114,114,111,114,40,69,120,99,101,112,116,105,111,110,41,58,32,112,97,115,115,10,99,108,97,115,115,32,85,110,98,111,117,110,100,76,111,99,97,108,69,114,114,111,114,40,69,120,99,101,112,116,105,111,110,41,58,32,112,97,115,115,10,99,108,97,115,115,32,65,116,116,114,105,98,117,116,101,69,114,114,111,114,40,69,120,99,101,112,116,105,111,110,41,58,32,112,97,115,115,10,99,108,97,115,115,32,73,109,112,111,114,116,69,114,114,111,114,40,69,120,99,101,112,116,105,111,110,41,58,32,112,97,115,115,10,99,108,97,115,115,32,65,115,115,101,114,116,105,111,110,69,114,114,111,114,40,69,120,99,101,112,116,105,111,110,41,58,32,112,97,115,115,10,10,99,108,97,115,115,32,75,101,121,69,114,114,111,114,40,69,120,99,101,112,116,105,111,110,41,58,10,32,32,32,32,100,101,102,32,95,95,105,110,105,116,95,95,40,115,101,108,102,44,32,107,101,121,61,46,46,46,41,58,10,32,32,32,32,32,32,32,32,115,101,108,102,46,107,101,121,32,61,32,107,101,121,10,32,32,32,32,32,32,32,32,105,102,32,107,101,121,32,105,115,32,46,46,46,58,10,32,32,32,32,32,32,32,32,32,32,32,32,115,117,112,101,114,40,41,46,95,95,105,110,105,116,95,95,40,41,10,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,115,117,112,101,114,40,41,46,95,95,105,110,105,116,95,95,40,114,101,112,114,40,107,101,121,41,41,10,10,32,32,32,32,100,101,102,32,95,95,115,116,114,95,95,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,105,102,32,115,101,108,102,46,107,101,121,32,105,115,32,46,46,46,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,39,39,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,116,114,40,115,101,108,102,46,107,101,121,41,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,114,101,112,114,95,95,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,105,102,32,115,101,108,102,46,107,101,121,32,105,115,32,46,46,46,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,39,75,101,121,69,114,114,111,114,40,41,39,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,39,75,101,121,69,114,114,111,114,40,123,115,101,108,102,46,107,101,121,33,114,125,41,39,10,0}; - const char kPythonLibs_cmath[] = {105,109,112,111,114,116,32,109,97,116,104,10,10,99,108,97,115,115,32,99,111,109,112,108,101,120,58,10,32,32,32,32,100,101,102,32,95,95,105,110,105,116,95,95,40,115,101,108,102,44,32,114,101,97,108,44,32,105,109,97,103,61,48,41,58,10,32,32,32,32,32,32,32,32,115,101,108,102,46,95,114,101,97,108,32,61,32,102,108,111,97,116,40,114,101,97,108,41,10,32,32,32,32,32,32,32,32,115,101,108,102,46,95,105,109,97,103,32,61,32,102,108,111,97,116,40,105,109,97,103,41,10,10,32,32,32,32,64,112,114,111,112,101,114,116,121,10,32,32,32,32,100,101,102,32,114,101,97,108,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,95,114,101,97,108,10,32,32,32,32,10,32,32,32,32,64,112,114,111,112,101,114,116,121,10,32,32,32,32,100,101,102,32,105,109,97,103,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,95,105,109,97,103,10,10,32,32,32,32,100,101,102,32,99,111,110,106,117,103,97,116,101,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,111,109,112,108,101,120,40,115,101,108,102,46,114,101,97,108,44,32,45,115,101,108,102,46,105,109,97,103,41,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,114,101,112,114,95,95,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,115,32,61,32,91,39,40,39,44,32,115,116,114,40,115,101,108,102,46,114,101,97,108,41,93,10,32,32,32,32,32,32,32,32,115,46,97,112,112,101,110,100,40,39,45,39,32,105,102,32,115,101,108,102,46,105,109,97,103,32,60,32,48,32,101,108,115,101,32,39,43,39,41,10,32,32,32,32,32,32,32,32,115,46,97,112,112,101,110,100,40,115,116,114,40,97,98,115,40,115,101,108,102,46,105,109,97,103,41,41,41,10,32,32,32,32,32,32,32,32,115,46,97,112,112,101,110,100,40,39,106,41,39,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,39,39,46,106,111,105,110,40,115,41,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,101,113,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,99,111,109,112,108,101,120,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,114,101,97,108,32,61,61,32,111,116,104,101,114,46,114,101,97,108,32,97,110,100,32,115,101,108,102,46,105,109,97,103,32,61,61,32,111,116,104,101,114,46,105,109,97,103,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,110,32,40,105,110,116,44,32,102,108,111,97,116,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,114,101,97,108,32,61,61,32,111,116,104,101,114,32,97,110,100,32,115,101,108,102,46,105,109,97,103,32,61,61,32,48,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,97,100,100,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,99,111,109,112,108,101,120,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,111,109,112,108,101,120,40,115,101,108,102,46,114,101,97,108,32,43,32,111,116,104,101,114,46,114,101,97,108,44,32,115,101,108,102,46,105,109,97,103,32,43,32,111,116,104,101,114,46,105,109,97,103,41,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,110,32,40,105,110,116,44,32,102,108,111,97,116,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,111,109,112,108,101,120,40,115,101,108,102,46,114,101,97,108,32,43,32,111,116,104,101,114,44,32,115,101,108,102,46,105,109,97,103,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,114,97,100,100,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,95,95,97,100,100,95,95,40,111,116,104,101,114,41,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,115,117,98,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,99,111,109,112,108,101,120,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,111,109,112,108,101,120,40,115,101,108,102,46,114,101,97,108,32,45,32,111,116,104,101,114,46,114,101,97,108,44,32,115,101,108,102,46,105,109,97,103,32,45,32,111,116,104,101,114,46,105,109,97,103,41,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,110,32,40,105,110,116,44,32,102,108,111,97,116,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,111,109,112,108,101,120,40,115,101,108,102,46,114,101,97,108,32,45,32,111,116,104,101,114,44,32,115,101,108,102,46,105,109,97,103,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,114,115,117,98,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,99,111,109,112,108,101,120,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,111,109,112,108,101,120,40,111,116,104,101,114,46,114,101,97,108,32,45,32,115,101,108,102,46,114,101,97,108,44,32,111,116,104,101,114,46,105,109,97,103,32,45,32,115,101,108,102,46,105,109,97,103,41,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,110,32,40,105,110,116,44,32,102,108,111,97,116,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,111,109,112,108,101,120,40,111,116,104,101,114,32,45,32,115,101,108,102,46,114,101,97,108,44,32,45,115,101,108,102,46,105,109,97,103,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,109,117,108,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,99,111,109,112,108,101,120,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,111,109,112,108,101,120,40,115,101,108,102,46,114,101,97,108,32,42,32,111,116,104,101,114,46,114,101,97,108,32,45,32,115,101,108,102,46,105,109,97,103,32,42,32,111,116,104,101,114,46,105,109,97,103,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,114,101,97,108,32,42,32,111,116,104,101,114,46,105,109,97,103,32,43,32,115,101,108,102,46,105,109,97,103,32,42,32,111,116,104,101,114,46,114,101,97,108,41,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,110,32,40,105,110,116,44,32,102,108,111,97,116,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,111,109,112,108,101,120,40,115,101,108,102,46,114,101,97,108,32,42,32,111,116,104,101,114,44,32,115,101,108,102,46,105,109,97,103,32,42,32,111,116,104,101,114,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,114,109,117,108,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,95,95,109,117,108,95,95,40,111,116,104,101,114,41,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,116,114,117,101,100,105,118,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,99,111,109,112,108,101,120,58,10,32,32,32,32,32,32,32,32,32,32,32,32,100,101,110,111,109,105,110,97,116,111,114,32,61,32,111,116,104,101,114,46,114,101,97,108,32,42,42,32,50,32,43,32,111,116,104,101,114,46,105,109,97,103,32,42,42,32,50,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,97,108,95,112,97,114,116,32,61,32,40,115,101,108,102,46,114,101,97,108,32,42,32,111,116,104,101,114,46,114,101,97,108,32,43,32,115,101,108,102,46,105,109,97,103,32,42,32,111,116,104,101,114,46,105,109,97,103,41,32,47,32,100,101,110,111,109,105,110,97,116,111,114,10,32,32,32,32,32,32,32,32,32,32,32,32,105,109,97,103,95,112,97,114,116,32,61,32,40,115,101,108,102,46,105,109,97,103,32,42,32,111,116,104,101,114,46,114,101,97,108,32,45,32,115,101,108,102,46,114,101,97,108,32,42,32,111,116,104,101,114,46,105,109,97,103,41,32,47,32,100,101,110,111,109,105,110,97,116,111,114,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,111,109,112,108,101,120,40,114,101,97,108,95,112,97,114,116,44,32,105,109,97,103,95,112,97,114,116,41,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,110,32,40,105,110,116,44,32,102,108,111,97,116,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,111,109,112,108,101,120,40,115,101,108,102,46,114,101,97,108,32,47,32,111,116,104,101,114,44,32,115,101,108,102,46,105,109,97,103,32,47,32,111,116,104,101,114,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,112,111,119,95,95,40,115,101,108,102,44,32,111,116,104,101,114,58,32,105,110,116,32,124,32,102,108,111,97,116,41,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,110,32,40,105,110,116,44,32,102,108,111,97,116,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,111,109,112,108,101,120,40,115,101,108,102,46,95,95,97,98,115,95,95,40,41,32,42,42,32,111,116,104,101,114,32,42,32,109,97,116,104,46,99,111,115,40,111,116,104,101,114,32,42,32,112,104,97,115,101,40,115,101,108,102,41,41,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,95,95,97,98,115,95,95,40,41,32,42,42,32,111,116,104,101,114,32,42,32,109,97,116,104,46,115,105,110,40,111,116,104,101,114,32,42,32,112,104,97,115,101,40,115,101,108,102,41,41,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,97,98,115,95,95,40,115,101,108,102,41,32,45,62,32,102,108,111,97,116,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,109,97,116,104,46,115,113,114,116,40,115,101,108,102,46,114,101,97,108,32,42,42,32,50,32,43,32,115,101,108,102,46,105,109,97,103,32,42,42,32,50,41,10,10,32,32,32,32,100,101,102,32,95,95,110,101,103,95,95,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,111,109,112,108,101,120,40,45,115,101,108,102,46,114,101,97,108,44,32,45,115,101,108,102,46,105,109,97,103,41,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,104,97,115,104,95,95,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,104,97,115,104,40,40,115,101,108,102,46,114,101,97,108,44,32,115,101,108,102,46,105,109,97,103,41,41,10,10,10,35,32,67,111,110,118,101,114,115,105,111,110,115,32,116,111,32,97,110,100,32,102,114,111,109,32,112,111,108,97,114,32,99,111,111,114,100,105,110,97,116,101,115,10,10,100,101,102,32,112,104,97,115,101,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,109,97,116,104,46,97,116,97,110,50,40,122,46,105,109,97,103,44,32,122,46,114,101,97,108,41,10,10,100,101,102,32,112,111,108,97,114,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,122,46,95,95,97,98,115,95,95,40,41,44,32,112,104,97,115,101,40,122,41,10,10,100,101,102,32,114,101,99,116,40,114,58,32,102,108,111,97,116,44,32,112,104,105,58,32,102,108,111,97,116,41,58,10,32,32,32,32,114,101,116,117,114,110,32,114,32,42,32,109,97,116,104,46,99,111,115,40,112,104,105,41,32,43,32,114,32,42,32,109,97,116,104,46,115,105,110,40,112,104,105,41,32,42,32,49,106,10,10,35,32,80,111,119,101,114,32,97,110,100,32,108,111,103,97,114,105,116,104,109,105,99,32,102,117,110,99,116,105,111,110,115,10,10,100,101,102,32,101,120,112,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,109,97,116,104,46,101,120,112,40,122,46,114,101,97,108,41,32,42,32,114,101,99,116,40,49,44,32,122,46,105,109,97,103,41,10,10,100,101,102,32,108,111,103,40,122,58,32,99,111,109,112,108,101,120,44,32,98,97,115,101,61,50,46,55,49,56,50,56,49,56,50,56,52,53,57,48,52,53,41,58,10,32,32,32,32,114,101,116,117,114,110,32,109,97,116,104,46,108,111,103,40,122,46,95,95,97,98,115,95,95,40,41,44,32,98,97,115,101,41,32,43,32,112,104,97,115,101,40,122,41,32,42,32,49,106,10,10,100,101,102,32,108,111,103,49,48,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,108,111,103,40,122,44,32,49,48,41,10,10,100,101,102,32,115,113,114,116,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,122,32,42,42,32,48,46,53,10,10,35,32,84,114,105,103,111,110,111,109,101,116,114,105,99,32,102,117,110,99,116,105,111,110,115,10,10,100,101,102,32,97,99,111,115,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,45,49,106,32,42,32,108,111,103,40,122,32,43,32,115,113,114,116,40,122,32,42,32,122,32,45,32,49,41,41,10,10,100,101,102,32,97,115,105,110,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,45,49,106,32,42,32,108,111,103,40,49,106,32,42,32,122,32,43,32,115,113,114,116,40,49,32,45,32,122,32,42,32,122,41,41,10,10,100,101,102,32,97,116,97,110,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,49,106,32,47,32,50,32,42,32,108,111,103,40,40,49,32,45,32,49,106,32,42,32,122,41,32,47,32,40,49,32,43,32,49,106,32,42,32,122,41,41,10,10,100,101,102,32,99,111,115,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,40,101,120,112,40,122,41,32,43,32,101,120,112,40,45,122,41,41,32,47,32,50,10,10,100,101,102,32,115,105,110,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,40,101,120,112,40,122,41,32,45,32,101,120,112,40,45,122,41,41,32,47,32,40,50,32,42,32,49,106,41,10,10,100,101,102,32,116,97,110,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,115,105,110,40,122,41,32,47,32,99,111,115,40,122,41,10,10,35,32,72,121,112,101,114,98,111,108,105,99,32,102,117,110,99,116,105,111,110,115,10,10,100,101,102,32,97,99,111,115,104,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,108,111,103,40,122,32,43,32,115,113,114,116,40,122,32,42,32,122,32,45,32,49,41,41,10,10,100,101,102,32,97,115,105,110,104,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,108,111,103,40,122,32,43,32,115,113,114,116,40,122,32,42,32,122,32,43,32,49,41,41,10,10,100,101,102,32,97,116,97,110,104,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,49,32,47,32,50,32,42,32,108,111,103,40,40,49,32,43,32,122,41,32,47,32,40,49,32,45,32,122,41,41,10,10,100,101,102,32,99,111,115,104,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,40,101,120,112,40,122,41,32,43,32,101,120,112,40,45,122,41,41,32,47,32,50,10,10,100,101,102,32,115,105,110,104,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,40,101,120,112,40,122,41,32,45,32,101,120,112,40,45,122,41,41,32,47,32,50,10,10,100,101,102,32,116,97,110,104,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,115,105,110,104,40,122,41,32,47,32,99,111,115,104,40,122,41,10,10,35,32,67,108,97,115,115,105,102,105,99,97,116,105,111,110,32,102,117,110,99,116,105,111,110,115,10,10,100,101,102,32,105,115,102,105,110,105,116,101,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,109,97,116,104,46,105,115,102,105,110,105,116,101,40,122,46,114,101,97,108,41,32,97,110,100,32,109,97,116,104,46,105,115,102,105,110,105,116,101,40,122,46,105,109,97,103,41,10,10,100,101,102,32,105,115,105,110,102,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,109,97,116,104,46,105,115,105,110,102,40,122,46,114,101,97,108,41,32,111,114,32,109,97,116,104,46,105,115,105,110,102,40,122,46,105,109,97,103,41,10,10,100,101,102,32,105,115,110,97,110,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,109,97,116,104,46,105,115,110,97,110,40,122,46,114,101,97,108,41,32,111,114,32,109,97,116,104,46,105,115,110,97,110,40,122,46,105,109,97,103,41,10,10,100,101,102,32,105,115,99,108,111,115,101,40,97,58,32,99,111,109,112,108,101,120,44,32,98,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,109,97,116,104,46,105,115,99,108,111,115,101,40,97,46,114,101,97,108,44,32,98,46,114,101,97,108,41,32,97,110,100,32,109,97,116,104,46,105,115,99,108,111,115,101,40,97,46,105,109,97,103,44,32,98,46,105,109,97,103,41,10,10,35,32,67,111,110,115,116,97,110,116,115,10,10,112,105,32,61,32,109,97,116,104,46,112,105,10,101,32,61,32,109,97,116,104,46,101,10,116,97,117,32,61,32,50,32,42,32,112,105,10,105,110,102,32,61,32,109,97,116,104,46,105,110,102,10,105,110,102,106,32,61,32,99,111,109,112,108,101,120,40,48,44,32,105,110,102,41,10,110,97,110,32,61,32,109,97,116,104,46,110,97,110,10,110,97,110,106,32,61,32,99,111,109,112,108,101,120,40,48,44,32,110,97,110,41,10,0}; - const char kPythonLibs_collections[] = {100,101,102,32,67,111,117,110,116,101,114,40,105,116,101,114,97,98,108,101,41,58,10,32,32,32,32,97,32,61,32,123,125,10,32,32,32,32,102,111,114,32,120,32,105,110,32,105,116,101,114,97,98,108,101,58,10,32,32,32,32,32,32,32,32,105,102,32,120,32,105,110,32,97,58,10,32,32,32,32,32,32,32,32,32,32,32,32,97,91,120,93,32,43,61,32,49,10,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,97,91,120,93,32,61,32,49,10,32,32,32,32,114,101,116,117,114,110,32,97,10,10,102,114,111,109,32,95,95,98,117,105,108,116,105,110,115,32,105,109,112,111,114,116,32,95,101,110,97,98,108,101,95,105,110,115,116,97,110,99,101,95,100,105,99,116,10,10,99,108,97,115,115,32,100,101,102,97,117,108,116,100,105,99,116,40,100,105,99,116,41,58,10,32,32,32,32,100,101,102,32,95,95,105,110,105,116,95,95,40,115,101,108,102,44,32,100,101,102,97,117,108,116,95,102,97,99,116,111,114,121,44,32,42,97,114,103,115,41,58,10,32,32,32,32,32,32,32,32,115,117,112,101,114,40,41,46,95,95,105,110,105,116,95,95,40,42,97,114,103,115,41,10,32,32,32,32,32,32,32,32,95,101,110,97,98,108,101,95,105,110,115,116,97,110,99,101,95,100,105,99,116,40,115,101,108,102,41,10,32,32,32,32,32,32,32,32,115,101,108,102,46,100,101,102,97,117,108,116,95,102,97,99,116,111,114,121,32,61,32,100,101,102,97,117,108,116,95,102,97,99,116,111,114,121,10,10,32,32,32,32,100,101,102,32,95,95,109,105,115,115,105,110,103,95,95,40,115,101,108,102,44,32,107,101,121,41,58,10,32,32,32,32,32,32,32,32,115,101,108,102,91,107,101,121,93,32,61,32,115,101,108,102,46,100,101,102,97,117,108,116,95,102,97,99,116,111,114,121,40,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,91,107,101,121,93,10,10,32,32,32,32,100,101,102,32,95,95,114,101,112,114,95,95,40,115,101,108,102,41,32,45,62,32,115,116,114,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,34,100,101,102,97,117,108,116,100,105,99,116,40,123,115,101,108,102,46,100,101,102,97,117,108,116,95,102,97,99,116,111,114,121,125,44,32,123,115,117,112,101,114,40,41,46,95,95,114,101,112,114,95,95,40,41,125,41,34,10,10,32,32,32,32,100,101,102,32,99,111,112,121,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,100,101,102,97,117,108,116,100,105,99,116,40,115,101,108,102,46,100,101,102,97,117,108,116,95,102,97,99,116,111,114,121,44,32,115,101,108,102,41,10,10,0}; - const char kPythonLibs_colorsys[] = {34,34,34,67,111,110,118,101,114,115,105,111,110,32,102,117,110,99,116,105,111,110,115,32,98,101,116,119,101,101,110,32,82,71,66,32,97,110,100,32,111,116,104,101,114,32,99,111,108,111,114,32,115,121,115,116,101,109,115,46,10,10,84,104,105,115,32,109,111,100,117,108,101,115,32,112,114,111,118,105,100,101,115,32,116,119,111,32,102,117,110,99,116,105,111,110,115,32,102,111,114,32,101,97,99,104,32,99,111,108,111,114,32,115,121,115,116,101,109,32,65,66,67,58,10,10,32,32,114,103,98,95,116,111,95,97,98,99,40,114,44,32,103,44,32,98,41,32,45,45,62,32,97,44,32,98,44,32,99,10,32,32,97,98,99,95,116,111,95,114,103,98,40,97,44,32,98,44,32,99,41,32,45,45,62,32,114,44,32,103,44,32,98,10,10,65,108,108,32,105,110,112,117,116,115,32,97,110,100,32,111,117,116,112,117,116,115,32,97,114,101,32,116,114,105,112,108,101,115,32,111,102,32,102,108,111,97,116,115,32,105,110,32,116,104,101,32,114,97,110,103,101,32,91,48,46,48,46,46,46,49,46,48,93,10,40,119,105,116,104,32,116,104,101,32,101,120,99,101,112,116,105,111,110,32,111,102,32,73,32,97,110,100,32,81,44,32,119,104,105,99,104,32,99,111,118,101,114,115,32,97,32,115,108,105,103,104,116,108,121,32,108,97,114,103,101,114,32,114,97,110,103,101,41,46,10,73,110,112,117,116,115,32,111,117,116,115,105,100,101,32,116,104,101,32,118,97,108,105,100,32,114,97,110,103,101,32,109,97,121,32,99,97,117,115,101,32,101,120,99,101,112,116,105,111,110,115,32,111,114,32,105,110,118,97,108,105,100,32,111,117,116,112,117,116,115,46,10,10,83,117,112,112,111,114,116,101,100,32,99,111,108,111,114,32,115,121,115,116,101,109,115,58,10,82,71,66,58,32,82,101,100,44,32,71,114,101,101,110,44,32,66,108,117,101,32,99,111,109,112,111,110,101,110,116,115,10,89,73,81,58,32,76,117,109,105,110,97,110,99,101,44,32,67,104,114,111,109,105,110,97,110,99,101,32,40,117,115,101,100,32,98,121,32,99,111,109,112,111,115,105,116,101,32,118,105,100,101,111,32,115,105,103,110,97,108,115,41,10,72,76,83,58,32,72,117,101,44,32,76,117,109,105,110,97,110,99,101,44,32,83,97,116,117,114,97,116,105,111,110,10,72,83,86,58,32,72,117,101,44,32,83,97,116,117,114,97,116,105,111,110,44,32,86,97,108,117,101,10,34,34,34,10,10,35,32,82,101,102,101,114,101,110,99,101,115,58,10,35,32,104,116,116,112,58,47,47,101,110,46,119,105,107,105,112,101,100,105,97,46,111,114,103,47,119,105,107,105,47,89,73,81,10,35,32,104,116,116,112,58,47,47,101,110,46,119,105,107,105,112,101,100,105,97,46,111,114,103,47,119,105,107,105,47,72,76,83,95,99,111,108,111,114,95,115,112,97,99,101,10,35,32,104,116,116,112,58,47,47,101,110,46,119,105,107,105,112,101,100,105,97,46,111,114,103,47,119,105,107,105,47,72,83,86,95,99,111,108,111,114,95,115,112,97,99,101,10,10,95,95,97,108,108,95,95,32,61,32,91,34,114,103,98,95,116,111,95,121,105,113,34,44,34,121,105,113,95,116,111,95,114,103,98,34,44,34,114,103,98,95,116,111,95,104,108,115,34,44,34,104,108,115,95,116,111,95,114,103,98,34,44,10,32,32,32,32,32,32,32,32,32,32,32,34,114,103,98,95,116,111,95,104,115,118,34,44,34,104,115,118,95,116,111,95,114,103,98,34,93,10,10,35,32,83,111,109,101,32,102,108,111,97,116,105,110,103,32,112,111,105,110,116,32,99,111,110,115,116,97,110,116,115,10,10,79,78,69,95,84,72,73,82,68,32,61,32,49,46,48,47,51,46,48,10,79,78,69,95,83,73,88,84,72,32,61,32,49,46,48,47,54,46,48,10,84,87,79,95,84,72,73,82,68,32,61,32,50,46,48,47,51,46,48,10,10,35,32,89,73,81,58,32,117,115,101,100,32,98,121,32,99,111,109,112,111,115,105,116,101,32,118,105,100,101,111,32,115,105,103,110,97,108,115,32,40,108,105,110,101,97,114,32,99,111,109,98,105,110,97,116,105,111,110,115,32,111,102,32,82,71,66,41,10,35,32,89,58,32,112,101,114,99,101,105,118,101,100,32,103,114,101,121,32,108,101,118,101,108,32,40,48,46,48,32,61,61,32,98,108,97,99,107,44,32,49,46,48,32,61,61,32,119,104,105,116,101,41,10,35,32,73,44,32,81,58,32,99,111,108,111,114,32,99,111,109,112,111,110,101,110,116,115,10,35,10,35,32,84,104,101,114,101,32,97,114,101,32,97,32,103,114,101,97,116,32,109,97,110,121,32,118,101,114,115,105,111,110,115,32,111,102,32,116,104,101,32,99,111,110,115,116,97,110,116,115,32,117,115,101,100,32,105,110,32,116,104,101,115,101,32,102,111,114,109,117,108,97,101,46,10,35,32,84,104,101,32,111,110,101,115,32,105,110,32,116,104,105,115,32,108,105,98,114,97,114,121,32,117,115,101,115,32,99,111,110,115,116,97,110,116,115,32,102,114,111,109,32,116,104,101,32,70,67,67,32,118,101,114,115,105,111,110,32,111,102,32,78,84,83,67,46,10,10,100,101,102,32,114,103,98,95,116,111,95,121,105,113,40,114,44,32,103,44,32,98,41,58,10,32,32,32,32,121,32,61,32,48,46,51,48,42,114,32,43,32,48,46,53,57,42,103,32,43,32,48,46,49,49,42,98,10,32,32,32,32,105,32,61,32,48,46,55,52,42,40,114,45,121,41,32,45,32,48,46,50,55,42,40,98,45,121,41,10,32,32,32,32,113,32,61,32,48,46,52,56,42,40,114,45,121,41,32,43,32,48,46,52,49,42,40,98,45,121,41,10,32,32,32,32,114,101,116,117,114,110,32,40,121,44,32,105,44,32,113,41,10,10,100,101,102,32,121,105,113,95,116,111,95,114,103,98,40,121,44,32,105,44,32,113,41,58,10,32,32,32,32,35,32,114,32,61,32,121,32,43,32,40,48,46,50,55,42,113,32,43,32,48,46,52,49,42,105,41,32,47,32,40,48,46,55,52,42,48,46,52,49,32,43,32,48,46,50,55,42,48,46,52,56,41,10,32,32,32,32,35,32,98,32,61,32,121,32,43,32,40,48,46,55,52,42,113,32,45,32,48,46,52,56,42,105,41,32,47,32,40,48,46,55,52,42,48,46,52,49,32,43,32,48,46,50,55,42,48,46,52,56,41,10,32,32,32,32,35,32,103,32,61,32,121,32,45,32,40,48,46,51,48,42,40,114,45,121,41,32,43,32,48,46,49,49,42,40,98,45,121,41,41,32,47,32,48,46,53,57,10,10,32,32,32,32,114,32,61,32,121,32,43,32,48,46,57,52,54,56,56,50,50,49,55,48,57,48,48,54,57,51,42,105,32,43,32,48,46,54,50,51,53,53,54,53,56,49,57,56,54,49,52,51,51,42,113,10,32,32,32,32,103,32,61,32,121,32,45,32,48,46,50,55,52,55,56,55,54,52,54,50,57,56,57,55,56,51,52,42,105,32,45,32,48,46,54,51,53,54,57,49,48,55,57,49,56,55,51,56,48,49,42,113,10,32,32,32,32,98,32,61,32,121,32,45,32,49,46,49,48,56,53,52,53,48,51,52,54,52,50,48,51,50,50,42,105,32,43,32,49,46,55,48,57,48,48,54,57,50,56,52,48,54,52,54,54,54,42,113,10,10,32,32,32,32,105,102,32,114,32,60,32,48,46,48,58,10,32,32,32,32,32,32,32,32,114,32,61,32,48,46,48,10,32,32,32,32,105,102,32,103,32,60,32,48,46,48,58,10,32,32,32,32,32,32,32,32,103,32,61,32,48,46,48,10,32,32,32,32,105,102,32,98,32,60,32,48,46,48,58,10,32,32,32,32,32,32,32,32,98,32,61,32,48,46,48,10,32,32,32,32,105,102,32,114,32,62,32,49,46,48,58,10,32,32,32,32,32,32,32,32,114,32,61,32,49,46,48,10,32,32,32,32,105,102,32,103,32,62,32,49,46,48,58,10,32,32,32,32,32,32,32,32,103,32,61,32,49,46,48,10,32,32,32,32,105,102,32,98,32,62,32,49,46,48,58,10,32,32,32,32,32,32,32,32,98,32,61,32,49,46,48,10,32,32,32,32,114,101,116,117,114,110,32,40,114,44,32,103,44,32,98,41,10,10,10,35,32,72,76,83,58,32,72,117,101,44,32,76,117,109,105,110,97,110,99,101,44,32,83,97,116,117,114,97,116,105,111,110,10,35,32,72,58,32,112,111,115,105,116,105,111,110,32,105,110,32,116,104,101,32,115,112,101,99,116,114,117,109,10,35,32,76,58,32,99,111,108,111,114,32,108,105,103,104,116,110,101,115,115,10,35,32,83,58,32,99,111,108,111,114,32,115,97,116,117,114,97,116,105,111,110,10,10,100,101,102,32,114,103,98,95,116,111,95,104,108,115,40,114,44,32,103,44,32,98,41,58,10,32,32,32,32,109,97,120,99,32,61,32,109,97,120,40,114,44,32,103,44,32,98,41,10,32,32,32,32,109,105,110,99,32,61,32,109,105,110,40,114,44,32,103,44,32,98,41,10,32,32,32,32,115,117,109,99,32,61,32,40,109,97,120,99,43,109,105,110,99,41,10,32,32,32,32,114,97,110,103,101,99,32,61,32,40,109,97,120,99,45,109,105,110,99,41,10,32,32,32,32,108,32,61,32,115,117,109,99,47,50,46,48,10,32,32,32,32,105,102,32,109,105,110,99,32,61,61,32,109,97,120,99,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,48,46,48,44,32,108,44,32,48,46,48,10,32,32,32,32,105,102,32,108,32,60,61,32,48,46,53,58,10,32,32,32,32,32,32,32,32,115,32,61,32,114,97,110,103,101,99,32,47,32,115,117,109,99,10,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,115,32,61,32,114,97,110,103,101,99,32,47,32,40,50,46,48,45,109,97,120,99,45,109,105,110,99,41,32,32,35,32,78,111,116,32,97,108,119,97,121,115,32,50,46,48,45,115,117,109,99,58,32,103,104,45,49,48,54,52,57,56,46,10,32,32,32,32,114,99,32,61,32,40,109,97,120,99,45,114,41,32,47,32,114,97,110,103,101,99,10,32,32,32,32,103,99,32,61,32,40,109,97,120,99,45,103,41,32,47,32,114,97,110,103,101,99,10,32,32,32,32,98,99,32,61,32,40,109,97,120,99,45,98,41,32,47,32,114,97,110,103,101,99,10,32,32,32,32,105,102,32,114,32,61,61,32,109,97,120,99,58,10,32,32,32,32,32,32,32,32,104,32,61,32,98,99,45,103,99,10,32,32,32,32,101,108,105,102,32,103,32,61,61,32,109,97,120,99,58,10,32,32,32,32,32,32,32,32,104,32,61,32,50,46,48,43,114,99,45,98,99,10,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,104,32,61,32,52,46,48,43,103,99,45,114,99,10,32,32,32,32,35,32,104,32,61,32,40,104,47,54,46,48,41,32,37,32,49,46,48,10,32,32,32,32,104,32,61,32,104,32,47,32,54,46,48,10,32,32,32,32,104,32,61,32,104,32,45,32,105,110,116,40,104,41,10,32,32,32,32,114,101,116,117,114,110,32,104,44,32,108,44,32,115,10,10,100,101,102,32,104,108,115,95,116,111,95,114,103,98,40,104,44,32,108,44,32,115,41,58,10,32,32,32,32,105,102,32,115,32,61,61,32,48,46,48,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,44,32,108,44,32,108,10,32,32,32,32,105,102,32,108,32,60,61,32,48,46,53,58,10,32,32,32,32,32,32,32,32,109,50,32,61,32,108,32,42,32,40,49,46,48,43,115,41,10,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,109,50,32,61,32,108,43,115,45,40,108,42,115,41,10,32,32,32,32,109,49,32,61,32,50,46,48,42,108,32,45,32,109,50,10,32,32,32,32,114,101,116,117,114,110,32,40,95,118,40,109,49,44,32,109,50,44,32,104,43,79,78,69,95,84,72,73,82,68,41,44,32,95,118,40,109,49,44,32,109,50,44,32,104,41,44,32,95,118,40,109,49,44,32,109,50,44,32,104,45,79,78,69,95,84,72,73,82,68,41,41,10,10,100,101,102,32,95,118,40,109,49,44,32,109,50,44,32,104,117,101,41,58,10,32,32,32,32,35,32,104,117,101,32,61,32,104,117,101,32,37,32,49,46,48,10,32,32,32,32,104,117,101,32,61,32,104,117,101,32,45,32,105,110,116,40,104,117,101,41,10,32,32,32,32,105,102,32,104,117,101,32,60,32,79,78,69,95,83,73,88,84,72,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,109,49,32,43,32,40,109,50,45,109,49,41,42,104,117,101,42,54,46,48,10,32,32,32,32,105,102,32,104,117,101,32,60,32,48,46,53,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,109,50,10,32,32,32,32,105,102,32,104,117,101,32,60,32,84,87,79,95,84,72,73,82,68,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,109,49,32,43,32,40,109,50,45,109,49,41,42,40,84,87,79,95,84,72,73,82,68,45,104,117,101,41,42,54,46,48,10,32,32,32,32,114,101,116,117,114,110,32,109,49,10,10,10,35,32,72,83,86,58,32,72,117,101,44,32,83,97,116,117,114,97,116,105,111,110,44,32,86,97,108,117,101,10,35,32,72,58,32,112,111,115,105,116,105,111,110,32,105,110,32,116,104,101,32,115,112,101,99,116,114,117,109,10,35,32,83,58,32,99,111,108,111,114,32,115,97,116,117,114,97,116,105,111,110,32,40,34,112,117,114,105,116,121,34,41,10,35,32,86,58,32,99,111,108,111,114,32,98,114,105,103,104,116,110,101,115,115,10,10,100,101,102,32,114,103,98,95,116,111,95,104,115,118,40,114,44,32,103,44,32,98,41,58,10,32,32,32,32,109,97,120,99,32,61,32,109,97,120,40,114,44,32,103,44,32,98,41,10,32,32,32,32,109,105,110,99,32,61,32,109,105,110,40,114,44,32,103,44,32,98,41,10,32,32,32,32,114,97,110,103,101,99,32,61,32,40,109,97,120,99,45,109,105,110,99,41,10,32,32,32,32,118,32,61,32,109,97,120,99,10,32,32,32,32,105,102,32,109,105,110,99,32,61,61,32,109,97,120,99,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,48,46,48,44,32,48,46,48,44,32,118,10,32,32,32,32,115,32,61,32,114,97,110,103,101,99,32,47,32,109,97,120,99,10,32,32,32,32,114,99,32,61,32,40,109,97,120,99,45,114,41,32,47,32,114,97,110,103,101,99,10,32,32,32,32,103,99,32,61,32,40,109,97,120,99,45,103,41,32,47,32,114,97,110,103,101,99,10,32,32,32,32,98,99,32,61,32,40,109,97,120,99,45,98,41,32,47,32,114,97,110,103,101,99,10,32,32,32,32,105,102,32,114,32,61,61,32,109,97,120,99,58,10,32,32,32,32,32,32,32,32,104,32,61,32,98,99,45,103,99,10,32,32,32,32,101,108,105,102,32,103,32,61,61,32,109,97,120,99,58,10,32,32,32,32,32,32,32,32,104,32,61,32,50,46,48,43,114,99,45,98,99,10,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,104,32,61,32,52,46,48,43,103,99,45,114,99,10,32,32,32,32,35,32,104,32,61,32,40,104,47,54,46,48,41,32,37,32,49,46,48,10,32,32,32,32,104,32,61,32,104,32,47,32,54,46,48,10,32,32,32,32,104,32,61,32,104,32,45,32,105,110,116,40,104,41,10,32,32,32,32,114,101,116,117,114,110,32,104,44,32,115,44,32,118,10,10,100,101,102,32,104,115,118,95,116,111,95,114,103,98,40,104,44,32,115,44,32,118,41,58,10,32,32,32,32,105,102,32,115,32,61,61,32,48,46,48,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,118,44,32,118,44,32,118,10,32,32,32,32,105,32,61,32,105,110,116,40,104,42,54,46,48,41,32,35,32,88,88,88,32,97,115,115,117,109,101,32,105,110,116,40,41,32,116,114,117,110,99,97,116,101,115,33,10,32,32,32,32,102,32,61,32,40,104,42,54,46,48,41,32,45,32,105,10,32,32,32,32,112,32,61,32,118,42,40,49,46,48,32,45,32,115,41,10,32,32,32,32,113,32,61,32,118,42,40,49,46,48,32,45,32,115,42,102,41,10,32,32,32,32,116,32,61,32,118,42,40,49,46,48,32,45,32,115,42,40,49,46,48,45,102,41,41,10,32,32,32,32,105,32,61,32,105,37,54,10,32,32,32,32,105,102,32,105,32,61,61,32,48,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,118,44,32,116,44,32,112,10,32,32,32,32,105,102,32,105,32,61,61,32,49,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,113,44,32,118,44,32,112,10,32,32,32,32,105,102,32,105,32,61,61,32,50,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,112,44,32,118,44,32,116,10,32,32,32,32,105,102,32,105,32,61,61,32,51,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,112,44,32,113,44,32,118,10,32,32,32,32,105,102,32,105,32,61,61,32,52,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,44,32,112,44,32,118,10,32,32,32,32,105,102,32,105,32,61,61,32,53,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,118,44,32,112,44,32,113,10,32,32,32,32,35,32,67,97,110,110,111,116,32,103,101,116,32,104,101,114,101,0}; - const char kPythonLibs_datetime[] = {102,114,111,109,32,116,105,109,101,32,105,109,112,111,114,116,32,108,111,99,97,108,116,105,109,101,10,10,99,108,97,115,115,32,116,105,109,101,100,101,108,116,97,58,10,32,32,32,32,100,101,102,32,95,95,105,110,105,116,95,95,40,115,101,108,102,44,32,100,97,121,115,61,48,44,32,115,101,99,111,110,100,115,61,48,41,58,10,32,32,32,32,32,32,32,32,115,101,108,102,46,100,97,121,115,32,61,32,100,97,121,115,10,32,32,32,32,32,32,32,32,115,101,108,102,46,115,101,99,111,110,100,115,32,61,32,115,101,99,111,110,100,115,10,10,32,32,32,32,100,101,102,32,95,95,114,101,112,114,95,95,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,34,100,97,116,101,116,105,109,101,46,116,105,109,101,100,101,108,116,97,40,100,97,121,115,61,123,115,101,108,102,46,100,97,121,115,125,44,32,115,101,99,111,110,100,115,61,123,115,101,108,102,46,115,101,99,111,110,100,115,125,41,34,10,10,32,32,32,32,100,101,102,32,95,95,101,113,95,95,40,115,101,108,102,44,32,111,116,104,101,114,58,32,39,116,105,109,101,100,101,108,116,97,39,41,32,45,62,32,98,111,111,108,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,116,105,109,101,100,101,108,116,97,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,40,115,101,108,102,46,100,97,121,115,44,32,115,101,108,102,46,115,101,99,111,110,100,115,41,32,61,61,32,40,111,116,104,101,114,46,100,97,121,115,44,32,111,116,104,101,114,46,115,101,99,111,110,100,115,41,10,10,32,32,32,32,100,101,102,32,95,95,108,116,95,95,40,115,101,108,102,44,32,111,116,104,101,114,58,32,39,116,105,109,101,100,101,108,116,97,39,41,32,45,62,32,98,111,111,108,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,116,105,109,101,100,101,108,116,97,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,40,115,101,108,102,46,100,97,121,115,44,32,115,101,108,102,46,115,101,99,111,110,100,115,41,32,60,32,40,111,116,104,101,114,46,100,97,121,115,44,32,111,116,104,101,114,46,115,101,99,111,110,100,115,41,10,10,32,32,32,32,100,101,102,32,95,95,108,101,95,95,40,115,101,108,102,44,32,111,116,104,101,114,58,32,39,116,105,109,101,100,101,108,116,97,39,41,32,45,62,32,98,111,111,108,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,116,105,109,101,100,101,108,116,97,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,40,115,101,108,102,46,100,97,121,115,44,32,115,101,108,102,46,115,101,99,111,110,100,115,41,32,60,61,32,40,111,116,104,101,114,46,100,97,121,115,44,32,111,116,104,101,114,46,115,101,99,111,110,100,115,41,10,10,32,32,32,32,100,101,102,32,95,95,103,116,95,95,40,115,101,108,102,44,32,111,116,104,101,114,58,32,39,116,105,109,101,100,101,108,116,97,39,41,32,45,62,32,98,111,111,108,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,116,105,109,101,100,101,108,116,97,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,40,115,101,108,102,46,100,97,121,115,44,32,115,101,108,102,46,115,101,99,111,110,100,115,41,32,62,32,40,111,116,104,101,114,46,100,97,121,115,44,32,111,116,104,101,114,46,115,101,99,111,110,100,115,41,10,10,32,32,32,32,100,101,102,32,95,95,103,101,95,95,40,115,101,108,102,44,32,111,116,104,101,114,58,32,39,116,105,109,101,100,101,108,116,97,39,41,32,45,62,32,98,111,111,108,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,116,105,109,101,100,101,108,116,97,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,40,115,101,108,102,46,100,97,121,115,44,32,115,101,108,102,46,115,101,99,111,110,100,115,41,32,62,61,32,40,111,116,104,101,114,46,100,97,121,115,44,32,111,116,104,101,114,46,115,101,99,111,110,100,115,41,10,10,10,99,108,97,115,115,32,100,97,116,101,58,10,32,32,32,32,100,101,102,32,95,95,105,110,105,116,95,95,40,115,101,108,102,44,32,121,101,97,114,58,32,105,110,116,44,32,109,111,110,116,104,58,32,105,110,116,44,32,100,97,121,58,32,105,110,116,41,58,10,32,32,32,32,32,32,32,32,115,101,108,102,46,121,101,97,114,32,61,32,121,101,97,114,10,32,32,32,32,32,32,32,32,115,101,108,102,46,109,111,110,116,104,32,61,32,109,111,110,116,104,10,32,32,32,32,32,32,32,32,115,101,108,102,46,100,97,121,32,61,32,100,97,121,10,10,32,32,32,32,64,115,116,97,116,105,99,109,101,116,104,111,100,10,32,32,32,32,100,101,102,32,116,111,100,97,121,40,41,58,10,32,32,32,32,32,32,32,32,116,32,61,32,108,111,99,97,108,116,105,109,101,40,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,100,97,116,101,40,116,46,116,109,95,121,101,97,114,44,32,116,46,116,109,95,109,111,110,44,32,116,46,116,109,95,109,100,97,121,41,10,10,32,32,32,32,100,101,102,32,95,95,101,113,95,95,40,115,101,108,102,44,32,111,116,104,101,114,58,32,39,100,97,116,101,39,41,32,45,62,32,98,111,111,108,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,100,97,116,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,40,115,101,108,102,46,121,101,97,114,44,32,115,101,108,102,46,109,111,110,116,104,44,32,115,101,108,102,46,100,97,121,41,32,61,61,32,40,111,116,104,101,114,46,121,101,97,114,44,32,111,116,104,101,114,46,109,111,110,116,104,44,32,111,116,104,101,114,46,100,97,121,41,10,10,32,32,32,32,100,101,102,32,95,95,108,116,95,95,40,115,101,108,102,44,32,111,116,104,101,114,58,32,39,100,97,116,101,39,41,32,45,62,32,98,111,111,108,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,100,97,116,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,40,115,101,108,102,46,121,101,97,114,44,32,115,101,108,102,46,109,111,110,116,104,44,32,115,101,108,102,46,100,97,121,41,32,60,32,40,111,116,104,101,114,46,121,101,97,114,44,32,111,116,104,101,114,46,109,111,110,116,104,44,32,111,116,104,101,114,46,100,97,121,41,10,10,32,32,32,32,100,101,102,32,95,95,108,101,95,95,40,115,101,108,102,44,32,111,116,104,101,114,58,32,39,100,97,116,101,39,41,32,45,62,32,98,111,111,108,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,100,97,116,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,40,115,101,108,102,46,121,101,97,114,44,32,115,101,108,102,46,109,111,110,116,104,44,32,115,101,108,102,46,100,97,121,41,32,60,61,32,40,111,116,104,101,114,46,121,101,97,114,44,32,111,116,104,101,114,46,109,111,110,116,104,44,32,111,116,104,101,114,46,100,97,121,41,10,10,32,32,32,32,100,101,102,32,95,95,103,116,95,95,40,115,101,108,102,44,32,111,116,104,101,114,58,32,39,100,97,116,101,39,41,32,45,62,32,98,111,111,108,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,100,97,116,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,40,115,101,108,102,46,121,101,97,114,44,32,115,101,108,102,46,109,111,110,116,104,44,32,115,101,108,102,46,100,97,121,41,32,62,32,40,111,116,104,101,114,46,121,101,97,114,44,32,111,116,104,101,114,46,109,111,110,116,104,44,32,111,116,104,101,114,46,100,97,121,41,10,10,32,32,32,32,100,101,102,32,95,95,103,101,95,95,40,115,101,108,102,44,32,111,116,104,101,114,58,32,39,100,97,116,101,39,41,32,45,62,32,98,111,111,108,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,100,97,116,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,40,115,101,108,102,46,121,101,97,114,44,32,115,101,108,102,46,109,111,110,116,104,44,32,115,101,108,102,46,100,97,121,41,32,62,61,32,40,111,116,104,101,114,46,121,101,97,114,44,32,111,116,104,101,114,46,109,111,110,116,104,44,32,111,116,104,101,114,46,100,97,121,41,10,10,32,32,32,32,100,101,102,32,95,95,115,116,114,95,95,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,34,123,115,101,108,102,46,121,101,97,114,125,45,123,115,101,108,102,46,109,111,110,116,104,58,48,50,125,45,123,115,101,108,102,46,100,97,121,58,48,50,125,34,10,10,32,32,32,32,100,101,102,32,95,95,114,101,112,114,95,95,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,34,100,97,116,101,116,105,109,101,46,100,97,116,101,40,123,115,101,108,102,46,121,101,97,114,125,44,32,123,115,101,108,102,46,109,111,110,116,104,125,44,32,123,115,101,108,102,46,100,97,121,125,41,34,10,10,10,99,108,97,115,115,32,100,97,116,101,116,105,109,101,40,100,97,116,101,41,58,10,32,32,32,32,100,101,102,32,95,95,105,110,105,116,95,95,40,115,101,108,102,44,32,121,101,97,114,58,32,105,110,116,44,32,109,111,110,116,104,58,32,105,110,116,44,32,100,97,121,58,32,105,110,116,44,32,104,111,117,114,58,32,105,110,116,44,32,109,105,110,117,116,101,58,32,105,110,116,44,32,115,101,99,111,110,100,58,32,105,110,116,41,58,10,32,32,32,32,32,32,32,32,115,117,112,101,114,40,41,46,95,95,105,110,105,116,95,95,40,121,101,97,114,44,32,109,111,110,116,104,44,32,100,97,121,41,10,32,32,32,32,32,32,32,32,35,32,86,97,108,105,100,97,116,101,32,97,110,100,32,115,101,116,32,104,111,117,114,44,32,109,105,110,117,116,101,44,32,97,110,100,32,115,101,99,111,110,100,10,32,32,32,32,32,32,32,32,105,102,32,110,111,116,32,48,32,60,61,32,104,111,117,114,32,60,61,32,50,51,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,97,105,115,101,32,86,97,108,117,101,69,114,114,111,114,40,34,72,111,117,114,32,109,117,115,116,32,98,101,32,98,101,116,119,101,101,110,32,48,32,97,110,100,32,50,51,34,41,10,32,32,32,32,32,32,32,32,115,101,108,102,46,104,111,117,114,32,61,32,104,111,117,114,10,32,32,32,32,32,32,32,32,105,102,32,110,111,116,32,48,32,60,61,32,109,105,110,117,116,101,32,60,61,32,53,57,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,97,105,115,101,32,86,97,108,117,101,69,114,114,111,114,40,34,77,105,110,117,116,101,32,109,117,115,116,32,98,101,32,98,101,116,119,101,101,110,32,48,32,97,110,100,32,53,57,34,41,10,32,32,32,32,32,32,32,32,115,101,108,102,46,109,105,110,117,116,101,32,61,32,109,105,110,117,116,101,10,32,32,32,32,32,32,32,32,105,102,32,110,111,116,32,48,32,60,61,32,115,101,99,111,110,100,32,60,61,32,53,57,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,97,105,115,101,32,86,97,108,117,101,69,114,114,111,114,40,34,83,101,99,111,110,100,32,109,117,115,116,32,98,101,32,98,101,116,119,101,101,110,32,48,32,97,110,100,32,53,57,34,41,10,32,32,32,32,32,32,32,32,115,101,108,102,46,115,101,99,111,110,100,32,61,32,115,101,99,111,110,100,10,10,32,32,32,32,100,101,102,32,100,97,116,101,40,115,101,108,102,41,32,45,62,32,100,97,116,101,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,100,97,116,101,40,115,101,108,102,46,121,101,97,114,44,32,115,101,108,102,46,109,111,110,116,104,44,32,115,101,108,102,46,100,97,121,41,10,10,32,32,32,32,64,115,116,97,116,105,99,109,101,116,104,111,100,10,32,32,32,32,100,101,102,32,110,111,119,40,41,58,10,32,32,32,32,32,32,32,32,116,32,61,32,108,111,99,97,108,116,105,109,101,40,41,10,32,32,32,32,32,32,32,32,116,109,95,115,101,99,32,61,32,116,46,116,109,95,115,101,99,10,32,32,32,32,32,32,32,32,105,102,32,116,109,95,115,101,99,32,61,61,32,54,48,58,10,32,32,32,32,32,32,32,32,32,32,32,32,116,109,95,115,101,99,32,61,32,53,57,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,100,97,116,101,116,105,109,101,40,116,46,116,109,95,121,101,97,114,44,32,116,46,116,109,95,109,111,110,44,32,116,46,116,109,95,109,100,97,121,44,32,116,46,116,109,95,104,111,117,114,44,32,116,46,116,109,95,109,105,110,44,32,116,109,95,115,101,99,41,10,10,32,32,32,32,100,101,102,32,95,95,115,116,114,95,95,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,34,123,115,101,108,102,46,121,101,97,114,125,45,123,115,101,108,102,46,109,111,110,116,104,58,48,50,125,45,123,115,101,108,102,46,100,97,121,58,48,50,125,32,123,115,101,108,102,46,104,111,117,114,58,48,50,125,58,123,115,101,108,102,46,109,105,110,117,116,101,58,48,50,125,58,123,115,101,108,102,46,115,101,99,111,110,100,58,48,50,125,34,10,10,32,32,32,32,100,101,102,32,95,95,114,101,112,114,95,95,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,34,100,97,116,101,116,105,109,101,46,100,97,116,101,116,105,109,101,40,123,115,101,108,102,46,121,101,97,114,125,44,32,123,115,101,108,102,46,109,111,110,116,104,125,44,32,123,115,101,108,102,46,100,97,121,125,44,32,123,115,101,108,102,46,104,111,117,114,125,44,32,123,115,101,108,102,46,109,105,110,117,116,101,125,44,32,123,115,101,108,102,46,115,101,99,111,110,100,125,41,34,10,10,32,32,32,32,100,101,102,32,95,95,101,113,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,32,45,62,32,98,111,111,108,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,100,97,116,101,116,105,109,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,40,115,101,108,102,46,121,101,97,114,44,32,115,101,108,102,46,109,111,110,116,104,44,32,115,101,108,102,46,100,97,121,44,32,115,101,108,102,46,104,111,117,114,44,32,115,101,108,102,46,109,105,110,117,116,101,44,32,115,101,108,102,46,115,101,99,111,110,100,41,32,61,61,92,10,32,32,32,32,32,32,32,32,32,32,32,32,40,111,116,104,101,114,46,121,101,97,114,44,32,111,116,104,101,114,46,109,111,110,116,104,44,32,111,116,104,101,114,46,100,97,121,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,111,116,104,101,114,46,104,111,117,114,44,32,111,116,104,101,114,46,109,105,110,117,116,101,44,32,111,116,104,101,114,46,115,101,99,111,110,100,41,10,10,32,32,32,32,100,101,102,32,95,95,108,116,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,32,45,62,32,98,111,111,108,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,100,97,116,101,116,105,109,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,40,115,101,108,102,46,121,101,97,114,44,32,115,101,108,102,46,109,111,110,116,104,44,32,115,101,108,102,46,100,97,121,44,32,115,101,108,102,46,104,111,117,114,44,32,115,101,108,102,46,109,105,110,117,116,101,44,32,115,101,108,102,46,115,101,99,111,110,100,41,32,60,92,10,32,32,32,32,32,32,32,32,32,32,32,32,40,111,116,104,101,114,46,121,101,97,114,44,32,111,116,104,101,114,46,109,111,110,116,104,44,32,111,116,104,101,114,46,100,97,121,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,111,116,104,101,114,46,104,111,117,114,44,32,111,116,104,101,114,46,109,105,110,117,116,101,44,32,111,116,104,101,114,46,115,101,99,111,110,100,41,10,10,32,32,32,32,100,101,102,32,95,95,108,101,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,32,45,62,32,98,111,111,108,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,100,97,116,101,116,105,109,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,40,115,101,108,102,46,121,101,97,114,44,32,115,101,108,102,46,109,111,110,116,104,44,32,115,101,108,102,46,100,97,121,44,32,115,101,108,102,46,104,111,117,114,44,32,115,101,108,102,46,109,105,110,117,116,101,44,32,115,101,108,102,46,115,101,99,111,110,100,41,32,60,61,92,10,32,32,32,32,32,32,32,32,32,32,32,32,40,111,116,104,101,114,46,121,101,97,114,44,32,111,116,104,101,114,46,109,111,110,116,104,44,32,111,116,104,101,114,46,100,97,121,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,111,116,104,101,114,46,104,111,117,114,44,32,111,116,104,101,114,46,109,105,110,117,116,101,44,32,111,116,104,101,114,46,115,101,99,111,110,100,41,10,10,32,32,32,32,100,101,102,32,95,95,103,116,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,32,45,62,32,98,111,111,108,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,100,97,116,101,116,105,109,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,40,115,101,108,102,46,121,101,97,114,44,32,115,101,108,102,46,109,111,110,116,104,44,32,115,101,108,102,46,100,97,121,44,32,115,101,108,102,46,104,111,117,114,44,32,115,101,108,102,46,109,105,110,117,116,101,44,32,115,101,108,102,46,115,101,99,111,110,100,41,32,62,92,10,32,32,32,32,32,32,32,32,32,32,32,32,40,111,116,104,101,114,46,121,101,97,114,44,32,111,116,104,101,114,46,109,111,110,116,104,44,32,111,116,104,101,114,46,100,97,121,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,111,116,104,101,114,46,104,111,117,114,44,32,111,116,104,101,114,46,109,105,110,117,116,101,44,32,111,116,104,101,114,46,115,101,99,111,110,100,41,10,10,32,32,32,32,100,101,102,32,95,95,103,101,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,32,45,62,32,98,111,111,108,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,100,97,116,101,116,105,109,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,40,115,101,108,102,46,121,101,97,114,44,32,115,101,108,102,46,109,111,110,116,104,44,32,115,101,108,102,46,100,97,121,44,32,115,101,108,102,46,104,111,117,114,44,32,115,101,108,102,46,109,105,110,117,116,101,44,32,115,101,108,102,46,115,101,99,111,110,100,41,32,62,61,92,10,32,32,32,32,32,32,32,32,32,32,32,32,40,111,116,104,101,114,46,121,101,97,114,44,32,111,116,104,101,114,46,109,111,110,116,104,44,32,111,116,104,101,114,46,100,97,121,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,111,116,104,101,114,46,104,111,117,114,44,32,111,116,104,101,114,46,109,105,110,117,116,101,44,32,111,116,104,101,114,46,115,101,99,111,110,100,41,10,10,32,32,32,32,100,101,102,32,116,105,109,101,115,116,97,109,112,40,115,101,108,102,41,32,45,62,32,102,108,111,97,116,58,10,32,32,32,32,32,32,32,32,114,97,105,115,101,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,69,114,114,111,114,10,10,0}; - const char kPythonLibs_functools[] = {102,114,111,109,32,95,95,98,117,105,108,116,105,110,115,32,105,109,112,111,114,116,32,110,101,120,116,10,10,99,108,97,115,115,32,99,97,99,104,101,58,10,32,32,32,32,100,101,102,32,95,95,105,110,105,116,95,95,40,115,101,108,102,44,32,102,41,58,10,32,32,32,32,32,32,32,32,115,101,108,102,46,102,32,61,32,102,10,32,32,32,32,32,32,32,32,115,101,108,102,46,99,97,99,104,101,32,61,32,123,125,10,10,32,32,32,32,100,101,102,32,95,95,99,97,108,108,95,95,40,115,101,108,102,44,32,42,97,114,103,115,41,58,10,32,32,32,32,32,32,32,32,105,102,32,97,114,103,115,32,110,111,116,32,105,110,32,115,101,108,102,46,99,97,99,104,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,99,97,99,104,101,91,97,114,103,115,93,32,61,32,115,101,108,102,46,102,40,42,97,114,103,115,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,99,97,99,104,101,91,97,114,103,115,93,10,32,32,32,32,10,100,101,102,32,114,101,100,117,99,101,40,102,117,110,99,116,105,111,110,44,32,115,101,113,117,101,110,99,101,44,32,105,110,105,116,105,97,108,61,46,46,46,41,58,10,32,32,32,32,105,116,32,61,32,105,116,101,114,40,115,101,113,117,101,110,99,101,41,10,32,32,32,32,105,102,32,105,110,105,116,105,97,108,32,105,115,32,46,46,46,58,10,32,32,32,32,32,32,32,32,118,97,108,117,101,32,61,32,110,101,120,116,40,105,116,41,10,32,32,32,32,32,32,32,32,105,102,32,118,97,108,117,101,32,105,115,32,83,116,111,112,73,116,101,114,97,116,105,111,110,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,97,105,115,101,32,84,121,112,101,69,114,114,111,114,40,34,114,101,100,117,99,101,40,41,32,111,102,32,101,109,112,116,121,32,105,116,101,114,97,98,108,101,32,119,105,116,104,32,110,111,32,105,110,105,116,105,97,108,32,118,97,108,117,101,34,41,10,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,118,97,108,117,101,32,61,32,105,110,105,116,105,97,108,10,32,32,32,32,102,111,114,32,101,108,101,109,101,110,116,32,105,110,32,105,116,58,10,32,32,32,32,32,32,32,32,118,97,108,117,101,32,61,32,102,117,110,99,116,105,111,110,40,118,97,108,117,101,44,32,101,108,101,109,101,110,116,41,10,32,32,32,32,114,101,116,117,114,110,32,118,97,108,117,101,10,10,99,108,97,115,115,32,112,97,114,116,105,97,108,58,10,32,32,32,32,100,101,102,32,95,95,105,110,105,116,95,95,40,115,101,108,102,44,32,102,44,32,42,97,114,103,115,44,32,42,42,107,119,97,114,103,115,41,58,10,32,32,32,32,32,32,32,32,115,101,108,102,46,102,32,61,32,102,10,32,32,32,32,32,32,32,32,105,102,32,110,111,116,32,99,97,108,108,97,98,108,101,40,102,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,97,105,115,101,32,84,121,112,101,69,114,114,111,114,40,34,116,104,101,32,102,105,114,115,116,32,97,114,103,117,109,101,110,116,32,109,117,115,116,32,98,101,32,99,97,108,108,97,98,108,101,34,41,10,32,32,32,32,32,32,32,32,115,101,108,102,46,97,114,103,115,32,61,32,97,114,103,115,10,32,32,32,32,32,32,32,32,115,101,108,102,46,107,119,97,114,103,115,32,61,32,107,119,97,114,103,115,10,10,32,32,32,32,100,101,102,32,95,95,99,97,108,108,95,95,40,115,101,108,102,44,32,42,97,114,103,115,44,32,42,42,107,119,97,114,103,115,41,58,10,32,32,32,32,32,32,32,32,107,119,97,114,103,115,46,117,112,100,97,116,101,40,115,101,108,102,46,107,119,97,114,103,115,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,102,40,42,115,101,108,102,46,97,114,103,115,44,32,42,97,114,103,115,44,32,42,42,107,119,97,114,103,115,41,10,10,0}; - const char kPythonLibs_heapq[] = {35,32,72,101,97,112,32,113,117,101,117,101,32,97,108,103,111,114,105,116,104,109,32,40,97,46,107,46,97,46,32,112,114,105,111,114,105,116,121,32,113,117,101,117,101,41,10,100,101,102,32,104,101,97,112,112,117,115,104,40,104,101,97,112,44,32,105,116,101,109,41,58,10,32,32,32,32,34,34,34,80,117,115,104,32,105,116,101,109,32,111,110,116,111,32,104,101,97,112,44,32,109,97,105,110,116,97,105,110,105,110,103,32,116,104,101,32,104,101,97,112,32,105,110,118,97,114,105,97,110,116,46,34,34,34,10,32,32,32,32,104,101,97,112,46,97,112,112,101,110,100,40,105,116,101,109,41,10,32,32,32,32,95,115,105,102,116,100,111,119,110,40,104,101,97,112,44,32,48,44,32,108,101,110,40,104,101,97,112,41,45,49,41,10,10,100,101,102,32,104,101,97,112,112,111,112,40,104,101,97,112,41,58,10,32,32,32,32,34,34,34,80,111,112,32,116,104,101,32,115,109,97,108,108,101,115,116,32,105,116,101,109,32,111,102,102,32,116,104,101,32,104,101,97,112,44,32,109,97,105,110,116,97,105,110,105,110,103,32,116,104,101,32,104,101,97,112,32,105,110,118,97,114,105,97,110,116,46,34,34,34,10,32,32,32,32,108,97,115,116,101,108,116,32,61,32,104,101,97,112,46,112,111,112,40,41,32,32,32,32,35,32,114,97,105,115,101,115,32,97,112,112,114,111,112,114,105,97,116,101,32,73,110,100,101,120,69,114,114,111,114,32,105,102,32,104,101,97,112,32,105,115,32,101,109,112,116,121,10,32,32,32,32,105,102,32,104,101,97,112,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,105,116,101,109,32,61,32,104,101,97,112,91,48,93,10,32,32,32,32,32,32,32,32,104,101,97,112,91,48,93,32,61,32,108,97,115,116,101,108,116,10,32,32,32,32,32,32,32,32,95,115,105,102,116,117,112,40,104,101,97,112,44,32,48,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,114,101,116,117,114,110,105,116,101,109,10,32,32,32,32,114,101,116,117,114,110,32,108,97,115,116,101,108,116,10,10,100,101,102,32,104,101,97,112,114,101,112,108,97,99,101,40,104,101,97,112,44,32,105,116,101,109,41,58,10,32,32,32,32,34,34,34,80,111,112,32,97,110,100,32,114,101,116,117,114,110,32,116,104,101,32,99,117,114,114,101,110,116,32,115,109,97,108,108,101,115,116,32,118,97,108,117,101,44,32,97,110,100,32,97,100,100,32,116,104,101,32,110,101,119,32,105,116,101,109,46,10,10,32,32,32,32,84,104,105,115,32,105,115,32,109,111,114,101,32,101,102,102,105,99,105,101,110,116,32,116,104,97,110,32,104,101,97,112,112,111,112,40,41,32,102,111,108,108,111,119,101,100,32,98,121,32,104,101,97,112,112,117,115,104,40,41,44,32,97,110,100,32,99,97,110,32,98,101,10,32,32,32,32,109,111,114,101,32,97,112,112,114,111,112,114,105,97,116,101,32,119,104,101,110,32,117,115,105,110,103,32,97,32,102,105,120,101,100,45,115,105,122,101,32,104,101,97,112,46,32,32,78,111,116,101,32,116,104,97,116,32,116,104,101,32,118,97,108,117,101,10,32,32,32,32,114,101,116,117,114,110,101,100,32,109,97,121,32,98,101,32,108,97,114,103,101,114,32,116,104,97,110,32,105,116,101,109,33,32,32,84,104,97,116,32,99,111,110,115,116,114,97,105,110,115,32,114,101,97,115,111,110,97,98,108,101,32,117,115,101,115,32,111,102,10,32,32,32,32,116,104,105,115,32,114,111,117,116,105,110,101,32,117,110,108,101,115,115,32,119,114,105,116,116,101,110,32,97,115,32,112,97,114,116,32,111,102,32,97,32,99,111,110,100,105,116,105,111,110,97,108,32,114,101,112,108,97,99,101,109,101,110,116,58,10,10,32,32,32,32,32,32,32,32,105,102,32,105,116,101,109,32,62,32,104,101,97,112,91,48,93,58,10,32,32,32,32,32,32,32,32,32,32,32,32,105,116,101,109,32,61,32,104,101,97,112,114,101,112,108,97,99,101,40,104,101,97,112,44,32,105,116,101,109,41,10,32,32,32,32,34,34,34,10,32,32,32,32,114,101,116,117,114,110,105,116,101,109,32,61,32,104,101,97,112,91,48,93,32,32,32,32,35,32,114,97,105,115,101,115,32,97,112,112,114,111,112,114,105,97,116,101,32,73,110,100,101,120,69,114,114,111,114,32,105,102,32,104,101,97,112,32,105,115,32,101,109,112,116,121,10,32,32,32,32,104,101,97,112,91,48,93,32,61,32,105,116,101,109,10,32,32,32,32,95,115,105,102,116,117,112,40,104,101,97,112,44,32,48,41,10,32,32,32,32,114,101,116,117,114,110,32,114,101,116,117,114,110,105,116,101,109,10,10,100,101,102,32,104,101,97,112,112,117,115,104,112,111,112,40,104,101,97,112,44,32,105,116,101,109,41,58,10,32,32,32,32,34,34,34,70,97,115,116,32,118,101,114,115,105,111,110,32,111,102,32,97,32,104,101,97,112,112,117,115,104,32,102,111,108,108,111,119,101,100,32,98,121,32,97,32,104,101,97,112,112,111,112,46,34,34,34,10,32,32,32,32,105,102,32,104,101,97,112,32,97,110,100,32,104,101,97,112,91,48,93,32,60,32,105,116,101,109,58,10,32,32,32,32,32,32,32,32,105,116,101,109,44,32,104,101,97,112,91,48,93,32,61,32,104,101,97,112,91,48,93,44,32,105,116,101,109,10,32,32,32,32,32,32,32,32,95,115,105,102,116,117,112,40,104,101,97,112,44,32,48,41,10,32,32,32,32,114,101,116,117,114,110,32,105,116,101,109,10,10,100,101,102,32,104,101,97,112,105,102,121,40,120,41,58,10,32,32,32,32,34,34,34,84,114,97,110,115,102,111,114,109,32,108,105,115,116,32,105,110,116,111,32,97,32,104,101,97,112,44,32,105,110,45,112,108,97,99,101,44,32,105,110,32,79,40,108,101,110,40,120,41,41,32,116,105,109,101,46,34,34,34,10,32,32,32,32,110,32,61,32,108,101,110,40,120,41,10,32,32,32,32,35,32,84,114,97,110,115,102,111,114,109,32,98,111,116,116,111,109,45,117,112,46,32,32,84,104,101,32,108,97,114,103,101,115,116,32,105,110,100,101,120,32,116,104,101,114,101,39,115,32,97,110,121,32,112,111,105,110,116,32,116,111,32,108,111,111,107,105,110,103,32,97,116,10,32,32,32,32,35,32,105,115,32,116,104,101,32,108,97,114,103,101,115,116,32,119,105,116,104,32,97,32,99,104,105,108,100,32,105,110,100,101,120,32,105,110,45,114,97,110,103,101,44,32,115,111,32,109,117,115,116,32,104,97,118,101,32,50,42,105,32,43,32,49,32,60,32,110,44,10,32,32,32,32,35,32,111,114,32,105,32,60,32,40,110,45,49,41,47,50,46,32,32,73,102,32,110,32,105,115,32,101,118,101,110,32,61,32,50,42,106,44,32,116,104,105,115,32,105,115,32,40,50,42,106,45,49,41,47,50,32,61,32,106,45,49,47,50,32,115,111,10,32,32,32,32,35,32,106,45,49,32,105,115,32,116,104,101,32,108,97,114,103,101,115,116,44,32,119,104,105,99,104,32,105,115,32,110,47,47,50,32,45,32,49,46,32,32,73,102,32,110,32,105,115,32,111,100,100,32,61,32,50,42,106,43,49,44,32,116,104,105,115,32,105,115,10,32,32,32,32,35,32,40,50,42,106,43,49,45,49,41,47,50,32,61,32,106,32,115,111,32,106,45,49,32,105,115,32,116,104,101,32,108,97,114,103,101,115,116,44,32,97,110,100,32,116,104,97,116,39,115,32,97,103,97,105,110,32,110,47,47,50,45,49,46,10,32,32,32,32,102,111,114,32,105,32,105,110,32,114,101,118,101,114,115,101,100,40,114,97,110,103,101,40,110,47,47,50,41,41,58,10,32,32,32,32,32,32,32,32,95,115,105,102,116,117,112,40,120,44,32,105,41,10,10,35,32,39,104,101,97,112,39,32,105,115,32,97,32,104,101,97,112,32,97,116,32,97,108,108,32,105,110,100,105,99,101,115,32,62,61,32,115,116,97,114,116,112,111,115,44,32,101,120,99,101,112,116,32,112,111,115,115,105,98,108,121,32,102,111,114,32,112,111,115,46,32,32,112,111,115,10,35,32,105,115,32,116,104,101,32,105,110,100,101,120,32,111,102,32,97,32,108,101,97,102,32,119,105,116,104,32,97,32,112,111,115,115,105,98,108,121,32,111,117,116,45,111,102,45,111,114,100,101,114,32,118,97,108,117,101,46,32,32,82,101,115,116,111,114,101,32,116,104,101,10,35,32,104,101,97,112,32,105,110,118,97,114,105,97,110,116,46,10,100,101,102,32,95,115,105,102,116,100,111,119,110,40,104,101,97,112,44,32,115,116,97,114,116,112,111,115,44,32,112,111,115,41,58,10,32,32,32,32,110,101,119,105,116,101,109,32,61,32,104,101,97,112,91,112,111,115,93,10,32,32,32,32,35,32,70,111,108,108,111,119,32,116,104,101,32,112,97,116,104,32,116,111,32,116,104,101,32,114,111,111,116,44,32,109,111,118,105,110,103,32,112,97,114,101,110,116,115,32,100,111,119,110,32,117,110,116,105,108,32,102,105,110,100,105,110,103,32,97,32,112,108,97,99,101,10,32,32,32,32,35,32,110,101,119,105,116,101,109,32,102,105,116,115,46,10,32,32,32,32,119,104,105,108,101,32,112,111,115,32,62,32,115,116,97,114,116,112,111,115,58,10,32,32,32,32,32,32,32,32,112,97,114,101,110,116,112,111,115,32,61,32,40,112,111,115,32,45,32,49,41,32,62,62,32,49,10,32,32,32,32,32,32,32,32,112,97,114,101,110,116,32,61,32,104,101,97,112,91,112,97,114,101,110,116,112,111,115,93,10,32,32,32,32,32,32,32,32,105,102,32,110,101,119,105,116,101,109,32,60,32,112,97,114,101,110,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,104,101,97,112,91,112,111,115,93,32,61,32,112,97,114,101,110,116,10,32,32,32,32,32,32,32,32,32,32,32,32,112,111,115,32,61,32,112,97,114,101,110,116,112,111,115,10,32,32,32,32,32,32,32,32,32,32,32,32,99,111,110,116,105,110,117,101,10,32,32,32,32,32,32,32,32,98,114,101,97,107,10,32,32,32,32,104,101,97,112,91,112,111,115,93,32,61,32,110,101,119,105,116,101,109,10,10,100,101,102,32,95,115,105,102,116,117,112,40,104,101,97,112,44,32,112,111,115,41,58,10,32,32,32,32,101,110,100,112,111,115,32,61,32,108,101,110,40,104,101,97,112,41,10,32,32,32,32,115,116,97,114,116,112,111,115,32,61,32,112,111,115,10,32,32,32,32,110,101,119,105,116,101,109,32,61,32,104,101,97,112,91,112,111,115,93,10,32,32,32,32,35,32,66,117,98,98,108,101,32,117,112,32,116,104,101,32,115,109,97,108,108,101,114,32,99,104,105,108,100,32,117,110,116,105,108,32,104,105,116,116,105,110,103,32,97,32,108,101,97,102,46,10,32,32,32,32,99,104,105,108,100,112,111,115,32,61,32,50,42,112,111,115,32,43,32,49,32,32,32,32,35,32,108,101,102,116,109,111,115,116,32,99,104,105,108,100,32,112,111,115,105,116,105,111,110,10,32,32,32,32,119,104,105,108,101,32,99,104,105,108,100,112,111,115,32,60,32,101,110,100,112,111,115,58,10,32,32,32,32,32,32,32,32,35,32,83,101,116,32,99,104,105,108,100,112,111,115,32,116,111,32,105,110,100,101,120,32,111,102,32,115,109,97,108,108,101,114,32,99,104,105,108,100,46,10,32,32,32,32,32,32,32,32,114,105,103,104,116,112,111,115,32,61,32,99,104,105,108,100,112,111,115,32,43,32,49,10,32,32,32,32,32,32,32,32,105,102,32,114,105,103,104,116,112,111,115,32,60,32,101,110,100,112,111,115,32,97,110,100,32,110,111,116,32,104,101,97,112,91,99,104,105,108,100,112,111,115,93,32,60,32,104,101,97,112,91,114,105,103,104,116,112,111,115,93,58,10,32,32,32,32,32,32,32,32,32,32,32,32,99,104,105,108,100,112,111,115,32,61,32,114,105,103,104,116,112,111,115,10,32,32,32,32,32,32,32,32,35,32,77,111,118,101,32,116,104,101,32,115,109,97,108,108,101,114,32,99,104,105,108,100,32,117,112,46,10,32,32,32,32,32,32,32,32,104,101,97,112,91,112,111,115,93,32,61,32,104,101,97,112,91,99,104,105,108,100,112,111,115,93,10,32,32,32,32,32,32,32,32,112,111,115,32,61,32,99,104,105,108,100,112,111,115,10,32,32,32,32,32,32,32,32,99,104,105,108,100,112,111,115,32,61,32,50,42,112,111,115,32,43,32,49,10,32,32,32,32,35,32,84,104,101,32,108,101,97,102,32,97,116,32,112,111,115,32,105,115,32,101,109,112,116,121,32,110,111,119,46,32,32,80,117,116,32,110,101,119,105,116,101,109,32,116,104,101,114,101,44,32,97,110,100,32,98,117,98,98,108,101,32,105,116,32,117,112,10,32,32,32,32,35,32,116,111,32,105,116,115,32,102,105,110,97,108,32,114,101,115,116,105,110,103,32,112,108,97,99,101,32,40,98,121,32,115,105,102,116,105,110,103,32,105,116,115,32,112,97,114,101,110,116,115,32,100,111,119,110,41,46,10,32,32,32,32,104,101,97,112,91,112,111,115,93,32,61,32,110,101,119,105,116,101,109,10,32,32,32,32,95,115,105,102,116,100,111,119,110,40,104,101,97,112,44,32,115,116,97,114,116,112,111,115,44,32,112,111,115,41,0}; - const char kPythonLibs_itertools[] = {102,114,111,109,32,95,95,98,117,105,108,116,105,110,115,32,105,109,112,111,114,116,32,110,101,120,116,10,10,100,101,102,32,122,105,112,95,108,111,110,103,101,115,116,40,97,44,32,98,41,58,10,32,32,32,32,97,32,61,32,105,116,101,114,40,97,41,10,32,32,32,32,98,32,61,32,105,116,101,114,40,98,41,10,32,32,32,32,119,104,105,108,101,32,84,114,117,101,58,10,32,32,32,32,32,32,32,32,97,105,32,61,32,110,101,120,116,40,97,41,10,32,32,32,32,32,32,32,32,98,105,32,61,32,110,101,120,116,40,98,41,10,32,32,32,32,32,32,32,32,105,102,32,97,105,32,105,115,32,83,116,111,112,73,116,101,114,97,116,105,111,110,32,97,110,100,32,98,105,32,105,115,32,83,116,111,112,73,116,101,114,97,116,105,111,110,58,10,32,32,32,32,32,32,32,32,32,32,32,32,98,114,101,97,107,10,32,32,32,32,32,32,32,32,105,102,32,97,105,32,105,115,32,83,116,111,112,73,116,101,114,97,116,105,111,110,58,10,32,32,32,32,32,32,32,32,32,32,32,32,97,105,32,61,32,78,111,110,101,10,32,32,32,32,32,32,32,32,105,102,32,98,105,32,105,115,32,83,116,111,112,73,116,101,114,97,116,105,111,110,58,10,32,32,32,32,32,32,32,32,32,32,32,32,98,105,32,61,32,78,111,110,101,10,32,32,32,32,32,32,32,32,121,105,101,108,100,32,97,105,44,32,98,105,10,0}; - const char kPythonLibs_pickle[] = {105,109,112,111,114,116,32,106,115,111,110,10,102,114,111,109,32,99,32,105,109,112,111,114,116,32,115,116,114,117,99,116,10,105,109,112,111,114,116,32,98,117,105,108,116,105,110,115,10,10,95,66,65,83,73,67,95,84,89,80,69,83,32,61,32,91,105,110,116,44,32,102,108,111,97,116,44,32,115,116,114,44,32,98,111,111,108,44,32,116,121,112,101,40,78,111,110,101,41,93,10,95,77,79,68,95,84,95,83,69,80,32,61,32,34,64,34,10,10,100,101,102,32,95,102,105,110,100,95,99,108,97,115,115,40,112,97,116,104,58,32,115,116,114,41,58,10,32,32,32,32,105,102,32,95,77,79,68,95,84,95,83,69,80,32,110,111,116,32,105,110,32,112,97,116,104,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,98,117,105,108,116,105,110,115,46,95,95,100,105,99,116,95,95,91,112,97,116,104,93,10,32,32,32,32,109,111,100,112,97,116,104,44,32,110,97,109,101,32,61,32,112,97,116,104,46,115,112,108,105,116,40,95,77,79,68,95,84,95,83,69,80,41,10,32,32,32,32,114,101,116,117,114,110,32,95,95,105,109,112,111,114,116,95,95,40,109,111,100,112,97,116,104,41,46,95,95,100,105,99,116,95,95,91,110,97,109,101,93,10,10,99,108,97,115,115,32,95,80,105,99,107,108,101,114,58,10,32,32,32,32,100,101,102,32,95,95,105,110,105,116,95,95,40,115,101,108,102,44,32,111,98,106,41,32,45,62,32,78,111,110,101,58,10,32,32,32,32,32,32,32,32,115,101,108,102,46,111,98,106,32,61,32,111,98,106,10,32,32,32,32,32,32,32,32,115,101,108,102,46,114,97,119,95,109,101,109,111,32,61,32,123,125,32,32,35,32,105,100,32,45,62,32,105,110,116,10,32,32,32,32,32,32,32,32,115,101,108,102,46,109,101,109,111,32,61,32,91,93,32,32,32,32,32,32,35,32,105,110,116,32,45,62,32,111,98,106,101,99,116,10,10,32,32,32,32,64,115,116,97,116,105,99,109,101,116,104,111,100,10,32,32,32,32,100,101,102,32,95,116,121,112,101,95,105,100,40,116,58,32,116,121,112,101,41,58,10,32,32,32,32,32,32,32,32,97,115,115,101,114,116,32,116,121,112,101,40,116,41,32,105,115,32,116,121,112,101,10,32,32,32,32,32,32,32,32,110,97,109,101,32,61,32,116,46,95,95,110,97,109,101,95,95,10,32,32,32,32,32,32,32,32,109,111,100,32,61,32,116,46,95,95,109,111,100,117,108,101,95,95,10,32,32,32,32,32,32,32,32,105,102,32,109,111,100,32,105,115,32,110,111,116,32,78,111,110,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,110,97,109,101,32,61,32,109,111,100,46,95,95,112,97,116,104,95,95,32,43,32,95,77,79,68,95,84,95,83,69,80,32,43,32,110,97,109,101,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,110,97,109,101,10,10,32,32,32,32,100,101,102,32,119,114,97,112,40,115,101,108,102,44,32,111,41,58,10,32,32,32,32,32,32,32,32,111,95,116,32,61,32,116,121,112,101,40,111,41,10,32,32,32,32,32,32,32,32,105,102,32,111,95,116,32,105,110,32,95,66,65,83,73,67,95,84,89,80,69,83,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,111,10,32,32,32,32,32,32,32,32,105,102,32,111,95,116,32,105,115,32,116,121,112,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,34,116,121,112,101,34,44,32,115,101,108,102,46,95,116,121,112,101,95,105,100,40,111,41,93,10,10,32,32,32,32,32,32,32,32,105,110,100,101,120,32,61,32,115,101,108,102,46,114,97,119,95,109,101,109,111,46,103,101,116,40,105,100,40,111,41,44,32,78,111,110,101,41,10,32,32,32,32,32,32,32,32,105,102,32,105,110,100,101,120,32,105,115,32,110,111,116,32,78,111,110,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,105,110,100,101,120,93,10,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,114,101,116,32,61,32,91,93,10,32,32,32,32,32,32,32,32,105,110,100,101,120,32,61,32,108,101,110,40,115,101,108,102,46,109,101,109,111,41,10,32,32,32,32,32,32,32,32,115,101,108,102,46,109,101,109,111,46,97,112,112,101,110,100,40,114,101,116,41,10,32,32,32,32,32,32,32,32,115,101,108,102,46,114,97,119,95,109,101,109,111,91,105,100,40,111,41,93,32,61,32,105,110,100,101,120,10,10,32,32,32,32,32,32,32,32,105,102,32,111,95,116,32,105,115,32,116,117,112,108,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,46,97,112,112,101,110,100,40,34,116,117,112,108,101,34,41,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,46,97,112,112,101,110,100,40,91,115,101,108,102,46,119,114,97,112,40,105,41,32,102,111,114,32,105,32,105,110,32,111,93,41,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,105,110,100,101,120,93,10,32,32,32,32,32,32,32,32,105,102,32,111,95,116,32,105,115,32,98,121,116,101,115,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,46,97,112,112,101,110,100,40,34,98,121,116,101,115,34,41,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,46,97,112,112,101,110,100,40,91,111,91,106,93,32,102,111,114,32,106,32,105,110,32,114,97,110,103,101,40,108,101,110,40,111,41,41,93,41,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,105,110,100,101,120,93,10,32,32,32,32,32,32,32,32,105,102,32,111,95,116,32,105,115,32,108,105,115,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,46,97,112,112,101,110,100,40,34,108,105,115,116,34,41,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,46,97,112,112,101,110,100,40,91,115,101,108,102,46,119,114,97,112,40,105,41,32,102,111,114,32,105,32,105,110,32,111,93,41,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,105,110,100,101,120,93,10,32,32,32,32,32,32,32,32,105,102,32,111,95,116,32,105,115,32,100,105,99,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,46,97,112,112,101,110,100,40,34,100,105,99,116,34,41,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,46,97,112,112,101,110,100,40,91,91,115,101,108,102,46,119,114,97,112,40,107,41,44,32,115,101,108,102,46,119,114,97,112,40,118,41,93,32,102,111,114,32,107,44,118,32,105,110,32,111,46,105,116,101,109,115,40,41,93,41,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,105,110,100,101,120,93,10,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,95,48,32,61,32,115,101,108,102,46,95,116,121,112,101,95,105,100,40,111,95,116,41,10,10,32,32,32,32,32,32,32,32,105,102,32,103,101,116,97,116,116,114,40,111,95,116,44,32,39,95,95,115,116,114,117,99,116,95,95,39,44,32,70,97,108,115,101,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,46,97,112,112,101,110,100,40,95,48,41,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,46,97,112,112,101,110,100,40,111,46,116,111,115,116,114,117,99,116,40,41,46,104,101,120,40,41,41,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,105,110,100,101,120,93,10,10,32,32,32,32,32,32,32,32,105,102,32,104,97,115,97,116,116,114,40,111,44,32,34,95,95,103,101,116,110,101,119,97,114,103,115,95,95,34,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,95,49,32,61,32,111,46,95,95,103,101,116,110,101,119,97,114,103,115,95,95,40,41,32,32,32,32,32,35,32,97,110,32,105,116,101,114,97,98,108,101,10,32,32,32,32,32,32,32,32,32,32,32,32,95,49,32,61,32,91,115,101,108,102,46,119,114,97,112,40,105,41,32,102,111,114,32,105,32,105,110,32,95,49,93,10,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,95,49,32,61,32,78,111,110,101,10,10,32,32,32,32,32,32,32,32,105,102,32,111,46,95,95,100,105,99,116,95,95,32,105,115,32,78,111,110,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,95,50,32,61,32,78,111,110,101,10,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,95,50,32,61,32,123,107,58,32,115,101,108,102,46,119,114,97,112,40,118,41,32,102,111,114,32,107,44,118,32,105,110,32,111,46,95,95,100,105,99,116,95,95,46,105,116,101,109,115,40,41,125,10,10,32,32,32,32,32,32,32,32,114,101,116,46,97,112,112,101,110,100,40,95,48,41,32,32,35,32,116,121,112,101,32,105,100,10,32,32,32,32,32,32,32,32,114,101,116,46,97,112,112,101,110,100,40,95,49,41,32,32,35,32,110,101,119,97,114,103,115,10,32,32,32,32,32,32,32,32,114,101,116,46,97,112,112,101,110,100,40,95,50,41,32,32,35,32,115,116,97,116,101,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,105,110,100,101,120,93,10,32,32,32,32,10,32,32,32,32,100,101,102,32,114,117,110,95,112,105,112,101,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,111,32,61,32,115,101,108,102,46,119,114,97,112,40,115,101,108,102,46,111,98,106,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,111,44,32,115,101,108,102,46,109,101,109,111,93,10,10,10,10,99,108,97,115,115,32,95,85,110,112,105,99,107,108,101,114,58,10,32,32,32,32,100,101,102,32,95,95,105,110,105,116,95,95,40,115,101,108,102,44,32,111,98,106,44,32,109,101,109,111,58,32,108,105,115,116,41,32,45,62,32,78,111,110,101,58,10,32,32,32,32,32,32,32,32,115,101,108,102,46,111,98,106,32,61,32,111,98,106,10,32,32,32,32,32,32,32,32,115,101,108,102,46,109,101,109,111,32,61,32,109,101,109,111,10,32,32,32,32,32,32,32,32,115,101,108,102,46,95,117,110,119,114,97,112,112,101,100,32,61,32,91,78,111,110,101,93,32,42,32,108,101,110,40,109,101,109,111,41,10,10,32,32,32,32,100,101,102,32,116,97,103,40,115,101,108,102,44,32,105,110,100,101,120,44,32,111,41,58,10,32,32,32,32,32,32,32,32,97,115,115,101,114,116,32,115,101,108,102,46,95,117,110,119,114,97,112,112,101,100,91,105,110,100,101,120,93,32,105,115,32,78,111,110,101,10,32,32,32,32,32,32,32,32,115,101,108,102,46,95,117,110,119,114,97,112,112,101,100,91,105,110,100,101,120,93,32,61,32,111,10,10,32,32,32,32,100,101,102,32,117,110,119,114,97,112,40,115,101,108,102,44,32,111,44,32,105,110,100,101,120,61,78,111,110,101,41,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,41,32,105,110,32,95,66,65,83,73,67,95,84,89,80,69,83,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,111,10,32,32,32,32,32,32,32,32,97,115,115,101,114,116,32,116,121,112,101,40,111,41,32,105,115,32,108,105,115,116,10,10,32,32,32,32,32,32,32,32,105,102,32,111,91,48,93,32,61,61,32,34,116,121,112,101,34,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,95,102,105,110,100,95,99,108,97,115,115,40,111,91,49,93,41,10,10,32,32,32,32,32,32,32,32,35,32,114,101,102,101,114,101,110,99,101,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,91,48,93,41,32,105,115,32,105,110,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,97,115,115,101,114,116,32,105,110,100,101,120,32,105,115,32,78,111,110,101,32,32,32,32,35,32,105,110,100,101,120,32,115,104,111,117,108,100,32,98,101,32,78,111,110,101,10,32,32,32,32,32,32,32,32,32,32,32,32,105,110,100,101,120,32,61,32,111,91,48,93,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,115,101,108,102,46,95,117,110,119,114,97,112,112,101,100,91,105,110,100,101,120,93,32,105,115,32,78,111,110,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,111,32,61,32,115,101,108,102,46,109,101,109,111,91,105,110,100,101,120,93,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,115,115,101,114,116,32,116,121,112,101,40,111,41,32,105,115,32,108,105,115,116,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,115,115,101,114,116,32,116,121,112,101,40,111,91,48,93,41,32,105,115,32,115,116,114,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,117,110,119,114,97,112,40,111,44,32,105,110,100,101,120,41,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,115,115,101,114,116,32,115,101,108,102,46,95,117,110,119,114,97,112,112,101,100,91,105,110,100,101,120,93,32,105,115,32,110,111,116,32,78,111,110,101,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,95,117,110,119,114,97,112,112,101,100,91,105,110,100,101,120,93,10,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,35,32,99,111,110,99,114,101,116,101,32,114,101,102,101,114,101,110,99,101,32,116,121,112,101,10,32,32,32,32,32,32,32,32,105,102,32,111,91,48,93,32,61,61,32,34,116,117,112,108,101,34,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,32,61,32,116,117,112,108,101,40,91,115,101,108,102,46,117,110,119,114,97,112,40,105,41,32,102,111,114,32,105,32,105,110,32,111,91,49,93,93,41,10,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,116,97,103,40,105,110,100,101,120,44,32,114,101,116,41,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,114,101,116,10,32,32,32,32,32,32,32,32,105,102,32,111,91,48,93,32,61,61,32,34,98,121,116,101,115,34,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,32,61,32,98,121,116,101,115,40,111,91,49,93,41,10,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,116,97,103,40,105,110,100,101,120,44,32,114,101,116,41,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,114,101,116,10,32,32,32,32,32,32,32,32,105,102,32,111,91,48,93,32,61,61,32,34,108,105,115,116,34,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,32,61,32,91,93,10,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,116,97,103,40,105,110,100,101,120,44,32,114,101,116,41,10,32,32,32,32,32,32,32,32,32,32,32,32,102,111,114,32,105,32,105,110,32,111,91,49,93,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,46,97,112,112,101,110,100,40,115,101,108,102,46,117,110,119,114,97,112,40,105,41,41,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,114,101,116,10,32,32,32,32,32,32,32,32,105,102,32,111,91,48,93,32,61,61,32,34,100,105,99,116,34,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,32,61,32,123,125,10,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,116,97,103,40,105,110,100,101,120,44,32,114,101,116,41,10,32,32,32,32,32,32,32,32,32,32,32,32,102,111,114,32,107,44,118,32,105,110,32,111,91,49,93,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,91,115,101,108,102,46,117,110,119,114,97,112,40,107,41,93,32,61,32,115,101,108,102,46,117,110,119,114,97,112,40,118,41,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,114,101,116,10,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,35,32,103,101,110,101,114,105,99,32,111,98,106,101,99,116,10,32,32,32,32,32,32,32,32,99,108,115,32,61,32,95,102,105,110,100,95,99,108,97,115,115,40,111,91,48,93,41,10,32,32,32,32,32,32,32,32,105,102,32,103,101,116,97,116,116,114,40,99,108,115,44,32,39,95,95,115,116,114,117,99,116,95,95,39,44,32,70,97,108,115,101,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,105,110,115,116,32,61,32,99,108,115,46,102,114,111,109,115,116,114,117,99,116,40,115,116,114,117,99,116,46,102,114,111,109,104,101,120,40,111,91,49,93,41,41,10,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,116,97,103,40,105,110,100,101,120,44,32,105,110,115,116,41,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,10,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,95,44,32,110,101,119,97,114,103,115,44,32,115,116,97,116,101,32,61,32,111,10,32,32,32,32,32,32,32,32,32,32,32,32,35,32,99,114,101,97,116,101,32,117,110,105,110,105,116,105,97,108,105,122,101,100,32,105,110,115,116,97,110,99,101,10,32,32,32,32,32,32,32,32,32,32,32,32,110,101,119,95,102,32,61,32,103,101,116,97,116,116,114,40,99,108,115,44,32,34,95,95,110,101,119,95,95,34,41,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,110,101,119,97,114,103,115,32,105,115,32,110,111,116,32,78,111,110,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,110,101,119,97,114,103,115,32,61,32,91,115,101,108,102,46,117,110,119,114,97,112,40,105,41,32,102,111,114,32,105,32,105,110,32,110,101,119,97,114,103,115,93,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,110,115,116,32,61,32,110,101,119,95,102,40,99,108,115,44,32,42,110,101,119,97,114,103,115,41,10,32,32,32,32,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,110,115,116,32,61,32,110,101,119,95,102,40,99,108,115,41,10,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,116,97,103,40,105,110,100,101,120,44,32,105,110,115,116,41,10,32,32,32,32,32,32,32,32,32,32,32,32,35,32,114,101,115,116,111,114,101,32,115,116,97,116,101,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,115,116,97,116,101,32,105,115,32,110,111,116,32,78,111,110,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,102,111,114,32,107,44,118,32,105,110,32,115,116,97,116,101,46,105,116,101,109,115,40,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,115,101,116,97,116,116,114,40,105,110,115,116,44,32,107,44,32,115,101,108,102,46,117,110,119,114,97,112,40,118,41,41,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,10,10,32,32,32,32,100,101,102,32,114,117,110,95,112,105,112,101,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,117,110,119,114,97,112,40,115,101,108,102,46,111,98,106,41,10,10,10,100,101,102,32,95,119,114,97,112,40,111,41,58,10,32,32,32,32,114,101,116,117,114,110,32,95,80,105,99,107,108,101,114,40,111,41,46,114,117,110,95,112,105,112,101,40,41,10,10,100,101,102,32,95,117,110,119,114,97,112,40,112,97,99,107,101,100,58,32,108,105,115,116,41,58,10,32,32,32,32,114,101,116,117,114,110,32,95,85,110,112,105,99,107,108,101,114,40,42,112,97,99,107,101,100,41,46,114,117,110,95,112,105,112,101,40,41,10,10,100,101,102,32,100,117,109,112,115,40,111,41,32,45,62,32,98,121,116,101,115,58,10,32,32,32,32,111,32,61,32,95,119,114,97,112,40,111,41,10,32,32,32,32,114,101,116,117,114,110,32,106,115,111,110,46,100,117,109,112,115,40,111,41,46,101,110,99,111,100,101,40,41,10,10,100,101,102,32,108,111,97,100,115,40,98,41,32,45,62,32,111,98,106,101,99,116,58,10,32,32,32,32,97,115,115,101,114,116,32,116,121,112,101,40,98,41,32,105,115,32,98,121,116,101,115,10,32,32,32,32,111,32,61,32,106,115,111,110,46,108,111,97,100,115,40,98,46,100,101,99,111,100,101,40,41,41,10,32,32,32,32,114,101,116,117,114,110,32,95,117,110,119,114,97,112,40,111,41,0}; - const char kPythonLibs_this[] = {112,114,105,110,116,40,34,34,34,84,104,101,32,90,101,110,32,111,102,32,80,121,116,104,111,110,44,32,98,121,32,84,105,109,32,80,101,116,101,114,115,10,10,66,101,97,117,116,105,102,117,108,32,105,115,32,98,101,116,116,101,114,32,116,104,97,110,32,117,103,108,121,46,10,69,120,112,108,105,99,105,116,32,105,115,32,98,101,116,116,101,114,32,116,104,97,110,32,105,109,112,108,105,99,105,116,46,10,83,105,109,112,108,101,32,105,115,32,98,101,116,116,101,114,32,116,104,97,110,32,99,111,109,112,108,101,120,46,10,67,111,109,112,108,101,120,32,105,115,32,98,101,116,116,101,114,32,116,104,97,110,32,99,111,109,112,108,105,99,97,116,101,100,46,10,70,108,97,116,32,105,115,32,98,101,116,116,101,114,32,116,104,97,110,32,110,101,115,116,101,100,46,10,83,112,97,114,115,101,32,105,115,32,98,101,116,116,101,114,32,116,104,97,110,32,100,101,110,115,101,46,10,82,101,97,100,97,98,105,108,105,116,121,32,99,111,117,110,116,115,46,10,83,112,101,99,105,97,108,32,99,97,115,101,115,32,97,114,101,110,39,116,32,115,112,101,99,105,97,108,32,101,110,111,117,103,104,32,116,111,32,98,114,101,97,107,32,116,104,101,32,114,117,108,101,115,46,10,65,108,116,104,111,117,103,104,32,112,114,97,99,116,105,99,97,108,105,116,121,32,98,101,97,116,115,32,112,117,114,105,116,121,46,10,69,114,114,111,114,115,32,115,104,111,117,108,100,32,110,101,118,101,114,32,112,97,115,115,32,115,105,108,101,110,116,108,121,46,10,85,110,108,101,115,115,32,101,120,112,108,105,99,105,116,108,121,32,115,105,108,101,110,99,101,100,46,10,73,110,32,116,104,101,32,102,97,99,101,32,111,102,32,97,109,98,105,103,117,105,116,121,44,32,114,101,102,117,115,101,32,116,104,101,32,116,101,109,112,116,97,116,105,111,110,32,116,111,32,103,117,101,115,115,46,10,84,104,101,114,101,32,115,104,111,117,108,100,32,98,101,32,111,110,101,45,45,32,97,110,100,32,112,114,101,102,101,114,97,98,108,121,32,111,110,108,121,32,111,110,101,32,45,45,111,98,118,105,111,117,115,32,119,97,121,32,116,111,32,100,111,32,105,116,46,10,65,108,116,104,111,117,103,104,32,116,104,97,116,32,119,97,121,32,109,97,121,32,110,111,116,32,98,101,32,111,98,118,105,111,117,115,32,97,116,32,102,105,114,115,116,32,117,110,108,101,115,115,32,121,111,117,39,114,101,32,68,117,116,99,104,46,10,78,111,119,32,105,115,32,98,101,116,116,101,114,32,116,104,97,110,32,110,101,118,101,114,46,10,65,108,116,104,111,117,103,104,32,110,101,118,101,114,32,105,115,32,111,102,116,101,110,32,98,101,116,116,101,114,32,116,104,97,110,32,42,114,105,103,104,116,42,32,110,111,119,46,10,73,102,32,116,104,101,32,105,109,112,108,101,109,101,110,116,97,116,105,111,110,32,105,115,32,104,97,114,100,32,116,111,32,101,120,112,108,97,105,110,44,32,105,116,39,115,32,97,32,98,97,100,32,105,100,101,97,46,10,73,102,32,116,104,101,32,105,109,112,108,101,109,101,110,116,97,116,105,111,110,32,105,115,32,101,97,115,121,32,116,111,32,101,120,112,108,97,105,110,44,32,105,116,32,109,97,121,32,98,101,32,97,32,103,111,111,100,32,105,100,101,97,46,10,78,97,109,101,115,112,97,99,101,115,32,97,114,101,32,111,110,101,32,104,111,110,107,105,110,103,32,103,114,101,97,116,32,105,100,101,97,32,45,45,32,108,101,116,39,115,32,100,111,32,109,111,114,101,32,111,102,32,116,104,111,115,101,33,34,34,34,41,0}; - const char kPythonLibs_typing[] = {99,108,97,115,115,32,95,80,108,97,99,101,104,111,108,100,101,114,58,10,32,32,32,32,100,101,102,32,95,95,105,110,105,116,95,95,40,115,101,108,102,44,32,42,97,114,103,115,44,32,42,42,107,119,97,114,103,115,41,58,10,32,32,32,32,32,32,32,32,112,97,115,115,10,32,32,32,32,100,101,102,32,95,95,103,101,116,105,116,101,109,95,95,40,115,101,108,102,44,32,42,97,114,103,115,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,10,32,32,32,32,100,101,102,32,95,95,99,97,108,108,95,95,40,115,101,108,102,44,32,42,97,114,103,115,44,32,42,42,107,119,97,114,103,115,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,10,32,32,32,32,100,101,102,32,95,95,97,110,100,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,10,32,32,32,32,100,101,102,32,95,95,111,114,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,10,32,32,32,32,100,101,102,32,95,95,120,111,114,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,10,10,10,95,80,76,65,67,69,72,79,76,68,69,82,32,61,32,95,80,108,97,99,101,104,111,108,100,101,114,40,41,10,10,76,105,115,116,32,61,32,95,80,76,65,67,69,72,79,76,68,69,82,10,68,105,99,116,32,61,32,95,80,76,65,67,69,72,79,76,68,69,82,10,84,117,112,108,101,32,61,32,95,80,76,65,67,69,72,79,76,68,69,82,10,83,101,116,32,61,32,95,80,76,65,67,69,72,79,76,68,69,82,10,65,110,121,32,61,32,95,80,76,65,67,69,72,79,76,68,69,82,10,85,110,105,111,110,32,61,32,95,80,76,65,67,69,72,79,76,68,69,82,10,79,112,116,105,111,110,97,108,32,61,32,95,80,76,65,67,69,72,79,76,68,69,82,10,67,97,108,108,97,98,108,101,32,61,32,95,80,76,65,67,69,72,79,76,68,69,82,10,84,121,112,101,32,61,32,95,80,76,65,67,69,72,79,76,68,69,82,10,80,114,111,116,111,99,111,108,32,61,32,95,80,76,65,67,69,72,79,76,68,69,82,10,10,76,105,116,101,114,97,108,32,61,32,95,80,76,65,67,69,72,79,76,68,69,82,10,76,105,116,101,114,97,108,83,116,114,105,110,103,32,61,32,95,80,76,65,67,69,72,79,76,68,69,82,10,10,73,116,101,114,97,98,108,101,32,61,32,95,80,76,65,67,69,72,79,76,68,69,82,10,71,101,110,101,114,97,116,111,114,32,61,32,95,80,76,65,67,69,72,79,76,68,69,82,10,10,72,97,115,104,97,98,108,101,32,61,32,95,80,76,65,67,69,72,79,76,68,69,82,10,10,84,121,112,101,86,97,114,32,61,32,95,80,76,65,67,69,72,79,76,68,69,82,10,83,101,108,102,32,61,32,95,80,76,65,67,69,72,79,76,68,69,82,10,10,99,108,97,115,115,32,71,101,110,101,114,105,99,58,10,32,32,32,32,112,97,115,115,10,10,84,89,80,69,95,67,72,69,67,75,73,78,71,32,61,32,70,97,108,115,101,10,10,35,32,100,101,99,111,114,97,116,111,114,115,10,111,118,101,114,108,111,97,100,32,61,32,108,97,109,98,100,97,32,120,58,32,120,10,102,105,110,97,108,32,61,32,108,97,109,98,100,97,32,120,58,32,120,10,0}; + const char kPythonLibs__enum[] = "class Enum:\n def __init__(self, name, value):\n self.name = name\n self.value = value\n\n def __str__(self):\n return f'{type(self).__name__}.{self.name}'\n \n def __repr__(self):\n return f'<{str(self)}: {self.value!r}>'\n \n"; + const char kPythonLibs__long[] = "# after v1.2.2, int is always 64-bit\nPyLong_SHIFT = 60//2 - 1\n\nPyLong_BASE = 2 ** PyLong_SHIFT\nPyLong_MASK = PyLong_BASE - 1\nPyLong_DECIMAL_SHIFT = 4\nPyLong_DECIMAL_BASE = 10 ** PyLong_DECIMAL_SHIFT\n\n##############################################################\n\ndef ulong_fromint(x: int):\n # return a list of digits and sign\n if x == 0: return [0], 1\n sign = 1 if x > 0 else -1\n if sign < 0: x = -x\n res = []\n while x:\n res.append(x & PyLong_MASK)\n x >>= PyLong_SHIFT\n return res, sign\n\ndef ulong_cmp(a: list, b: list) -> int:\n # return 1 if a>b, -1 if a len(b): return 1\n if len(a) < len(b): return -1\n for i in range(len(a)-1, -1, -1):\n if a[i] > b[i]: return 1\n if a[i] < b[i]: return -1\n return 0\n\ndef ulong_pad_(a: list, size: int):\n # pad leading zeros to have `size` digits\n delta = size - len(a)\n if delta > 0:\n a.extend([0] * delta)\n\ndef ulong_unpad_(a: list):\n # remove leading zeros\n while len(a)>1 and a[-1]==0:\n a.pop()\n\ndef ulong_add(a: list, b: list) -> list:\n res = [0] * max(len(a), len(b))\n ulong_pad_(a, len(res))\n ulong_pad_(b, len(res))\n carry = 0\n for i in range(len(res)):\n carry += a[i] + b[i]\n res[i] = carry & PyLong_MASK\n carry >>= PyLong_SHIFT\n if carry > 0:\n res.append(carry)\n return res\n\ndef ulong_inc_(a: list):\n a[0] += 1\n for i in range(len(a)):\n if a[i] < PyLong_BASE: break\n a[i] -= PyLong_BASE\n if i+1 == len(a):\n a.append(1)\n else:\n a[i+1] += 1\n \n\ndef ulong_sub(a: list, b: list) -> list:\n # a >= b\n res = []\n borrow = 0\n for i in range(len(b)):\n tmp = a[i] - b[i] - borrow\n if tmp < 0:\n tmp += PyLong_BASE\n borrow = 1\n else:\n borrow = 0\n res.append(tmp)\n for i in range(len(b), len(a)):\n tmp = a[i] - borrow\n if tmp < 0:\n tmp += PyLong_BASE\n borrow = 1\n else:\n borrow = 0\n res.append(tmp)\n ulong_unpad_(res)\n return res\n\ndef ulong_divmodi(a: list, b: int):\n # b > 0\n res = []\n carry = 0\n for i in range(len(a)-1, -1, -1):\n carry <<= PyLong_SHIFT\n carry += a[i]\n res.append(carry // b)\n carry %= b\n res.reverse()\n ulong_unpad_(res)\n return res, carry\n\n\ndef ulong_divmod(a: list, b: list):\n\n if ulong_cmp(a, b) < 0:\n return [0], a\n\n if len(b) == 1:\n q, r = ulong_divmodi(a, b[0])\n r, _ = ulong_fromint(r)\n return q, r\n\n max = (len(a) - len(b)) * PyLong_SHIFT + \x5c\n (a[-1].bit_length() - b[-1].bit_length())\n\n low = [0]\n\n high = (max // PyLong_SHIFT) * [0] + \x5c\n [(2**(max % PyLong_SHIFT)) & PyLong_MASK]\n\n while ulong_cmp(low, high) < 0:\n ulong_inc_(high)\n mid, r = ulong_divmodi(ulong_add(low, high), 2)\n if ulong_cmp(a, ulong_mul(b, mid)) >= 0:\n low = mid\n else:\n high = ulong_sub(mid, [1])\n\n q = [0] * (len(a) - len(b) + 1)\n while ulong_cmp(a, ulong_mul(b, low)) >= 0:\n q = ulong_add(q, low)\n a = ulong_sub(a, ulong_mul(b, low))\n ulong_unpad_(q)\n return q, a\n\ndef ulong_floordivi(a: list, b: int):\n # b > 0\n return ulong_divmodi(a, b)[0]\n\ndef ulong_muli(a: list, b: int):\n # b >= 0\n res = [0] * len(a)\n carry = 0\n for i in range(len(a)):\n carry += a[i] * b\n res[i] = carry & PyLong_MASK\n carry >>= PyLong_SHIFT\n if carry > 0:\n res.append(carry)\n return res\n\ndef ulong_mul(a: list, b: list):\n N = len(a) + len(b)\n # use grade-school multiplication\n res = [0] * N\n for i in range(len(a)):\n carry = 0\n for j in range(len(b)):\n carry += res[i+j] + a[i] * b[j]\n res[i+j] = carry & PyLong_MASK\n carry >>= PyLong_SHIFT\n res[i+len(b)] = carry\n ulong_unpad_(res)\n return res\n\ndef ulong_powi(a: list, b: int):\n # b >= 0\n if b == 0: return [1]\n res = [1]\n while b:\n if b & 1:\n res = ulong_mul(res, a)\n a = ulong_mul(a, a)\n b >>= 1\n return res\n\ndef ulong_repr(x: list) -> str:\n res = []\n while len(x)>1 or x[0]>0: # non-zero\n x, r = ulong_divmodi(x, PyLong_DECIMAL_BASE)\n res.append(str(r).zfill(PyLong_DECIMAL_SHIFT))\n res.reverse()\n s = ''.join(res)\n if len(s) == 0: return '0'\n if len(s) > 1: s = s.lstrip('0')\n return s\n\ndef ulong_fromstr(s: str):\n if s[-1] == 'L':\n s = s[:-1]\n res, base = [0], [1]\n if s[0] == '-':\n sign = -1\n s = s[1:]\n else:\n sign = 1\n s = s[::-1]\n for c in s:\n c = ord(c) - 48\n assert 0 <= c <= 9\n res = ulong_add(res, ulong_muli(base, c))\n base = ulong_muli(base, 10)\n return res, sign\n\nclass long:\n def __init__(self, x):\n if type(x) is tuple:\n self.digits, self.sign = x\n elif type(x) is int:\n self.digits, self.sign = ulong_fromint(x)\n elif type(x) is float:\n self.digits, self.sign = ulong_fromint(int(x))\n elif type(x) is str:\n self.digits, self.sign = ulong_fromstr(x)\n elif type(x) is long:\n self.digits, self.sign = x.digits.copy(), x.sign\n else:\n raise TypeError('expected int or str')\n \n def __len__(self):\n return len(self.digits)\n\n def __add__(self, other):\n if type(other) is int:\n other = long(other)\n elif type(other) is not long:\n return NotImplemented\n if self.sign == other.sign:\n return long((ulong_add(self.digits, other.digits), self.sign))\n else:\n cmp = ulong_cmp(self.digits, other.digits)\n if cmp == 0:\n return long(0)\n if cmp > 0:\n return long((ulong_sub(self.digits, other.digits), self.sign))\n else:\n return long((ulong_sub(other.digits, self.digits), other.sign))\n \n def __radd__(self, other):\n return self.__add__(other)\n \n def __sub__(self, other):\n if type(other) is int:\n other = long(other)\n elif type(other) is not long:\n return NotImplemented\n if self.sign != other.sign:\n return long((ulong_add(self.digits, other.digits), self.sign))\n cmp = ulong_cmp(self.digits, other.digits)\n if cmp == 0:\n return long(0)\n if cmp > 0:\n return long((ulong_sub(self.digits, other.digits), self.sign))\n else:\n return long((ulong_sub(other.digits, self.digits), -other.sign))\n \n def __rsub__(self, other):\n if type(other) is int:\n other = long(other)\n elif type(other) is not long:\n return NotImplemented\n return other.__sub__(self)\n \n def __mul__(self, other):\n if type(other) is int:\n return long((\n ulong_muli(self.digits, abs(other)),\n self.sign * (1 if other >= 0 else -1)\n ))\n elif type(other) is long:\n return long((\n ulong_mul(self.digits, other.digits),\n self.sign * other.sign\n ))\n return NotImplemented\n \n def __rmul__(self, other):\n return self.__mul__(other)\n \n #######################################################\n def __divmod__(self, other):\n if type(other) is int:\n assert self.sign == 1 and other > 0\n q, r = ulong_divmodi(self.digits, other)\n return long((q, 1)), r\n if type(other) is long:\n assert self.sign == 1 and other.sign == 1\n q, r = ulong_divmod(self.digits, other.digits)\n assert len(other)>1 or other.digits[0]>0\n return long((q, 1)), long((r, 1))\n raise NotImplementedError\n\n def __floordiv__(self, other):\n return self.__divmod__(other)[0]\n\n def __mod__(self, other):\n return self.__divmod__(other)[1]\n\n def __pow__(self, other: int):\n assert type(other) is int and other >= 0\n if self.sign == -1 and other & 1:\n sign = -1\n else:\n sign = 1\n return long((ulong_powi(self.digits, other), sign))\n \n def __lshift__(self, other: int):\n assert type(other) is int and other >= 0\n x = self.digits.copy()\n q, r = divmod(other, PyLong_SHIFT)\n x = [0]*q + x\n for _ in range(r): x = ulong_muli(x, 2)\n return long((x, self.sign))\n \n def __rshift__(self, other: int):\n assert type(other) is int and other >= 0\n x = self.digits.copy()\n q, r = divmod(other, PyLong_SHIFT)\n x = x[q:]\n if not x: return long(0)\n for _ in range(r): x = ulong_floordivi(x, 2)\n return long((x, self.sign))\n \n def __neg__(self):\n return long((self.digits, -self.sign))\n \n def __cmp__(self, other):\n if type(other) is int:\n other = long(other)\n elif type(other) is not long:\n return NotImplemented\n if self.sign > other.sign:\n return 1\n elif self.sign < other.sign:\n return -1\n else:\n return ulong_cmp(self.digits, other.digits)\n \n def __eq__(self, other):\n return self.__cmp__(other) == 0\n def __lt__(self, other):\n return self.__cmp__(other) < 0\n def __le__(self, other):\n return self.__cmp__(other) <= 0\n def __gt__(self, other):\n return self.__cmp__(other) > 0\n def __ge__(self, other):\n return self.__cmp__(other) >= 0\n \n def __repr__(self):\n prefix = '-' if self.sign < 0 else ''\n return prefix + ulong_repr(self.digits) + 'L'\n"; + const char kPythonLibs__set[] = "class set:\n def __init__(self, iterable=None):\n iterable = iterable or []\n self._a = {}\n self.update(iterable)\n\n def add(self, elem):\n self._a[elem] = None\n \n def discard(self, elem):\n self._a.pop(elem, None)\n\n def remove(self, elem):\n del self._a[elem]\n \n def clear(self):\n self._a.clear()\n\n def update(self, other):\n for elem in other:\n self.add(elem)\n\n def __len__(self):\n return len(self._a)\n \n def copy(self):\n return set(self._a.keys())\n \n def __and__(self, other):\n return {elem for elem in self if elem in other}\n\n def __sub__(self, other):\n return {elem for elem in self if elem not in other}\n \n def __or__(self, other):\n ret = self.copy()\n ret.update(other)\n return ret\n\n def __xor__(self, other): \n _0 = self - other\n _1 = other - self\n return _0 | _1\n\n def union(self, other):\n return self | other\n\n def intersection(self, other):\n return self & other\n\n def difference(self, other):\n return self - other\n\n def symmetric_difference(self, other): \n return self ^ other\n \n def __eq__(self, other):\n if not isinstance(other, set):\n return NotImplemented\n return len(self ^ other) == 0\n\n def isdisjoint(self, other):\n return len(self & other) == 0\n \n def issubset(self, other):\n return len(self - other) == 0\n \n def issuperset(self, other):\n return len(other - self) == 0\n\n def __contains__(self, elem):\n return elem in self._a\n \n def __repr__(self):\n if len(self) == 0:\n return 'set()'\n return '{'+ ', '.join([repr(i) for i in self._a.keys()]) + '}'\n \n def __iter__(self):\n return iter(self._a.keys())"; + const char kPythonLibs_bisect[] = "\"\"\"Bisection algorithms.\"\"\"\n\ndef insort_right(a, x, lo=0, hi=None):\n \"\"\"Insert item x in list a, and keep it sorted assuming a is sorted.\n\n If x is already in a, insert it to the right of the rightmost x.\n\n Optional args lo (default 0) and hi (default len(a)) bound the\n slice of a to be searched.\n \"\"\"\n\n lo = bisect_right(a, x, lo, hi)\n a.insert(lo, x)\n\ndef bisect_right(a, x, lo=0, hi=None):\n \"\"\"Return the index where to insert item x in list a, assuming a is sorted.\n\n The return value i is such that all e in a[:i] have e <= x, and all e in\n a[i:] have e > x. So if x already appears in the list, a.insert(x) will\n insert just after the rightmost x already there.\n\n Optional args lo (default 0) and hi (default len(a)) bound the\n slice of a to be searched.\n \"\"\"\n\n if lo < 0:\n raise ValueError('lo must be non-negative')\n if hi is None:\n hi = len(a)\n while lo < hi:\n mid = (lo+hi)//2\n if x < a[mid]: hi = mid\n else: lo = mid+1\n return lo\n\ndef insort_left(a, x, lo=0, hi=None):\n \"\"\"Insert item x in list a, and keep it sorted assuming a is sorted.\n\n If x is already in a, insert it to the left of the leftmost x.\n\n Optional args lo (default 0) and hi (default len(a)) bound the\n slice of a to be searched.\n \"\"\"\n\n lo = bisect_left(a, x, lo, hi)\n a.insert(lo, x)\n\n\ndef bisect_left(a, x, lo=0, hi=None):\n \"\"\"Return the index where to insert item x in list a, assuming a is sorted.\n\n The return value i is such that all e in a[:i] have e < x, and all e in\n a[i:] have e >= x. So if x already appears in the list, a.insert(x) will\n insert just before the leftmost x already there.\n\n Optional args lo (default 0) and hi (default len(a)) bound the\n slice of a to be searched.\n \"\"\"\n\n if lo < 0:\n raise ValueError('lo must be non-negative')\n if hi is None:\n hi = len(a)\n while lo < hi:\n mid = (lo+hi)//2\n if a[mid] < x: lo = mid+1\n else: hi = mid\n return lo\n\n# Create aliases\nbisect = bisect_right\ninsort = insort_right\n"; + const char kPythonLibs_builtins[] = "from __builtins import next as __builtins_next\n\ndef all(iterable):\n for i in iterable:\n if not i:\n return False\n return True\n\ndef any(iterable):\n for i in iterable:\n if i:\n return True\n return False\n\ndef enumerate(iterable, start=0):\n n = start\n for elem in iterable:\n yield n, elem\n ++n\n\ndef sum(iterable):\n res = 0\n for i in iterable:\n res += i\n return res\n\ndef map(f, iterable):\n for i in iterable:\n yield f(i)\n\ndef filter(f, iterable):\n for i in iterable:\n if f(i):\n yield i\n\ndef zip(a, b):\n a = iter(a)\n b = iter(b)\n while True:\n ai = __builtins_next(a)\n bi = __builtins_next(b)\n if ai is StopIteration or bi is StopIteration:\n break\n yield ai, bi\n\ndef reversed(iterable):\n a = list(iterable)\n a.reverse()\n return a\n\ndef sorted(iterable, key=None, reverse=False):\n a = list(iterable)\n a.sort(key=key, reverse=reverse)\n return a\n\n##### str #####\ndef __format_string(self: str, *args, **kwargs) -> str:\n def tokenizeString(s: str):\n tokens = []\n L, R = 0,0\n \n mode = None\n curArg = 0\n # lookingForKword = False\n \n while(R a, b, c\n abc_to_rgb(a, b, c) --> r, g, b\n\nAll inputs and outputs are triples of floats in the range [0.0...1.0]\n(with the exception of I and Q, which covers a slightly larger range).\nInputs outside the valid range may cause exceptions or invalid outputs.\n\nSupported color systems:\nRGB: Red, Green, Blue components\nYIQ: Luminance, Chrominance (used by composite video signals)\nHLS: Hue, Luminance, Saturation\nHSV: Hue, Saturation, Value\n\"\"\"\n\n# References:\n# http://en.wikipedia.org/wiki/YIQ\n# http://en.wikipedia.org/wiki/HLS_color_space\n# http://en.wikipedia.org/wiki/HSV_color_space\n\n__all__ = [\"rgb_to_yiq\",\"yiq_to_rgb\",\"rgb_to_hls\",\"hls_to_rgb\",\n \"rgb_to_hsv\",\"hsv_to_rgb\"]\n\n# Some floating point constants\n\nONE_THIRD = 1.0/3.0\nONE_SIXTH = 1.0/6.0\nTWO_THIRD = 2.0/3.0\n\n# YIQ: used by composite video signals (linear combinations of RGB)\n# Y: perceived grey level (0.0 == black, 1.0 == white)\n# I, Q: color components\n#\n# There are a great many versions of the constants used in these formulae.\n# The ones in this library uses constants from the FCC version of NTSC.\n\ndef rgb_to_yiq(r, g, b):\n y = 0.30*r + 0.59*g + 0.11*b\n i = 0.74*(r-y) - 0.27*(b-y)\n q = 0.48*(r-y) + 0.41*(b-y)\n return (y, i, q)\n\ndef yiq_to_rgb(y, i, q):\n # r = y + (0.27*q + 0.41*i) / (0.74*0.41 + 0.27*0.48)\n # b = y + (0.74*q - 0.48*i) / (0.74*0.41 + 0.27*0.48)\n # g = y - (0.30*(r-y) + 0.11*(b-y)) / 0.59\n\n r = y + 0.9468822170900693*i + 0.6235565819861433*q\n g = y - 0.27478764629897834*i - 0.6356910791873801*q\n b = y - 1.1085450346420322*i + 1.7090069284064666*q\n\n if r < 0.0:\n r = 0.0\n if g < 0.0:\n g = 0.0\n if b < 0.0:\n b = 0.0\n if r > 1.0:\n r = 1.0\n if g > 1.0:\n g = 1.0\n if b > 1.0:\n b = 1.0\n return (r, g, b)\n\n\n# HLS: Hue, Luminance, Saturation\n# H: position in the spectrum\n# L: color lightness\n# S: color saturation\n\ndef rgb_to_hls(r, g, b):\n maxc = max(r, g, b)\n minc = min(r, g, b)\n sumc = (maxc+minc)\n rangec = (maxc-minc)\n l = sumc/2.0\n if minc == maxc:\n return 0.0, l, 0.0\n if l <= 0.5:\n s = rangec / sumc\n else:\n s = rangec / (2.0-maxc-minc) # Not always 2.0-sumc: gh-106498.\n rc = (maxc-r) / rangec\n gc = (maxc-g) / rangec\n bc = (maxc-b) / rangec\n if r == maxc:\n h = bc-gc\n elif g == maxc:\n h = 2.0+rc-bc\n else:\n h = 4.0+gc-rc\n # h = (h/6.0) % 1.0\n h = h / 6.0\n h = h - int(h)\n return h, l, s\n\ndef hls_to_rgb(h, l, s):\n if s == 0.0:\n return l, l, l\n if l <= 0.5:\n m2 = l * (1.0+s)\n else:\n m2 = l+s-(l*s)\n m1 = 2.0*l - m2\n return (_v(m1, m2, h+ONE_THIRD), _v(m1, m2, h), _v(m1, m2, h-ONE_THIRD))\n\ndef _v(m1, m2, hue):\n # hue = hue % 1.0\n hue = hue - int(hue)\n if hue < ONE_SIXTH:\n return m1 + (m2-m1)*hue*6.0\n if hue < 0.5:\n return m2\n if hue < TWO_THIRD:\n return m1 + (m2-m1)*(TWO_THIRD-hue)*6.0\n return m1\n\n\n# HSV: Hue, Saturation, Value\n# H: position in the spectrum\n# S: color saturation (\"purity\")\n# V: color brightness\n\ndef rgb_to_hsv(r, g, b):\n maxc = max(r, g, b)\n minc = min(r, g, b)\n rangec = (maxc-minc)\n v = maxc\n if minc == maxc:\n return 0.0, 0.0, v\n s = rangec / maxc\n rc = (maxc-r) / rangec\n gc = (maxc-g) / rangec\n bc = (maxc-b) / rangec\n if r == maxc:\n h = bc-gc\n elif g == maxc:\n h = 2.0+rc-bc\n else:\n h = 4.0+gc-rc\n # h = (h/6.0) % 1.0\n h = h / 6.0\n h = h - int(h)\n return h, s, v\n\ndef hsv_to_rgb(h, s, v):\n if s == 0.0:\n return v, v, v\n i = int(h*6.0) # XXX assume int() truncates!\n f = (h*6.0) - i\n p = v*(1.0 - s)\n q = v*(1.0 - s*f)\n t = v*(1.0 - s*(1.0-f))\n i = i%6\n if i == 0:\n return v, t, p\n if i == 1:\n return q, v, p\n if i == 2:\n return p, v, t\n if i == 3:\n return p, q, v\n if i == 4:\n return t, p, v\n if i == 5:\n return v, p, q\n # Cannot get here"; + const char kPythonLibs_datetime[] = "from time import localtime\n\nclass timedelta:\n def __init__(self, days=0, seconds=0):\n self.days = days\n self.seconds = seconds\n\n def __repr__(self):\n return f\"datetime.timedelta(days={self.days}, seconds={self.seconds})\"\n\n def __eq__(self, other: 'timedelta') -> bool:\n if type(other) is not timedelta:\n return NotImplemented\n return (self.days, self.seconds) == (other.days, other.seconds)\n\n def __lt__(self, other: 'timedelta') -> bool:\n if type(other) is not timedelta:\n return NotImplemented\n return (self.days, self.seconds) < (other.days, other.seconds)\n\n def __le__(self, other: 'timedelta') -> bool:\n if type(other) is not timedelta:\n return NotImplemented\n return (self.days, self.seconds) <= (other.days, other.seconds)\n\n def __gt__(self, other: 'timedelta') -> bool:\n if type(other) is not timedelta:\n return NotImplemented\n return (self.days, self.seconds) > (other.days, other.seconds)\n\n def __ge__(self, other: 'timedelta') -> bool:\n if type(other) is not timedelta:\n return NotImplemented\n return (self.days, self.seconds) >= (other.days, other.seconds)\n\n\nclass date:\n def __init__(self, year: int, month: int, day: int):\n self.year = year\n self.month = month\n self.day = day\n\n @staticmethod\n def today():\n t = localtime()\n return date(t.tm_year, t.tm_mon, t.tm_mday)\n\n def __eq__(self, other: 'date') -> bool:\n if type(other) is not date:\n return NotImplemented\n return (self.year, self.month, self.day) == (other.year, other.month, other.day)\n\n def __lt__(self, other: 'date') -> bool:\n if type(other) is not date:\n return NotImplemented\n return (self.year, self.month, self.day) < (other.year, other.month, other.day)\n\n def __le__(self, other: 'date') -> bool:\n if type(other) is not date:\n return NotImplemented\n return (self.year, self.month, self.day) <= (other.year, other.month, other.day)\n\n def __gt__(self, other: 'date') -> bool:\n if type(other) is not date:\n return NotImplemented\n return (self.year, self.month, self.day) > (other.year, other.month, other.day)\n\n def __ge__(self, other: 'date') -> bool:\n if type(other) is not date:\n return NotImplemented\n return (self.year, self.month, self.day) >= (other.year, other.month, other.day)\n\n def __str__(self):\n return f\"{self.year}-{self.month:02}-{self.day:02}\"\n\n def __repr__(self):\n return f\"datetime.date({self.year}, {self.month}, {self.day})\"\n\n\nclass datetime(date):\n def __init__(self, year: int, month: int, day: int, hour: int, minute: int, second: int):\n super().__init__(year, month, day)\n # Validate and set hour, minute, and second\n if not 0 <= hour <= 23:\n raise ValueError(\"Hour must be between 0 and 23\")\n self.hour = hour\n if not 0 <= minute <= 59:\n raise ValueError(\"Minute must be between 0 and 59\")\n self.minute = minute\n if not 0 <= second <= 59:\n raise ValueError(\"Second must be between 0 and 59\")\n self.second = second\n\n def date(self) -> date:\n return date(self.year, self.month, self.day)\n\n @staticmethod\n def now():\n t = localtime()\n tm_sec = t.tm_sec\n if tm_sec == 60:\n tm_sec = 59\n return datetime(t.tm_year, t.tm_mon, t.tm_mday, t.tm_hour, t.tm_min, tm_sec)\n\n def __str__(self):\n return f\"{self.year}-{self.month:02}-{self.day:02} {self.hour:02}:{self.minute:02}:{self.second:02}\"\n\n def __repr__(self):\n return f\"datetime.datetime({self.year}, {self.month}, {self.day}, {self.hour}, {self.minute}, {self.second})\"\n\n def __eq__(self, other) -> bool:\n if type(other) is not datetime:\n return NotImplemented\n return (self.year, self.month, self.day, self.hour, self.minute, self.second) ==\x5c\n (other.year, other.month, other.day,\n other.hour, other.minute, other.second)\n\n def __lt__(self, other) -> bool:\n if type(other) is not datetime:\n return NotImplemented\n return (self.year, self.month, self.day, self.hour, self.minute, self.second) <\x5c\n (other.year, other.month, other.day,\n other.hour, other.minute, other.second)\n\n def __le__(self, other) -> bool:\n if type(other) is not datetime:\n return NotImplemented\n return (self.year, self.month, self.day, self.hour, self.minute, self.second) <=\x5c\n (other.year, other.month, other.day,\n other.hour, other.minute, other.second)\n\n def __gt__(self, other) -> bool:\n if type(other) is not datetime:\n return NotImplemented\n return (self.year, self.month, self.day, self.hour, self.minute, self.second) >\x5c\n (other.year, other.month, other.day,\n other.hour, other.minute, other.second)\n\n def __ge__(self, other) -> bool:\n if type(other) is not datetime:\n return NotImplemented\n return (self.year, self.month, self.day, self.hour, self.minute, self.second) >=\x5c\n (other.year, other.month, other.day,\n other.hour, other.minute, other.second)\n\n def timestamp(self) -> float:\n raise NotImplementedError\n\n"; + const char kPythonLibs_functools[] = "from __builtins import next\n\nclass cache:\n def __init__(self, f):\n self.f = f\n self.cache = {}\n\n def __call__(self, *args):\n if args not in self.cache:\n self.cache[args] = self.f(*args)\n return self.cache[args]\n \ndef reduce(function, sequence, initial=...):\n it = iter(sequence)\n if initial is ...:\n value = next(it)\n if value is StopIteration:\n raise TypeError(\"reduce() of empty iterable with no initial value\")\n else:\n value = initial\n for element in it:\n value = function(value, element)\n return value\n\nclass partial:\n def __init__(self, f, *args, **kwargs):\n self.f = f\n if not callable(f):\n raise TypeError(\"the first argument must be callable\")\n self.args = args\n self.kwargs = kwargs\n\n def __call__(self, *args, **kwargs):\n kwargs.update(self.kwargs)\n return self.f(*self.args, *args, **kwargs)\n\n"; + const char kPythonLibs_heapq[] = "# Heap queue algorithm (a.k.a. priority queue)\ndef heappush(heap, item):\n \"\"\"Push item onto heap, maintaining the heap invariant.\"\"\"\n heap.append(item)\n _siftdown(heap, 0, len(heap)-1)\n\ndef heappop(heap):\n \"\"\"Pop the smallest item off the heap, maintaining the heap invariant.\"\"\"\n lastelt = heap.pop() # raises appropriate IndexError if heap is empty\n if heap:\n returnitem = heap[0]\n heap[0] = lastelt\n _siftup(heap, 0)\n return returnitem\n return lastelt\n\ndef heapreplace(heap, item):\n \"\"\"Pop and return the current smallest value, and add the new item.\n\n This is more efficient than heappop() followed by heappush(), and can be\n more appropriate when using a fixed-size heap. Note that the value\n returned may be larger than item! That constrains reasonable uses of\n this routine unless written as part of a conditional replacement:\n\n if item > heap[0]:\n item = heapreplace(heap, item)\n \"\"\"\n returnitem = heap[0] # raises appropriate IndexError if heap is empty\n heap[0] = item\n _siftup(heap, 0)\n return returnitem\n\ndef heappushpop(heap, item):\n \"\"\"Fast version of a heappush followed by a heappop.\"\"\"\n if heap and heap[0] < item:\n item, heap[0] = heap[0], item\n _siftup(heap, 0)\n return item\n\ndef heapify(x):\n \"\"\"Transform list into a heap, in-place, in O(len(x)) time.\"\"\"\n n = len(x)\n # Transform bottom-up. The largest index there's any point to looking at\n # is the largest with a child index in-range, so must have 2*i + 1 < n,\n # or i < (n-1)/2. If n is even = 2*j, this is (2*j-1)/2 = j-1/2 so\n # j-1 is the largest, which is n//2 - 1. If n is odd = 2*j+1, this is\n # (2*j+1-1)/2 = j so j-1 is the largest, and that's again n//2-1.\n for i in reversed(range(n//2)):\n _siftup(x, i)\n\n# 'heap' is a heap at all indices >= startpos, except possibly for pos. pos\n# is the index of a leaf with a possibly out-of-order value. Restore the\n# heap invariant.\ndef _siftdown(heap, startpos, pos):\n newitem = heap[pos]\n # Follow the path to the root, moving parents down until finding a place\n # newitem fits.\n while pos > startpos:\n parentpos = (pos - 1) >> 1\n parent = heap[parentpos]\n if newitem < parent:\n heap[pos] = parent\n pos = parentpos\n continue\n break\n heap[pos] = newitem\n\ndef _siftup(heap, pos):\n endpos = len(heap)\n startpos = pos\n newitem = heap[pos]\n # Bubble up the smaller child until hitting a leaf.\n childpos = 2*pos + 1 # leftmost child position\n while childpos < endpos:\n # Set childpos to index of smaller child.\n rightpos = childpos + 1\n if rightpos < endpos and not heap[childpos] < heap[rightpos]:\n childpos = rightpos\n # Move the smaller child up.\n heap[pos] = heap[childpos]\n pos = childpos\n childpos = 2*pos + 1\n # The leaf at pos is empty now. Put newitem there, and bubble it up\n # to its final resting place (by sifting its parents down).\n heap[pos] = newitem\n _siftdown(heap, startpos, pos)"; + const char kPythonLibs_itertools[] = "from __builtins import next\n\ndef zip_longest(a, b):\n a = iter(a)\n b = iter(b)\n while True:\n ai = next(a)\n bi = next(b)\n if ai is StopIteration and bi is StopIteration:\n break\n if ai is StopIteration:\n ai = None\n if bi is StopIteration:\n bi = None\n yield ai, bi\n"; + const char kPythonLibs_pickle[] = "import json\nfrom c import struct\nimport builtins\n\n_BASIC_TYPES = [int, float, str, bool, type(None)]\n_MOD_T_SEP = \"@\"\n\ndef _find_class(path: str):\n if _MOD_T_SEP not in path:\n return builtins.__dict__[path]\n modpath, name = path.split(_MOD_T_SEP)\n return __import__(modpath).__dict__[name]\n\nclass _Pickler:\n def __init__(self, obj) -> None:\n self.obj = obj\n self.raw_memo = {} # id -> int\n self.memo = [] # int -> object\n\n @staticmethod\n def _type_id(t: type):\n assert type(t) is type\n name = t.__name__\n mod = t.__module__\n if mod is not None:\n name = mod.__path__ + _MOD_T_SEP + name\n return name\n\n def wrap(self, o):\n o_t = type(o)\n if o_t in _BASIC_TYPES:\n return o\n if o_t is type:\n return [\"type\", self._type_id(o)]\n\n index = self.raw_memo.get(id(o), None)\n if index is not None:\n return [index]\n \n ret = []\n index = len(self.memo)\n self.memo.append(ret)\n self.raw_memo[id(o)] = index\n\n if o_t is tuple:\n ret.append(\"tuple\")\n ret.append([self.wrap(i) for i in o])\n return [index]\n if o_t is bytes:\n ret.append(\"bytes\")\n ret.append([o[j] for j in range(len(o))])\n return [index]\n if o_t is list:\n ret.append(\"list\")\n ret.append([self.wrap(i) for i in o])\n return [index]\n if o_t is dict:\n ret.append(\"dict\")\n ret.append([[self.wrap(k), self.wrap(v)] for k,v in o.items()])\n return [index]\n \n _0 = self._type_id(o_t)\n\n if getattr(o_t, '__struct__', False):\n ret.append(_0)\n ret.append(o.tostruct().hex())\n return [index]\n\n if hasattr(o, \"__getnewargs__\"):\n _1 = o.__getnewargs__() # an iterable\n _1 = [self.wrap(i) for i in _1]\n else:\n _1 = None\n\n if o.__dict__ is None:\n _2 = None\n else:\n _2 = {k: self.wrap(v) for k,v in o.__dict__.items()}\n\n ret.append(_0) # type id\n ret.append(_1) # newargs\n ret.append(_2) # state\n return [index]\n \n def run_pipe(self):\n o = self.wrap(self.obj)\n return [o, self.memo]\n\n\n\nclass _Unpickler:\n def __init__(self, obj, memo: list) -> None:\n self.obj = obj\n self.memo = memo\n self._unwrapped = [None] * len(memo)\n\n def tag(self, index, o):\n assert self._unwrapped[index] is None\n self._unwrapped[index] = o\n\n def unwrap(self, o, index=None):\n if type(o) in _BASIC_TYPES:\n return o\n assert type(o) is list\n\n if o[0] == \"type\":\n return _find_class(o[1])\n\n # reference\n if type(o[0]) is int:\n assert index is None # index should be None\n index = o[0]\n if self._unwrapped[index] is None:\n o = self.memo[index]\n assert type(o) is list\n assert type(o[0]) is str\n self.unwrap(o, index)\n assert self._unwrapped[index] is not None\n return self._unwrapped[index]\n \n # concrete reference type\n if o[0] == \"tuple\":\n ret = tuple([self.unwrap(i) for i in o[1]])\n self.tag(index, ret)\n return ret\n if o[0] == \"bytes\":\n ret = bytes(o[1])\n self.tag(index, ret)\n return ret\n if o[0] == \"list\":\n ret = []\n self.tag(index, ret)\n for i in o[1]:\n ret.append(self.unwrap(i))\n return ret\n if o[0] == \"dict\":\n ret = {}\n self.tag(index, ret)\n for k,v in o[1]:\n ret[self.unwrap(k)] = self.unwrap(v)\n return ret\n \n # generic object\n cls = _find_class(o[0])\n if getattr(cls, '__struct__', False):\n inst = cls.fromstruct(struct.fromhex(o[1]))\n self.tag(index, inst)\n return inst\n else:\n _, newargs, state = o\n # create uninitialized instance\n new_f = getattr(cls, \"__new__\")\n if newargs is not None:\n newargs = [self.unwrap(i) for i in newargs]\n inst = new_f(cls, *newargs)\n else:\n inst = new_f(cls)\n self.tag(index, inst)\n # restore state\n if state is not None:\n for k,v in state.items():\n setattr(inst, k, self.unwrap(v))\n return inst\n\n def run_pipe(self):\n return self.unwrap(self.obj)\n\n\ndef _wrap(o):\n return _Pickler(o).run_pipe()\n\ndef _unwrap(packed: list):\n return _Unpickler(*packed).run_pipe()\n\ndef dumps(o) -> bytes:\n o = _wrap(o)\n return json.dumps(o).encode()\n\ndef loads(b) -> object:\n assert type(b) is bytes\n o = json.loads(b.decode())\n return _unwrap(o)"; + const char kPythonLibs_this[] = "print(\"\"\"The Zen of Python, by Tim Peters\n\nBeautiful is better than ugly.\nExplicit is better than implicit.\nSimple is better than complex.\nComplex is better than complicated.\nFlat is better than nested.\nSparse is better than dense.\nReadability counts.\nSpecial cases aren't special enough to break the rules.\nAlthough practicality beats purity.\nErrors should never pass silently.\nUnless explicitly silenced.\nIn the face of ambiguity, refuse the temptation to guess.\nThere should be one-- and preferably only one --obvious way to do it.\nAlthough that way may not be obvious at first unless you're Dutch.\nNow is better than never.\nAlthough never is often better than *right* now.\nIf the implementation is hard to explain, it's a bad idea.\nIf the implementation is easy to explain, it may be a good idea.\nNamespaces are one honking great idea -- let's do more of those!\"\"\")"; + const char kPythonLibs_typing[] = "class _Placeholder:\n def __init__(self, *args, **kwargs):\n pass\n def __getitem__(self, *args):\n return self\n def __call__(self, *args, **kwargs):\n return self\n def __and__(self, other):\n return self\n def __or__(self, other):\n return self\n def __xor__(self, other):\n return self\n\n\n_PLACEHOLDER = _Placeholder()\n\nList = _PLACEHOLDER\nDict = _PLACEHOLDER\nTuple = _PLACEHOLDER\nSet = _PLACEHOLDER\nAny = _PLACEHOLDER\nUnion = _PLACEHOLDER\nOptional = _PLACEHOLDER\nCallable = _PLACEHOLDER\nType = _PLACEHOLDER\nProtocol = _PLACEHOLDER\n\nLiteral = _PLACEHOLDER\nLiteralString = _PLACEHOLDER\n\nIterable = _PLACEHOLDER\nGenerator = _PLACEHOLDER\n\nHashable = _PLACEHOLDER\n\nTypeVar = _PLACEHOLDER\nSelf = _PLACEHOLDER\n\nclass Generic:\n pass\n\nTYPE_CHECKING = False\n\n# decorators\noverload = lambda x: x\nfinal = lambda x: x\n"; } // namespace pkpy