xrfragment/test/generated/test.py

7591 lines
255 KiB
Python
Raw Normal View History

2023-03-09 19:58:08 +01:00
import sys
import math as python_lib_Math
import math as Math
from os import path as python_lib_os_Path
import inspect as python_lib_Inspect
import sys as python_lib_Sys
import functools as python_lib_Functools
try:
import msvcrt as python_lib_Msvcrt
except:
pass
import os as python_lib_Os
import random as python_lib_Random
import re as python_lib_Re
import subprocess as python_lib_Subprocess
try:
import termios as python_lib_Termios
except:
pass
import time as python_lib_Time
import timeit as python_lib_Timeit
import traceback as python_lib_Traceback
try:
import tty as python_lib_Tty
except:
pass
from datetime import datetime as python_lib_datetime_Datetime
from datetime import timedelta as python_lib_datetime_Timedelta
from datetime import tzinfo as python_lib_datetime_Tzinfo
from datetime import timezone as python_lib_datetime_Timezone
from io import IOBase as python_lib_io_IOBase
from io import BufferedIOBase as python_lib_io_BufferedIOBase
from io import RawIOBase as python_lib_io_RawIOBase
from io import FileIO as python_lib_io_FileIO
from io import TextIOBase as python_lib_io_TextIOBase
from io import StringIO as python_lib_io_StringIO
from time import struct_time as python_lib_time_StructTime
import urllib.parse as python_lib_urllib_Parse
class _hx_AnonObject:
_hx_disable_getattr = False
def __init__(self, fields):
self.__dict__ = fields
def __repr__(self):
return repr(self.__dict__)
def __contains__(self, item):
return item in self.__dict__
def __getitem__(self, item):
return self.__dict__[item]
def __getattr__(self, name):
if (self._hx_disable_getattr):
raise AttributeError('field does not exist')
else:
return None
def _hx_hasattr(self,field):
self._hx_disable_getattr = True
try:
getattr(self, field)
self._hx_disable_getattr = False
return True
except AttributeError:
self._hx_disable_getattr = False
return False
class Enum:
_hx_class_name = "Enum"
__slots__ = ("tag", "index", "params")
_hx_fields = ["tag", "index", "params"]
_hx_methods = ["__str__"]
def __init__(self,tag,index,params):
self.tag = tag
self.index = index
self.params = params
def __str__(self):
if (self.params is None):
return self.tag
else:
return self.tag + '(' + (', '.join(str(v) for v in self.params)) + ')'
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.tag = None
_hx_o.index = None
_hx_o.params = None
class Class: pass
class Date:
_hx_class_name = "Date"
__slots__ = ("date", "dateUTC")
_hx_fields = ["date", "dateUTC"]
_hx_methods = ["getTime", "getHours", "getMinutes", "getSeconds", "getFullYear", "getMonth", "getDate", "getDay", "getUTCHours", "getUTCMinutes", "getUTCSeconds", "getUTCFullYear", "getUTCMonth", "getUTCDate", "getUTCDay", "getTimezoneOffset", "toString"]
_hx_statics = ["now", "fromTime", "makeLocal", "UTC", "fromString"]
def __init__(self,year,month,day,hour,_hx_min,sec):
self.dateUTC = None
if (year < python_lib_datetime_Datetime.min.year):
year = python_lib_datetime_Datetime.min.year
if (day == 0):
day = 1
self.date = Date.makeLocal(python_lib_datetime_Datetime(year,(month + 1),day,hour,_hx_min,sec,0))
self.dateUTC = self.date.astimezone(python_lib_datetime_Timezone.utc)
def getTime(self):
return (self.date.timestamp() * 1000)
def getHours(self):
return self.date.hour
def getMinutes(self):
return self.date.minute
def getSeconds(self):
return self.date.second
def getFullYear(self):
return self.date.year
def getMonth(self):
return (self.date.month - 1)
def getDate(self):
return self.date.day
def getDay(self):
return HxOverrides.mod(self.date.isoweekday(), 7)
def getUTCHours(self):
return self.dateUTC.hour
def getUTCMinutes(self):
return self.dateUTC.minute
def getUTCSeconds(self):
return self.dateUTC.second
def getUTCFullYear(self):
return self.dateUTC.year
def getUTCMonth(self):
return (self.dateUTC.month - 1)
def getUTCDate(self):
return self.dateUTC.day
def getUTCDay(self):
return HxOverrides.mod(self.dateUTC.isoweekday(), 7)
def getTimezoneOffset(self):
x = (self.date.utcoffset() / python_lib_datetime_Timedelta(0,60))
tmp = None
try:
tmp = int(x)
except BaseException as _g:
None
tmp = None
return -tmp
def toString(self):
return self.date.strftime("%Y-%m-%d %H:%M:%S")
@staticmethod
def now():
d = Date(2000,0,1,0,0,0)
d.date = Date.makeLocal(python_lib_datetime_Datetime.now())
d.dateUTC = d.date.astimezone(python_lib_datetime_Timezone.utc)
return d
@staticmethod
def fromTime(t):
d = Date(2000,0,1,0,0,0)
d.date = Date.makeLocal(python_lib_datetime_Datetime.fromtimestamp((t / 1000.0)))
d.dateUTC = d.date.astimezone(python_lib_datetime_Timezone.utc)
return d
@staticmethod
def makeLocal(date):
try:
return date.astimezone()
except BaseException as _g:
None
tzinfo = python_lib_datetime_Datetime.now(python_lib_datetime_Timezone.utc).astimezone().tzinfo
return date.replace(**python__KwArgs_KwArgs_Impl_.fromT(_hx_AnonObject({'tzinfo': tzinfo})))
@staticmethod
def UTC(year,month,day,hour,_hx_min,sec):
return (python_lib_datetime_Datetime(year,(month + 1),day,hour,_hx_min,sec,0,python_lib_datetime_Timezone.utc).timestamp() * 1000)
@staticmethod
def fromString(s):
_g = len(s)
if (_g == 8):
k = s.split(":")
return Date.fromTime((((Std.parseInt((k[0] if 0 < len(k) else None)) * 3600000.) + ((Std.parseInt((k[1] if 1 < len(k) else None)) * 60000.))) + ((Std.parseInt((k[2] if 2 < len(k) else None)) * 1000.))))
elif (_g == 10):
k = s.split("-")
return Date(Std.parseInt((k[0] if 0 < len(k) else None)),(Std.parseInt((k[1] if 1 < len(k) else None)) - 1),Std.parseInt((k[2] if 2 < len(k) else None)),0,0,0)
elif (_g == 19):
k = s.split(" ")
_this = (k[0] if 0 < len(k) else None)
y = _this.split("-")
_this = (k[1] if 1 < len(k) else None)
t = _this.split(":")
return Date(Std.parseInt((y[0] if 0 < len(y) else None)),(Std.parseInt((y[1] if 1 < len(y) else None)) - 1),Std.parseInt((y[2] if 2 < len(y) else None)),Std.parseInt((t[0] if 0 < len(t) else None)),Std.parseInt((t[1] if 1 < len(t) else None)),Std.parseInt((t[2] if 2 < len(t) else None)))
else:
raise haxe_Exception.thrown(("Invalid date format : " + ("null" if s is None else s)))
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.date = None
_hx_o.dateUTC = None
class EReg:
_hx_class_name = "EReg"
__slots__ = ("pattern", "matchObj", "_hx_global")
_hx_fields = ["pattern", "matchObj", "global"]
_hx_methods = ["match", "matched", "matchedLeft", "matchedRight", "matchedPos", "matchSub", "split", "replace", "map"]
_hx_statics = ["escape"]
def __init__(self,r,opt):
self.matchObj = None
self._hx_global = False
options = 0
_g = 0
_g1 = len(opt)
while (_g < _g1):
i = _g
_g = (_g + 1)
c = (-1 if ((i >= len(opt))) else ord(opt[i]))
if (c == 109):
options = (options | python_lib_Re.M)
if (c == 105):
options = (options | python_lib_Re.I)
if (c == 115):
options = (options | python_lib_Re.S)
if (c == 117):
options = (options | python_lib_Re.U)
if (c == 103):
self._hx_global = True
self.pattern = python_lib_Re.compile(r,options)
def match(self,s):
self.matchObj = python_lib_Re.search(self.pattern,s)
return (self.matchObj is not None)
def matched(self,n):
return self.matchObj.group(n)
def matchedLeft(self):
return HxString.substr(self.matchObj.string,0,self.matchObj.start())
def matchedRight(self):
return HxString.substr(self.matchObj.string,self.matchObj.end(),None)
def matchedPos(self):
return _hx_AnonObject({'pos': self.matchObj.start(), 'len': (self.matchObj.end() - self.matchObj.start())})
def matchSub(self,s,pos,_hx_len = None):
if (_hx_len is None):
_hx_len = -1
if (_hx_len != -1):
self.matchObj = self.pattern.search(s,pos,(pos + _hx_len))
else:
self.matchObj = self.pattern.search(s,pos)
return (self.matchObj is not None)
def split(self,s):
if self._hx_global:
ret = []
lastEnd = 0
x = python_HaxeIterator(python_lib_Re.finditer(self.pattern,s))
while x.hasNext():
x1 = x.next()
x2 = HxString.substring(s,lastEnd,x1.start())
ret.append(x2)
lastEnd = x1.end()
x = HxString.substr(s,lastEnd,None)
ret.append(x)
return ret
else:
self.matchObj = python_lib_Re.search(self.pattern,s)
if (self.matchObj is None):
return [s]
else:
return [HxString.substring(s,0,self.matchObj.start()), HxString.substr(s,self.matchObj.end(),None)]
def replace(self,s,by):
_this = by.split("$$")
by = "_hx_#repl#__".join([python_Boot.toString1(x1,'') for x1 in _this])
def _hx_local_0(x):
res = by
g = x.groups()
_g = 0
_g1 = len(g)
while (_g < _g1):
i = _g
_g = (_g + 1)
gs = g[i]
if (gs is None):
continue
delimiter = ("$" + HxOverrides.stringOrNull(str((i + 1))))
_this = (list(res) if ((delimiter == "")) else res.split(delimiter))
res = gs.join([python_Boot.toString1(x1,'') for x1 in _this])
_this = res.split("_hx_#repl#__")
res = "$".join([python_Boot.toString1(x1,'') for x1 in _this])
return res
replace = _hx_local_0
return python_lib_Re.sub(self.pattern,replace,s,(0 if (self._hx_global) else 1))
def map(self,s,f):
buf_b = python_lib_io_StringIO()
pos = 0
right = s
cur = self
while (pos < len(s)):
if (self.matchObj is None):
self.matchObj = python_lib_Re.search(self.pattern,s)
else:
self.matchObj = self.matchObj.re.search(s,pos)
if (self.matchObj is None):
break
pos1 = self.matchObj.end()
curPos_pos = cur.matchObj.start()
curPos_len = (cur.matchObj.end() - cur.matchObj.start())
buf_b.write(Std.string(HxString.substr(HxString.substr(cur.matchObj.string,0,cur.matchObj.start()),pos,None)))
buf_b.write(Std.string(f(cur)))
right = HxString.substr(cur.matchObj.string,cur.matchObj.end(),None)
if (not self._hx_global):
buf_b.write(Std.string(right))
return buf_b.getvalue()
if (curPos_len == 0):
buf_b.write(Std.string(("" if (((pos1 < 0) or ((pos1 >= len(s))))) else s[pos1])))
right = HxString.substr(right,1,None)
pos = (pos1 + 1)
else:
pos = pos1
buf_b.write(Std.string(right))
return buf_b.getvalue()
@staticmethod
def escape(s):
return python_lib_Re.escape(s)
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.pattern = None
_hx_o.matchObj = None
_hx_o._hx_global = None
class _EnumValue_EnumValue_Impl_:
_hx_class_name = "_EnumValue.EnumValue_Impl_"
__slots__ = ()
_hx_statics = ["match"]
@staticmethod
def match(this1,pattern):
return False
class IntIterator:
_hx_class_name = "IntIterator"
__slots__ = ("min", "max")
_hx_fields = ["min", "max"]
_hx_methods = ["hasNext", "next"]
def __init__(self,_hx_min,_hx_max):
self.min = _hx_min
self.max = _hx_max
def hasNext(self):
return (self.min < self.max)
def next(self):
def _hx_local_3():
def _hx_local_2():
_hx_local_0 = self
_hx_local_1 = _hx_local_0.min
_hx_local_0.min = (_hx_local_1 + 1)
return _hx_local_1
return _hx_local_2()
return _hx_local_3()
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.min = None
_hx_o.max = None
class Reflect:
_hx_class_name = "Reflect"
__slots__ = ()
_hx_statics = ["hasField", "field", "setField", "getProperty", "setProperty", "callMethod", "fields", "isFunction", "compare", "isClosure", "compareMethods", "isObject", "isEnumValue", "deleteField", "copy", "makeVarArgs"]
@staticmethod
def hasField(o,field):
return python_Boot.hasField(o,field)
@staticmethod
def field(o,field):
return python_Boot.field(o,field)
@staticmethod
def setField(o,field,value):
setattr(o,(("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field)),value)
@staticmethod
def getProperty(o,field):
if (o is None):
return None
if (field in python_Boot.keywords):
field = ("_hx_" + field)
elif ((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95))):
field = ("_hx_" + field)
if isinstance(o,_hx_AnonObject):
return Reflect.field(o,field)
tmp = Reflect.field(o,("get_" + ("null" if field is None else field)))
if ((tmp is not None) and callable(tmp)):
return tmp()
else:
return Reflect.field(o,field)
@staticmethod
def setProperty(o,field,value):
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
if isinstance(o,_hx_AnonObject):
setattr(o,field1,value)
elif hasattr(o,("set_" + ("null" if field1 is None else field1))):
getattr(o,("set_" + ("null" if field1 is None else field1)))(value)
else:
setattr(o,field1,value)
@staticmethod
def callMethod(o,func,args):
if callable(func):
return func(*args)
else:
return None
@staticmethod
def fields(o):
return python_Boot.fields(o)
@staticmethod
def isFunction(f):
if (not ((python_lib_Inspect.isfunction(f) or python_lib_Inspect.ismethod(f)))):
return python_Boot.hasField(f,"func_code")
else:
return True
@staticmethod
def compare(a,b):
if ((a is None) and ((b is None))):
return 0
if (a is None):
return 1
elif (b is None):
return -1
elif HxOverrides.eq(a,b):
return 0
elif (a > b):
return 1
else:
return -1
@staticmethod
def isClosure(v):
return isinstance(v,python_internal_MethodClosure)
@staticmethod
def compareMethods(f1,f2):
if HxOverrides.eq(f1,f2):
return True
if (isinstance(f1,python_internal_MethodClosure) and isinstance(f2,python_internal_MethodClosure)):
m1 = f1
m2 = f2
if HxOverrides.eq(m1.obj,m2.obj):
return (m1.func == m2.func)
else:
return False
if ((not Reflect.isFunction(f1)) or (not Reflect.isFunction(f2))):
return False
return False
@staticmethod
def isObject(v):
_g = Type.typeof(v)
tmp = _g.index
if (tmp == 4):
return True
elif (tmp == 6):
_g1 = _g.params[0]
return True
else:
return False
@staticmethod
def isEnumValue(v):
if not HxOverrides.eq(v,Enum):
return isinstance(v,Enum)
else:
return False
@staticmethod
def deleteField(o,field):
if (field in python_Boot.keywords):
field = ("_hx_" + field)
elif ((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95))):
field = ("_hx_" + field)
if (not python_Boot.hasField(o,field)):
return False
o.__delattr__(field)
return True
@staticmethod
def copy(o):
if (o is None):
return None
o2 = _hx_AnonObject({})
_g = 0
_g1 = python_Boot.fields(o)
while (_g < len(_g1)):
f = (_g1[_g] if _g >= 0 and _g < len(_g1) else None)
_g = (_g + 1)
value = Reflect.field(o,f)
setattr(o2,(("_hx_" + f) if ((f in python_Boot.keywords)) else (("_hx_" + f) if (((((len(f) > 2) and ((ord(f[0]) == 95))) and ((ord(f[1]) == 95))) and ((ord(f[(len(f) - 1)]) != 95)))) else f)),value)
return o2
@staticmethod
def makeVarArgs(f):
def _hx_local_0(*v):
this1 = v
return f((list(this1) if ((not Std.isOfType(this1,list))) else this1))
return _hx_local_0
class Std:
_hx_class_name = "Std"
__slots__ = ()
_hx_statics = ["downcast", "instance", "isMetaType", "is", "isOfType", "string", "int", "parseInt", "shortenPossibleNumber", "parseFloat", "random"]
@staticmethod
def downcast(value,c):
try:
tmp = None
if (not isinstance(value,c)):
if c._hx_is_interface:
cls = c
loop = None
def _hx_local_1(intf):
f = (intf._hx_interfaces if (hasattr(intf,"_hx_interfaces")) else [])
if (f is not None):
_g = 0
while (_g < len(f)):
i = (f[_g] if _g >= 0 and _g < len(f) else None)
_g = (_g + 1)
if (i == cls):
return True
else:
l = loop(i)
if l:
return True
return False
else:
return False
loop = _hx_local_1
currentClass = value.__class__
result = False
while (currentClass is not None):
if loop(currentClass):
result = True
break
currentClass = python_Boot.getSuperClass(currentClass)
tmp = result
else:
tmp = False
else:
tmp = True
if tmp:
return value
else:
return None
except BaseException as _g:
None
return None
@staticmethod
def instance(value,c):
return Std.downcast(value,c)
@staticmethod
def isMetaType(v,t):
return ((type(v) == type) and (v == t))
@staticmethod
def _hx_is(v,t):
return Std.isOfType(v,t)
@staticmethod
def isOfType(v,t):
if ((v is None) and ((t is None))):
return False
if (t is None):
return False
if ((type(t) == type) and (t == Dynamic)):
return (v is not None)
isBool = isinstance(v,bool)
if (((type(t) == type) and (t == Bool)) and isBool):
return True
if ((((not isBool) and (not ((type(t) == type) and (t == Bool)))) and ((type(t) == type) and (t == Int))) and isinstance(v,int)):
return True
vIsFloat = isinstance(v,float)
tmp = None
tmp1 = None
if (((not isBool) and vIsFloat) and ((type(t) == type) and (t == Int))):
f = v
tmp1 = (((f != Math.POSITIVE_INFINITY) and ((f != Math.NEGATIVE_INFINITY))) and (not python_lib_Math.isnan(f)))
else:
tmp1 = False
if tmp1:
tmp1 = None
try:
tmp1 = int(v)
except BaseException as _g:
None
tmp1 = None
tmp = (v == tmp1)
else:
tmp = False
if ((tmp and ((v <= 2147483647))) and ((v >= -2147483648))):
return True
if (((not isBool) and ((type(t) == type) and (t == Float))) and isinstance(v,(float, int))):
return True
if ((type(t) == type) and (t == str)):
return isinstance(v,str)
isEnumType = ((type(t) == type) and (t == Enum))
if ((isEnumType and python_lib_Inspect.isclass(v)) and hasattr(v,"_hx_constructs")):
return True
if isEnumType:
return False
isClassType = ((type(t) == type) and (t == Class))
if ((((isClassType and (not isinstance(v,Enum))) and python_lib_Inspect.isclass(v)) and hasattr(v,"_hx_class_name")) and (not hasattr(v,"_hx_constructs"))):
return True
if isClassType:
return False
tmp = None
try:
tmp = isinstance(v,t)
except BaseException as _g:
None
tmp = False
if tmp:
return True
if python_lib_Inspect.isclass(t):
cls = t
loop = None
def _hx_local_1(intf):
f = (intf._hx_interfaces if (hasattr(intf,"_hx_interfaces")) else [])
if (f is not None):
_g = 0
while (_g < len(f)):
i = (f[_g] if _g >= 0 and _g < len(f) else None)
_g = (_g + 1)
if (i == cls):
return True
else:
l = loop(i)
if l:
return True
return False
else:
return False
loop = _hx_local_1
currentClass = v.__class__
result = False
while (currentClass is not None):
if loop(currentClass):
result = True
break
currentClass = python_Boot.getSuperClass(currentClass)
return result
else:
return False
@staticmethod
def string(s):
return python_Boot.toString1(s,"")
@staticmethod
def int(x):
try:
return int(x)
except BaseException as _g:
None
return None
@staticmethod
def parseInt(x):
if (x is None):
return None
try:
return int(x)
except BaseException as _g:
None
base = 10
_hx_len = len(x)
foundCount = 0
sign = 0
firstDigitIndex = 0
lastDigitIndex = -1
previous = 0
_g = 0
_g1 = _hx_len
while (_g < _g1):
i = _g
_g = (_g + 1)
c = (-1 if ((i >= len(x))) else ord(x[i]))
if (((c > 8) and ((c < 14))) or ((c == 32))):
if (foundCount > 0):
return None
continue
else:
c1 = c
if (c1 == 43):
if (foundCount == 0):
sign = 1
elif (not (((48 <= c) and ((c <= 57))))):
if (not (((base == 16) and ((((97 <= c) and ((c <= 122))) or (((65 <= c) and ((c <= 90))))))))):
break
elif (c1 == 45):
if (foundCount == 0):
sign = -1
elif (not (((48 <= c) and ((c <= 57))))):
if (not (((base == 16) and ((((97 <= c) and ((c <= 122))) or (((65 <= c) and ((c <= 90))))))))):
break
elif (c1 == 48):
if (not (((foundCount == 0) or (((foundCount == 1) and ((sign != 0))))))):
if (not (((48 <= c) and ((c <= 57))))):
if (not (((base == 16) and ((((97 <= c) and ((c <= 122))) or (((65 <= c) and ((c <= 90))))))))):
break
elif ((c1 == 120) or ((c1 == 88))):
if ((previous == 48) and ((((foundCount == 1) and ((sign == 0))) or (((foundCount == 2) and ((sign != 0))))))):
base = 16
elif (not (((48 <= c) and ((c <= 57))))):
if (not (((base == 16) and ((((97 <= c) and ((c <= 122))) or (((65 <= c) and ((c <= 90))))))))):
break
elif (not (((48 <= c) and ((c <= 57))))):
if (not (((base == 16) and ((((97 <= c) and ((c <= 122))) or (((65 <= c) and ((c <= 90))))))))):
break
if (((foundCount == 0) and ((sign == 0))) or (((foundCount == 1) and ((sign != 0))))):
firstDigitIndex = i
foundCount = (foundCount + 1)
lastDigitIndex = i
previous = c
if (firstDigitIndex <= lastDigitIndex):
digits = HxString.substring(x,firstDigitIndex,(lastDigitIndex + 1))
try:
return (((-1 if ((sign == -1)) else 1)) * int(digits,base))
except BaseException as _g:
return None
return None
@staticmethod
def shortenPossibleNumber(x):
r = ""
_g = 0
_g1 = len(x)
while (_g < _g1):
i = _g
_g = (_g + 1)
c = ("" if (((i < 0) or ((i >= len(x))))) else x[i])
_g2 = HxString.charCodeAt(c,0)
if (_g2 is None):
break
else:
_g3 = _g2
if (((((((((((_g3 == 57) or ((_g3 == 56))) or ((_g3 == 55))) or ((_g3 == 54))) or ((_g3 == 53))) or ((_g3 == 52))) or ((_g3 == 51))) or ((_g3 == 50))) or ((_g3 == 49))) or ((_g3 == 48))) or ((_g3 == 46))):
r = (("null" if r is None else r) + ("null" if c is None else c))
else:
break
return r
@staticmethod
def parseFloat(x):
try:
return float(x)
except BaseException as _g:
None
if (x is not None):
r1 = Std.shortenPossibleNumber(x)
if (r1 != x):
return Std.parseFloat(r1)
return Math.NaN
@staticmethod
def random(x):
if (x <= 0):
return 0
else:
return int((python_lib_Random.random() * x))
class Float: pass
class Int: pass
class Bool: pass
class Dynamic: pass
class StringBuf:
_hx_class_name = "StringBuf"
__slots__ = ("b",)
_hx_fields = ["b"]
_hx_methods = ["get_length", "add", "add1", "addChar", "addSub", "toString"]
def __init__(self):
self.b = python_lib_io_StringIO()
def get_length(self):
pos = self.b.tell()
self.b.seek(0,2)
_hx_len = self.b.tell()
self.b.seek(pos,0)
return _hx_len
def add(self,x):
s = Std.string(x)
self.b.write(s)
def add1(self,s):
self.b.write(s)
def addChar(self,c):
s = "".join(map(chr,[c]))
self.b.write(s)
def addSub(self,s,pos,_hx_len = None):
s1 = (HxString.substr(s,pos,None) if ((_hx_len is None)) else HxString.substr(s,pos,_hx_len))
self.b.write(s1)
def toString(self):
return self.b.getvalue()
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.b = None
class haxe_SysTools:
_hx_class_name = "haxe.SysTools"
__slots__ = ()
_hx_statics = ["winMetaCharacters", "quoteUnixArg", "quoteWinArg"]
@staticmethod
def quoteUnixArg(argument):
if (argument == ""):
return "''"
_this = EReg("[^a-zA-Z0-9_@%+=:,./-]","")
_this.matchObj = python_lib_Re.search(_this.pattern,argument)
if (_this.matchObj is None):
return argument
return (("'" + HxOverrides.stringOrNull(StringTools.replace(argument,"'","'\"'\"'"))) + "'")
@staticmethod
def quoteWinArg(argument,escapeMetaCharacters):
_this = EReg("^[^ \t\\\\\"]+$","")
_this.matchObj = python_lib_Re.search(_this.pattern,argument)
if (_this.matchObj is None):
result_b = python_lib_io_StringIO()
needquote = None
startIndex = None
if (((argument.find(" ") if ((startIndex is None)) else HxString.indexOfImpl(argument," ",startIndex))) == -1):
startIndex = None
needquote = (((argument.find("\t") if ((startIndex is None)) else HxString.indexOfImpl(argument,"\t",startIndex))) != -1)
else:
needquote = True
needquote1 = (needquote or ((argument == "")))
if needquote1:
result_b.write("\"")
bs_buf = StringBuf()
_g = 0
_g1 = len(argument)
while (_g < _g1):
i = _g
_g = (_g + 1)
_g2 = HxString.charCodeAt(argument,i)
if (_g2 is None):
c = _g2
if (bs_buf.get_length() > 0):
result_b.write(Std.string(bs_buf.b.getvalue()))
bs_buf = StringBuf()
result_b.write("".join(map(chr,[c])))
else:
_g3 = _g2
if (_g3 == 34):
bs = bs_buf.b.getvalue()
result_b.write(Std.string(bs))
result_b.write(Std.string(bs))
bs_buf = StringBuf()
result_b.write("\\\"")
elif (_g3 == 92):
bs_buf.b.write("\\")
else:
c1 = _g2
if (bs_buf.get_length() > 0):
result_b.write(Std.string(bs_buf.b.getvalue()))
bs_buf = StringBuf()
result_b.write("".join(map(chr,[c1])))
result_b.write(Std.string(bs_buf.b.getvalue()))
if needquote1:
result_b.write(Std.string(bs_buf.b.getvalue()))
result_b.write("\"")
argument = result_b.getvalue()
if escapeMetaCharacters:
result_b = python_lib_io_StringIO()
_g = 0
_g1 = len(argument)
while (_g < _g1):
i = _g
_g = (_g + 1)
c = HxString.charCodeAt(argument,i)
if (python_internal_ArrayImpl.indexOf(haxe_SysTools.winMetaCharacters,c,None) >= 0):
result_b.write("".join(map(chr,[94])))
result_b.write("".join(map(chr,[c])))
return result_b.getvalue()
else:
return argument
class StringTools:
_hx_class_name = "StringTools"
__slots__ = ()
_hx_statics = ["urlEncode", "urlDecode", "htmlEscape", "htmlUnescape", "contains", "startsWith", "endsWith", "isSpace", "ltrim", "rtrim", "trim", "lpad", "rpad", "replace", "hex", "fastCodeAt", "unsafeCodeAt", "iterator", "keyValueIterator", "isEof", "quoteUnixArg", "winMetaCharacters", "quoteWinArg"]
@staticmethod
def urlEncode(s):
return python_lib_urllib_Parse.quote(s,"")
@staticmethod
def urlDecode(s):
return python_lib_urllib_Parse.unquote(s)
@staticmethod
def htmlEscape(s,quotes = None):
buf_b = python_lib_io_StringIO()
_g_offset = 0
_g_s = s
while (_g_offset < len(_g_s)):
index = _g_offset
_g_offset = (_g_offset + 1)
code = ord(_g_s[index])
code1 = code
if (code1 == 34):
if quotes:
buf_b.write("&quot;")
else:
buf_b.write("".join(map(chr,[code])))
elif (code1 == 38):
buf_b.write("&amp;")
elif (code1 == 39):
if quotes:
buf_b.write("&#039;")
else:
buf_b.write("".join(map(chr,[code])))
elif (code1 == 60):
buf_b.write("&lt;")
elif (code1 == 62):
buf_b.write("&gt;")
else:
buf_b.write("".join(map(chr,[code])))
return buf_b.getvalue()
@staticmethod
def htmlUnescape(s):
_this = s.split("&gt;")
_this1 = ">".join([python_Boot.toString1(x1,'') for x1 in _this])
_this = _this1.split("&lt;")
_this1 = "<".join([python_Boot.toString1(x1,'') for x1 in _this])
_this = _this1.split("&quot;")
_this1 = "\"".join([python_Boot.toString1(x1,'') for x1 in _this])
_this = _this1.split("&#039;")
_this1 = "'".join([python_Boot.toString1(x1,'') for x1 in _this])
_this = _this1.split("&amp;")
return "&".join([python_Boot.toString1(x1,'') for x1 in _this])
@staticmethod
def contains(s,value):
startIndex = None
return (((s.find(value) if ((startIndex is None)) else HxString.indexOfImpl(s,value,startIndex))) != -1)
@staticmethod
def startsWith(s,start):
return s.startswith(start)
@staticmethod
def endsWith(s,end):
return s.endswith(end)
@staticmethod
def isSpace(s,pos):
if (((len(s) == 0) or ((pos < 0))) or ((pos >= len(s)))):
return False
c = HxString.charCodeAt(s,pos)
if (not (((c > 8) and ((c < 14))))):
return (c == 32)
else:
return True
@staticmethod
def ltrim(s):
l = len(s)
r = 0
while ((r < l) and StringTools.isSpace(s,r)):
r = (r + 1)
if (r > 0):
return HxString.substr(s,r,(l - r))
else:
return s
@staticmethod
def rtrim(s):
l = len(s)
r = 0
while ((r < l) and StringTools.isSpace(s,((l - r) - 1))):
r = (r + 1)
if (r > 0):
return HxString.substr(s,0,(l - r))
else:
return s
@staticmethod
def trim(s):
return StringTools.ltrim(StringTools.rtrim(s))
@staticmethod
def lpad(s,c,l):
if (len(c) <= 0):
return s
buf = StringBuf()
l = (l - len(s))
while (buf.get_length() < l):
s1 = Std.string(c)
buf.b.write(s1)
s1 = Std.string(s)
buf.b.write(s1)
return buf.b.getvalue()
@staticmethod
def rpad(s,c,l):
if (len(c) <= 0):
return s
buf = StringBuf()
s1 = Std.string(s)
buf.b.write(s1)
while (buf.get_length() < l):
s = Std.string(c)
buf.b.write(s)
return buf.b.getvalue()
@staticmethod
def replace(s,sub,by):
_this = (list(s) if ((sub == "")) else s.split(sub))
return by.join([python_Boot.toString1(x1,'') for x1 in _this])
@staticmethod
def hex(n,digits = None):
s = ""
hexChars = "0123456789ABCDEF"
while True:
index = (n & 15)
s = (HxOverrides.stringOrNull((("" if (((index < 0) or ((index >= len(hexChars))))) else hexChars[index]))) + ("null" if s is None else s))
n = HxOverrides.rshift(n, 4)
if (not ((n > 0))):
break
if ((digits is not None) and ((len(s) < digits))):
diff = (digits - len(s))
_g = 0
_g1 = diff
while (_g < _g1):
_ = _g
_g = (_g + 1)
s = ("0" + ("null" if s is None else s))
return s
@staticmethod
def fastCodeAt(s,index):
if (index >= len(s)):
return -1
else:
return ord(s[index])
@staticmethod
def unsafeCodeAt(s,index):
return ord(s[index])
@staticmethod
def iterator(s):
return haxe_iterators_StringIterator(s)
@staticmethod
def keyValueIterator(s):
return haxe_iterators_StringKeyValueIterator(s)
@staticmethod
def isEof(c):
return (c == -1)
@staticmethod
def quoteUnixArg(argument):
if (argument == ""):
return "''"
else:
_this = EReg("[^a-zA-Z0-9_@%+=:,./-]","")
_this.matchObj = python_lib_Re.search(_this.pattern,argument)
if (_this.matchObj is None):
return argument
else:
return (("'" + HxOverrides.stringOrNull(StringTools.replace(argument,"'","'\"'\"'"))) + "'")
@staticmethod
def quoteWinArg(argument,escapeMetaCharacters):
argument1 = argument
_this = EReg("^[^ \t\\\\\"]+$","")
_this.matchObj = python_lib_Re.search(_this.pattern,argument1)
if (_this.matchObj is None):
result_b = python_lib_io_StringIO()
needquote = None
startIndex = None
if (((argument1.find(" ") if ((startIndex is None)) else HxString.indexOfImpl(argument1," ",startIndex))) == -1):
startIndex = None
needquote = (((argument1.find("\t") if ((startIndex is None)) else HxString.indexOfImpl(argument1,"\t",startIndex))) != -1)
else:
needquote = True
needquote1 = (needquote or ((argument1 == "")))
if needquote1:
result_b.write("\"")
bs_buf = StringBuf()
_g = 0
_g1 = len(argument1)
while (_g < _g1):
i = _g
_g = (_g + 1)
_g2 = HxString.charCodeAt(argument1,i)
if (_g2 is None):
c = _g2
if (bs_buf.get_length() > 0):
result_b.write(Std.string(bs_buf.b.getvalue()))
bs_buf = StringBuf()
result_b.write("".join(map(chr,[c])))
else:
_g3 = _g2
if (_g3 == 34):
bs = bs_buf.b.getvalue()
result_b.write(Std.string(bs))
result_b.write(Std.string(bs))
bs_buf = StringBuf()
result_b.write("\\\"")
elif (_g3 == 92):
bs_buf.b.write("\\")
else:
c1 = _g2
if (bs_buf.get_length() > 0):
result_b.write(Std.string(bs_buf.b.getvalue()))
bs_buf = StringBuf()
result_b.write("".join(map(chr,[c1])))
result_b.write(Std.string(bs_buf.b.getvalue()))
if needquote1:
result_b.write(Std.string(bs_buf.b.getvalue()))
result_b.write("\"")
argument1 = result_b.getvalue()
if escapeMetaCharacters:
result_b = python_lib_io_StringIO()
_g = 0
_g1 = len(argument1)
while (_g < _g1):
i = _g
_g = (_g + 1)
c = HxString.charCodeAt(argument1,i)
if (python_internal_ArrayImpl.indexOf(haxe_SysTools.winMetaCharacters,c,None) >= 0):
result_b.write("".join(map(chr,[94])))
result_b.write("".join(map(chr,[c])))
return result_b.getvalue()
else:
return argument1
class sys_FileSystem:
_hx_class_name = "sys.FileSystem"
__slots__ = ()
_hx_statics = ["exists", "stat", "rename", "fullPath", "absolutePath", "isDirectory", "createDirectory", "deleteFile", "deleteDirectory", "readDirectory"]
@staticmethod
def exists(path):
return python_lib_os_Path.exists(path)
@staticmethod
def stat(path):
s = python_lib_Os.stat(path)
return _hx_AnonObject({'gid': s.st_gid, 'uid': s.st_uid, 'atime': Date.fromTime((1000 * s.st_atime)), 'mtime': Date.fromTime((1000 * s.st_mtime)), 'ctime': Date.fromTime((1000 * s.st_ctime)), 'size': s.st_size, 'dev': s.st_dev, 'ino': s.st_ino, 'nlink': s.st_nlink, 'rdev': getattr(s,"st_rdev",0), 'mode': s.st_mode})
@staticmethod
def rename(path,newPath):
python_lib_Os.rename(path,newPath)
@staticmethod
def fullPath(relPath):
return python_lib_os_Path.realpath(relPath)
@staticmethod
def absolutePath(relPath):
if haxe_io_Path.isAbsolute(relPath):
return relPath
return haxe_io_Path.join([Sys.getCwd(), relPath])
@staticmethod
def isDirectory(path):
return python_lib_os_Path.isdir(path)
@staticmethod
def createDirectory(path):
python_lib_Os.makedirs(path,511,True)
@staticmethod
def deleteFile(path):
python_lib_Os.remove(path)
@staticmethod
def deleteDirectory(path):
python_lib_Os.rmdir(path)
@staticmethod
def readDirectory(path):
return python_lib_Os.listdir(path)
class Sys:
_hx_class_name = "Sys"
__slots__ = ()
_hx_statics = ["environ", "get_environ", "time", "exit", "print", "println", "args", "getEnv", "putEnv", "environment", "sleep", "setTimeLocale", "getCwd", "setCwd", "systemName", "command", "cpuTime", "executablePath", "_programPath", "programPath", "getChar", "stdin", "stdout", "stderr"]
environ = None
@staticmethod
def get_environ():
_g = Sys.environ
if (_g is None):
environ = haxe_ds_StringMap()
env = python_lib_Os.environ
key = python_HaxeIterator(iter(env.keys()))
while key.hasNext():
key1 = key.next()
value = env.get(key1,None)
environ.h[key1] = value
def _hx_local_1():
def _hx_local_0():
Sys.environ = environ
return Sys.environ
return _hx_local_0()
return _hx_local_1()
else:
env = _g
return env
@staticmethod
def time():
return python_lib_Time.time()
@staticmethod
def exit(code):
python_lib_Sys.exit(code)
@staticmethod
def print(v):
python_Lib.printString(Std.string(v))
@staticmethod
def println(v):
_hx_str = Std.string(v)
python_Lib.printString((("" + ("null" if _hx_str is None else _hx_str)) + HxOverrides.stringOrNull(python_Lib.lineEnd)))
@staticmethod
def args():
argv = python_lib_Sys.argv
return argv[1:None]
@staticmethod
def getEnv(s):
return Sys.get_environ().h.get(s,None)
@staticmethod
def putEnv(s,v):
python_lib_Os.putenv(s,v)
Sys.get_environ().h[s] = v
@staticmethod
def environment():
return Sys.get_environ()
@staticmethod
def sleep(seconds):
python_lib_Time.sleep(seconds)
@staticmethod
def setTimeLocale(loc):
return False
@staticmethod
def getCwd():
return python_lib_Os.getcwd()
@staticmethod
def setCwd(s):
python_lib_Os.chdir(s)
@staticmethod
def systemName():
_g = python_lib_Sys.platform
x = _g
if x.startswith("linux"):
return "Linux"
else:
_g1 = _g
_hx_local_0 = len(_g1)
if (_hx_local_0 == 5):
if (_g1 == "win32"):
return "Windows"
else:
raise haxe_Exception.thrown("not supported platform")
elif (_hx_local_0 == 6):
if (_g1 == "cygwin"):
return "Windows"
elif (_g1 == "darwin"):
return "Mac"
else:
raise haxe_Exception.thrown("not supported platform")
else:
raise haxe_Exception.thrown("not supported platform")
@staticmethod
def command(cmd,args = None):
if (args is None):
return python_lib_Subprocess.call(cmd,**python__KwArgs_KwArgs_Impl_.fromT(_hx_AnonObject({'shell': True})))
else:
return python_lib_Subprocess.call(([cmd] + args))
@staticmethod
def cpuTime():
return python_lib_Timeit.default_timer()
@staticmethod
def executablePath():
return python_internal_ArrayImpl._get(python_lib_Sys.argv, 0)
@staticmethod
def programPath():
return Sys._programPath
@staticmethod
def getChar(echo):
ch = None
_g = Sys.systemName()
_g1 = _g
_hx_local_0 = len(_g1)
if (_hx_local_0 == 5):
if (_g1 == "Linux"):
fd = python_lib_Sys.stdin.fileno()
old = python_lib_Termios.tcgetattr(fd)
fileNo = fd
when = python_lib_Termios.TCSADRAIN
settings = old
def _hx_local_1():
python_lib_Termios.tcsetattr(fileNo,when,settings)
restore = _hx_local_1
try:
python_lib_Tty.setraw(fd)
x = python_lib_Sys.stdin.read(1)
restore()
ch = HxString.charCodeAt(x,0)
except BaseException as _g1:
None
e = haxe_Exception.caught(_g1).unwrap()
restore()
raise haxe_Exception.thrown(e)
else:
x = _g
raise haxe_Exception.thrown((("platform " + ("null" if x is None else x)) + " not supported"))
elif (_hx_local_0 == 3):
if (_g1 == "Mac"):
fd = python_lib_Sys.stdin.fileno()
old = python_lib_Termios.tcgetattr(fd)
fileNo = fd
when = python_lib_Termios.TCSADRAIN
settings = old
def _hx_local_2():
python_lib_Termios.tcsetattr(fileNo,when,settings)
restore = _hx_local_2
try:
python_lib_Tty.setraw(fd)
x = python_lib_Sys.stdin.read(1)
restore()
ch = HxString.charCodeAt(x,0)
except BaseException as _g1:
None
e = haxe_Exception.caught(_g1).unwrap()
restore()
raise haxe_Exception.thrown(e)
else:
x = _g
raise haxe_Exception.thrown((("platform " + ("null" if x is None else x)) + " not supported"))
elif (_hx_local_0 == 7):
if (_g1 == "Windows"):
ch = HxString.charCodeAt(python_lib_Msvcrt.getwch(),0)
else:
x = _g
raise haxe_Exception.thrown((("platform " + ("null" if x is None else x)) + " not supported"))
else:
x = _g
raise haxe_Exception.thrown((("platform " + ("null" if x is None else x)) + " not supported"))
if echo:
python_Lib.printString(Std.string("".join(map(chr,[ch]))))
return ch
@staticmethod
def stdin():
return python_io_IoTools.createFileInputFromText(python_lib_Sys.stdin)
@staticmethod
def stdout():
return python_io_IoTools.createFileOutputFromText(python_lib_Sys.stdout)
@staticmethod
def stderr():
return python_io_IoTools.createFileOutputFromText(python_lib_Sys.stderr)
class Test:
_hx_class_name = "Test"
__slots__ = ()
_hx_statics = ["main"]
@staticmethod
def main():
haxe_Log.trace("starting tests",_hx_AnonObject({'fileName': "src/Test.hx", 'lineNumber': 6, 'className': "Test", 'methodName': "main"}))
Query = xrfragment_Query
haxe_Log.trace(xrfragment_Query("foo or bar").toObject(),_hx_AnonObject({'fileName': "src/Test.hx", 'lineNumber': 10, 'className': "Test", 'methodName': "main"}))
haxe_Log.trace(HxOverrides.arrayGet(Reflect.field(xrfragment_Query("class:fopoer or bar foo:bar").toObject(),"or"), 0),_hx_AnonObject({'fileName': "src/Test.hx", 'lineNumber': 11, 'className': "Test", 'methodName': "main"}))
haxe_Log.trace(HxOverrides.arrayGet(Reflect.field(xrfragment_Query("-skybox class:foo").toObject(),"or"), 0),_hx_AnonObject({'fileName': "src/Test.hx", 'lineNumber': 12, 'className': "Test", 'methodName': "main"}))
haxe_Log.trace(HxOverrides.arrayGet(Reflect.field(xrfragment_Query("foo/flop moo or bar").toObject(),"or"), 0),_hx_AnonObject({'fileName': "src/Test.hx", 'lineNumber': 13, 'className': "Test", 'methodName': "main"}))
haxe_Log.trace(HxOverrides.arrayGet(Reflect.field(xrfragment_Query("-foo/flop moo or bar").toObject(),"or"), 0),_hx_AnonObject({'fileName': "src/Test.hx", 'lineNumber': 14, 'className': "Test", 'methodName': "main"}))
haxe_Log.trace(HxOverrides.arrayGet(Reflect.field(xrfragment_Query("price:>4 moo or bar").toObject(),"or"), 0),_hx_AnonObject({'fileName': "src/Test.hx", 'lineNumber': 15, 'className': "Test", 'methodName': "main"}))
haxe_Log.trace(HxOverrides.arrayGet(Reflect.field(xrfragment_Query("price:>=4 moo or bar").toObject(),"or"), 0),_hx_AnonObject({'fileName': "src/Test.hx", 'lineNumber': 16, 'className': "Test", 'methodName': "main"}))
haxe_Log.trace(HxOverrides.arrayGet(Reflect.field(xrfragment_Query("price:<=4 moo or bar").toObject(),"or"), 0),_hx_AnonObject({'fileName': "src/Test.hx", 'lineNumber': 17, 'className': "Test", 'methodName': "main"}))
haxe_Log.trace(HxOverrides.arrayGet(Reflect.field(xrfragment_Query("price:!=4 moo or bar").toObject(),"or"), 0),_hx_AnonObject({'fileName': "src/Test.hx", 'lineNumber': 18, 'className': "Test", 'methodName': "main"}))
q = xrfragment_Query("price:!=4 moo or bar")
obj = Reflect.field(q,"toObject")()
Reflect.field(q,"test")("price",4)
ok = (not Reflect.field(q,"qualify")("slkklskdf"))
if (not ok):
raise haxe_Exception.thrown("node should not be allowed")
q = xrfragment_Query("price:!=3 moo or bar")
obj = Reflect.field(q,"toObject")()
Reflect.field(q,"test")("price",4)
ok = Reflect.field(q,"qualify")("slkklskdf")
if (not ok):
raise haxe_Exception.thrown("non-mentioned node should be allowed")
q = xrfragment_Query("moo or bar")
obj = Reflect.field(q,"toObject")()
ok = (not Reflect.field(q,"qualify")("slkklskdf"))
if (not ok):
raise haxe_Exception.thrown("node should not be allowed")
obj = Reflect.field(q,"toObject")()
ok = Reflect.field(q,"qualify")("moo")
if (not ok):
raise haxe_Exception.thrown("moo should be allowed")
ok = Reflect.field(q,"qualify")("bar")
if (not ok):
raise haxe_Exception.thrown("bar should be allowed")
q = xrfragment_Query("price:>3 moo or bar")
obj = Reflect.field(q,"toObject")()
Reflect.field(q,"test")("price",4)
ok = Reflect.field(q,"qualify")("foo")
if (not ok):
raise haxe_Exception.thrown("node should be allowed")
ok = Reflect.field(q,"qualify")("bar")
if (not ok):
raise haxe_Exception.thrown("node should be allowed")
ok = Reflect.field(q,"qualify")("moo")
if (not ok):
raise haxe_Exception.thrown("node should be allowed")
q = xrfragment_Query("price:>3 price:<10 -bar")
obj = Reflect.field(q,"toObject")()
Reflect.field(q,"test")("price",4)
ok = Reflect.field(q,"qualify")("foo")
if (not ok):
raise haxe_Exception.thrown("node should be allowed")
ok = (not Reflect.field(q,"qualify")("bar"))
if (not ok):
raise haxe_Exception.thrown("bar should not be allowed")
Reflect.field(q,"test")("price",20)
ok = (not Reflect.field(q,"qualify")("foo"))
if (not ok):
raise haxe_Exception.thrown("price 20 should not be allowed")
q = xrfragment_Query("-bar")
obj = Reflect.field(q,"toObject")()
ok = Reflect.field(q,"qualify")("foo")
if (not ok):
raise haxe_Exception.thrown("node should be allowed")
ok = (not Reflect.field(q,"qualify")("bar"))
if (not ok):
raise haxe_Exception.thrown("bar should not be allowed")
q = xrfragment_Query("title:*")
obj = Reflect.field(q,"toObject")()
ok = (not Reflect.field(q,"qualify")("foo"))
if (not ok):
raise haxe_Exception.thrown("node should not be allowed")
Reflect.field(q,"test")("foo","bar")
ok = (not Reflect.field(q,"qualify")("foo"))
if (not ok):
raise haxe_Exception.thrown("node should not be allowed")
Reflect.field(q,"test")("title","bar")
ok = Reflect.field(q,"qualify")("foo")
if (not ok):
raise haxe_Exception.thrown("node should be allowed")
q = xrfragment_Query("-bar +bar")
obj = Reflect.field(q,"toObject")()
ok = Reflect.field(q,"qualify")("foo")
if (not ok):
raise haxe_Exception.thrown("node should be allowed")
ok = Reflect.field(q,"qualify")("bar")
if (not ok):
raise haxe_Exception.thrown("bar should be allowed")
q = xrfragment_Query("?discount")
obj = Reflect.field(q,"toObject")()
Reflect.field(q,"test")("?discount","-foo")
ok = (not Reflect.field(q,"qualify")("foo"))
if (not ok):
raise haxe_Exception.thrown("foo should not be allowed")
q = xrfragment_Query("?")
Reflect.field(q,"test")("?","-foo")
ok = (not Reflect.field(q,"qualify")("foo"))
if (not ok):
raise haxe_Exception.thrown("foo should not be allowed")
q = xrfragment_Query("?")
ok = Reflect.field(q,"qualify")("foo")
if (not ok):
raise haxe_Exception.thrown("foo should not be allowed")
q = xrfragment_Query("?discount")
Reflect.field(q,"test")("?discount","-foo")
ok = (not Reflect.field(q,"qualify")("foo"))
if (not ok):
raise haxe_Exception.thrown("foo should not be allowed")
q = xrfragment_Query("?discount +foo")
obj = Reflect.field(q,"toObject")()
Reflect.field(q,"test")("?discount","-foo")
ok = (not Reflect.field(q,"qualify")("foo"))
if (not ok):
raise haxe_Exception.thrown("foo should not be allowed")
ok = (not Reflect.field(q,"qualify")("foo"))
if (not ok):
raise haxe_Exception.thrown("foo should not be allowed")
haxe_Log.trace("all tests passed",_hx_AnonObject({'fileName': "src/Test.hx", 'lineNumber': 116, 'className': "Test", 'methodName': "main"}))
class ValueType(Enum):
__slots__ = ()
_hx_class_name = "ValueType"
_hx_constructs = ["TNull", "TInt", "TFloat", "TBool", "TObject", "TFunction", "TClass", "TEnum", "TUnknown"]
@staticmethod
def TClass(c):
return ValueType("TClass", 6, (c,))
@staticmethod
def TEnum(e):
return ValueType("TEnum", 7, (e,))
ValueType.TNull = ValueType("TNull", 0, ())
ValueType.TInt = ValueType("TInt", 1, ())
ValueType.TFloat = ValueType("TFloat", 2, ())
ValueType.TBool = ValueType("TBool", 3, ())
ValueType.TObject = ValueType("TObject", 4, ())
ValueType.TFunction = ValueType("TFunction", 5, ())
ValueType.TUnknown = ValueType("TUnknown", 8, ())
class Type:
_hx_class_name = "Type"
__slots__ = ()
_hx_statics = ["getClass", "getEnum", "getSuperClass", "getClassName", "getEnumName", "resolveClass", "resolveEnum", "createInstance", "createEmptyInstance", "createEnum", "createEnumIndex", "getInstanceFields", "getClassFields", "getEnumConstructs", "typeof", "asEnumImpl", "enumEq", "enumConstructor", "enumParameters", "enumIndex", "allEnums"]
@staticmethod
def getClass(o):
if (o is None):
return None
o1 = o
if ((o1 is not None) and ((HxOverrides.eq(o1,str) or python_lib_Inspect.isclass(o1)))):
return None
if isinstance(o,_hx_AnonObject):
return None
if hasattr(o,"_hx_class"):
return o._hx_class
if hasattr(o,"__class__"):
return o.__class__
else:
return None
@staticmethod
def getEnum(o):
if (o is None):
return None
return o.__class__
@staticmethod
def getSuperClass(c):
return python_Boot.getSuperClass(c)
@staticmethod
def getClassName(c):
if hasattr(c,"_hx_class_name"):
return c._hx_class_name
else:
if (c == list):
return "Array"
if (c == Math):
return "Math"
if (c == str):
return "String"
try:
return c.__name__
except BaseException as _g:
None
return None
@staticmethod
def getEnumName(e):
return e._hx_class_name
@staticmethod
def resolveClass(name):
if (name == "Array"):
return list
if (name == "Math"):
return Math
if (name == "String"):
return str
cl = _hx_classes.get(name,None)
tmp = None
if (cl is not None):
o = cl
tmp = (not (((o is not None) and ((HxOverrides.eq(o,str) or python_lib_Inspect.isclass(o))))))
else:
tmp = True
if tmp:
return None
return cl
@staticmethod
def resolveEnum(name):
if (name == "Bool"):
return Bool
o = Type.resolveClass(name)
if hasattr(o,"_hx_constructs"):
return o
else:
return None
@staticmethod
def createInstance(cl,args):
return cl(*args)
@staticmethod
def createEmptyInstance(cl):
i = cl.__new__(cl)
callInit = None
def _hx_local_0(cl):
sc = Type.getSuperClass(cl)
if (sc is not None):
callInit(sc)
if hasattr(cl,"_hx_empty_init"):
cl._hx_empty_init(i)
callInit = _hx_local_0
callInit(cl)
return i
@staticmethod
def createEnum(e,constr,params = None):
f = Reflect.field(e,constr)
if (f is None):
raise haxe_Exception.thrown(("No such constructor " + ("null" if constr is None else constr)))
if Reflect.isFunction(f):
if (params is None):
raise haxe_Exception.thrown((("Constructor " + ("null" if constr is None else constr)) + " need parameters"))
return Reflect.callMethod(e,f,params)
if ((params is not None) and ((len(params) != 0))):
raise haxe_Exception.thrown((("Constructor " + ("null" if constr is None else constr)) + " does not need parameters"))
return f
@staticmethod
def createEnumIndex(e,index,params = None):
c = python_internal_ArrayImpl._get(e._hx_constructs, index)
if (c is None):
raise haxe_Exception.thrown((Std.string(index) + " is not a valid enum constructor index"))
return Type.createEnum(e,c,params)
@staticmethod
def getInstanceFields(c):
return python_Boot.getInstanceFields(c)
@staticmethod
def getClassFields(c):
return python_Boot.getClassFields(c)
@staticmethod
def getEnumConstructs(e):
if hasattr(e,"_hx_constructs"):
x = e._hx_constructs
return list(x)
else:
return []
@staticmethod
def typeof(v):
if (v is None):
return ValueType.TNull
elif isinstance(v,bool):
return ValueType.TBool
elif isinstance(v,int):
return ValueType.TInt
elif isinstance(v,float):
return ValueType.TFloat
elif isinstance(v,str):
return ValueType.TClass(str)
elif isinstance(v,list):
return ValueType.TClass(list)
elif (isinstance(v,_hx_AnonObject) or python_lib_Inspect.isclass(v)):
return ValueType.TObject
elif isinstance(v,Enum):
return ValueType.TEnum(v.__class__)
elif (isinstance(v,type) or hasattr(v,"_hx_class")):
return ValueType.TClass(v.__class__)
elif callable(v):
return ValueType.TFunction
else:
return ValueType.TUnknown
@staticmethod
def asEnumImpl(x):
return x
@staticmethod
def enumEq(a,b):
if HxOverrides.eq(a,b):
return True
try:
if ((b is None) and (not HxOverrides.eq(a,b))):
return False
if (a.tag != b.tag):
return False
p1 = a.params
p2 = b.params
if (len(p1) != len(p2)):
return False
_g = 0
_g1 = len(p1)
while (_g < _g1):
i = _g
_g = (_g + 1)
if (not Type.enumEq(p1[i],p2[i])):
return False
if (a._hx_class != b._hx_class):
return False
except BaseException as _g:
None
return False
return True
@staticmethod
def enumConstructor(e):
return e.tag
@staticmethod
def enumParameters(e):
return list(e.params)
@staticmethod
def enumIndex(e):
return e.index
@staticmethod
def allEnums(e):
ctors = Type.getEnumConstructs(e)
ret = []
_g = 0
while (_g < len(ctors)):
ctor = (ctors[_g] if _g >= 0 and _g < len(ctors) else None)
_g = (_g + 1)
v = Reflect.field(e,ctor)
if Std.isOfType(v,e):
ret.append(v)
return ret
class haxe_StackItem(Enum):
__slots__ = ()
_hx_class_name = "haxe.StackItem"
_hx_constructs = ["CFunction", "Module", "FilePos", "Method", "LocalFunction"]
@staticmethod
def Module(m):
return haxe_StackItem("Module", 1, (m,))
@staticmethod
def FilePos(s,file,line,column = None):
return haxe_StackItem("FilePos", 2, (s,file,line,column))
@staticmethod
def Method(classname,method):
return haxe_StackItem("Method", 3, (classname,method))
@staticmethod
def LocalFunction(v = None):
return haxe_StackItem("LocalFunction", 4, (v,))
haxe_StackItem.CFunction = haxe_StackItem("CFunction", 0, ())
class haxe__CallStack_CallStack_Impl_:
_hx_class_name = "haxe._CallStack.CallStack_Impl_"
__slots__ = ()
_hx_statics = ["get_length", "callStack", "exceptionStack", "toString", "subtract", "copy", "get", "asArray", "equalItems", "exceptionToString", "itemToString"]
length = None
@staticmethod
def get_length(this1):
return len(this1)
@staticmethod
def callStack():
infos = python_lib_Traceback.extract_stack()
if (len(infos) != 0):
infos.pop()
infos.reverse()
return haxe_NativeStackTrace.toHaxe(infos)
@staticmethod
def exceptionStack(fullStack = None):
if (fullStack is None):
fullStack = False
eStack = haxe_NativeStackTrace.toHaxe(haxe_NativeStackTrace.exceptionStack())
return (eStack if fullStack else haxe__CallStack_CallStack_Impl_.subtract(eStack,haxe__CallStack_CallStack_Impl_.callStack()))
@staticmethod
def toString(stack):
b = StringBuf()
_g = 0
_g1 = stack
while (_g < len(_g1)):
s = (_g1[_g] if _g >= 0 and _g < len(_g1) else None)
_g = (_g + 1)
b.b.write("\nCalled from ")
haxe__CallStack_CallStack_Impl_.itemToString(b,s)
return b.b.getvalue()
@staticmethod
def subtract(this1,stack):
startIndex = -1
i = -1
while True:
i = (i + 1)
tmp = i
if (not ((tmp < len(this1)))):
break
_g = 0
_g1 = len(stack)
while (_g < _g1):
j = _g
_g = (_g + 1)
if haxe__CallStack_CallStack_Impl_.equalItems((this1[i] if i >= 0 and i < len(this1) else None),python_internal_ArrayImpl._get(stack, j)):
if (startIndex < 0):
startIndex = i
i = (i + 1)
if (i >= len(this1)):
break
else:
startIndex = -1
if (startIndex >= 0):
break
if (startIndex >= 0):
return this1[0:startIndex]
else:
return this1
@staticmethod
def copy(this1):
return list(this1)
@staticmethod
def get(this1,index):
return (this1[index] if index >= 0 and index < len(this1) else None)
@staticmethod
def asArray(this1):
return this1
@staticmethod
def equalItems(item1,item2):
if (item1 is None):
if (item2 is None):
return True
else:
return False
else:
tmp = item1.index
if (tmp == 0):
if (item2 is None):
return False
elif (item2.index == 0):
return True
else:
return False
elif (tmp == 1):
if (item2 is None):
return False
elif (item2.index == 1):
m2 = item2.params[0]
m1 = item1.params[0]
return (m1 == m2)
else:
return False
elif (tmp == 2):
if (item2 is None):
return False
elif (item2.index == 2):
item21 = item2.params[0]
file2 = item2.params[1]
line2 = item2.params[2]
col2 = item2.params[3]
col1 = item1.params[3]
line1 = item1.params[2]
file1 = item1.params[1]
item11 = item1.params[0]
if (((file1 == file2) and ((line1 == line2))) and ((col1 == col2))):
return haxe__CallStack_CallStack_Impl_.equalItems(item11,item21)
else:
return False
else:
return False
elif (tmp == 3):
if (item2 is None):
return False
elif (item2.index == 3):
class2 = item2.params[0]
method2 = item2.params[1]
method1 = item1.params[1]
class1 = item1.params[0]
if (class1 == class2):
return (method1 == method2)
else:
return False
else:
return False
elif (tmp == 4):
if (item2 is None):
return False
elif (item2.index == 4):
v2 = item2.params[0]
v1 = item1.params[0]
return (v1 == v2)
else:
return False
else:
pass
@staticmethod
def exceptionToString(e):
if (e.get_previous() is None):
tmp = ("Exception: " + HxOverrides.stringOrNull(e.toString()))
tmp1 = e.get_stack()
return (("null" if tmp is None else tmp) + HxOverrides.stringOrNull((("null" if ((tmp1 is None)) else haxe__CallStack_CallStack_Impl_.toString(tmp1)))))
result = ""
e1 = e
prev = None
while (e1 is not None):
if (prev is None):
result1 = ("Exception: " + HxOverrides.stringOrNull(e1.get_message()))
tmp = e1.get_stack()
result = ((("null" if result1 is None else result1) + HxOverrides.stringOrNull((("null" if ((tmp is None)) else haxe__CallStack_CallStack_Impl_.toString(tmp))))) + ("null" if result is None else result))
else:
prevStack = haxe__CallStack_CallStack_Impl_.subtract(e1.get_stack(),prev.get_stack())
result = (((("Exception: " + HxOverrides.stringOrNull(e1.get_message())) + HxOverrides.stringOrNull((("null" if ((prevStack is None)) else haxe__CallStack_CallStack_Impl_.toString(prevStack))))) + "\n\nNext ") + ("null" if result is None else result))
prev = e1
e1 = e1.get_previous()
return result
@staticmethod
def itemToString(b,s):
tmp = s.index
if (tmp == 0):
b.b.write("a C function")
elif (tmp == 1):
m = s.params[0]
b.b.write("module ")
s1 = Std.string(m)
b.b.write(s1)
elif (tmp == 2):
s1 = s.params[0]
file = s.params[1]
line = s.params[2]
col = s.params[3]
if (s1 is not None):
haxe__CallStack_CallStack_Impl_.itemToString(b,s1)
b.b.write(" (")
s2 = Std.string(file)
b.b.write(s2)
b.b.write(" line ")
s2 = Std.string(line)
b.b.write(s2)
if (col is not None):
b.b.write(" column ")
s2 = Std.string(col)
b.b.write(s2)
if (s1 is not None):
b.b.write(")")
elif (tmp == 3):
cname = s.params[0]
meth = s.params[1]
s1 = Std.string(("<unknown>" if ((cname is None)) else cname))
b.b.write(s1)
b.b.write(".")
s1 = Std.string(meth)
b.b.write(s1)
elif (tmp == 4):
n = s.params[0]
b.b.write("local function #")
s = Std.string(n)
b.b.write(s)
else:
pass
class haxe_IMap:
_hx_class_name = "haxe.IMap"
__slots__ = ()
_hx_methods = ["get", "set", "exists", "remove", "keys", "iterator", "keyValueIterator", "copy", "toString", "clear"]
class haxe__DynamicAccess_DynamicAccess_Impl_:
_hx_class_name = "haxe._DynamicAccess.DynamicAccess_Impl_"
__slots__ = ()
_hx_statics = ["_new", "get", "set", "exists", "remove", "keys", "copy", "iterator", "keyValueIterator"]
@staticmethod
def _new():
this1 = _hx_AnonObject({})
return this1
@staticmethod
def get(this1,key):
return Reflect.field(this1,key)
@staticmethod
def set(this1,key,value):
setattr(this1,(("_hx_" + key) if ((key in python_Boot.keywords)) else (("_hx_" + key) if (((((len(key) > 2) and ((ord(key[0]) == 95))) and ((ord(key[1]) == 95))) and ((ord(key[(len(key) - 1)]) != 95)))) else key)),value)
return value
@staticmethod
def exists(this1,key):
return python_Boot.hasField(this1,key)
@staticmethod
def remove(this1,key):
return Reflect.deleteField(this1,key)
@staticmethod
def keys(this1):
return python_Boot.fields(this1)
@staticmethod
def copy(this1):
return Reflect.copy(this1)
@staticmethod
def iterator(this1):
return haxe_iterators_DynamicAccessIterator(this1)
@staticmethod
def keyValueIterator(this1):
return haxe_iterators_DynamicAccessKeyValueIterator(this1)
class haxe_Exception(Exception):
_hx_class_name = "haxe.Exception"
__slots__ = ("_hx___exceptionStack", "_hx___nativeStack", "_hx___skipStack", "_hx___nativeException", "_hx___previousException")
_hx_fields = ["__exceptionStack", "__nativeStack", "__skipStack", "__nativeException", "__previousException"]
_hx_methods = ["unwrap", "toString", "details", "__shiftStack", "get_message", "get_previous", "get_native", "get_stack"]
_hx_statics = ["caught", "thrown"]
_hx_interfaces = []
_hx_super = Exception
def __init__(self,message,previous = None,native = None):
self._hx___previousException = None
self._hx___nativeException = None
self._hx___nativeStack = None
self._hx___exceptionStack = None
self._hx___skipStack = 0
super().__init__(message)
self._hx___previousException = previous
if ((native is not None) and Std.isOfType(native,BaseException)):
self._hx___nativeException = native
self._hx___nativeStack = haxe_NativeStackTrace.exceptionStack()
else:
self._hx___nativeException = self
infos = python_lib_Traceback.extract_stack()
if (len(infos) != 0):
infos.pop()
infos.reverse()
self._hx___nativeStack = infos
def unwrap(self):
return self._hx___nativeException
def toString(self):
return self.get_message()
def details(self):
if (self.get_previous() is None):
tmp = ("Exception: " + HxOverrides.stringOrNull(self.toString()))
tmp1 = self.get_stack()
return (("null" if tmp is None else tmp) + HxOverrides.stringOrNull((("null" if ((tmp1 is None)) else haxe__CallStack_CallStack_Impl_.toString(tmp1)))))
else:
result = ""
e = self
prev = None
while (e is not None):
if (prev is None):
result1 = ("Exception: " + HxOverrides.stringOrNull(e.get_message()))
tmp = e.get_stack()
result = ((("null" if result1 is None else result1) + HxOverrides.stringOrNull((("null" if ((tmp is None)) else haxe__CallStack_CallStack_Impl_.toString(tmp))))) + ("null" if result is None else result))
else:
prevStack = haxe__CallStack_CallStack_Impl_.subtract(e.get_stack(),prev.get_stack())
result = (((("Exception: " + HxOverrides.stringOrNull(e.get_message())) + HxOverrides.stringOrNull((("null" if ((prevStack is None)) else haxe__CallStack_CallStack_Impl_.toString(prevStack))))) + "\n\nNext ") + ("null" if result is None else result))
prev = e
e = e.get_previous()
return result
def _hx___shiftStack(self):
_hx_local_0 = self
_hx_local_1 = _hx_local_0._hx___skipStack
_hx_local_0._hx___skipStack = (_hx_local_1 + 1)
_hx_local_1
def get_message(self):
return str(self)
def get_previous(self):
return self._hx___previousException
def get_native(self):
return self._hx___nativeException
def get_stack(self):
_g = self._hx___exceptionStack
if (_g is None):
def _hx_local_1():
def _hx_local_0():
self._hx___exceptionStack = haxe_NativeStackTrace.toHaxe(self._hx___nativeStack,self._hx___skipStack)
return self._hx___exceptionStack
return _hx_local_0()
return _hx_local_1()
else:
s = _g
return s
@staticmethod
def caught(value):
if Std.isOfType(value,haxe_Exception):
return value
elif Std.isOfType(value,BaseException):
return haxe_Exception(str(value),None,value)
else:
return haxe_ValueException(value,None,value)
@staticmethod
def thrown(value):
if Std.isOfType(value,haxe_Exception):
return value.get_native()
elif Std.isOfType(value,BaseException):
return value
else:
e = haxe_ValueException(value)
e._hx___skipStack = (e._hx___skipStack + 1)
return e
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o._hx___exceptionStack = None
_hx_o._hx___nativeStack = None
_hx_o._hx___skipStack = None
_hx_o._hx___nativeException = None
_hx_o._hx___previousException = None
class haxe__Int32_Int32_Impl_:
_hx_class_name = "haxe._Int32.Int32_Impl_"
__slots__ = ()
_hx_statics = ["negate", "preIncrement", "postIncrement", "preDecrement", "postDecrement", "add", "addInt", "sub", "subInt", "intSub", "mul", "mulInt", "complement", "or", "orInt", "xor", "xorInt", "shr", "shrInt", "intShr", "shl", "shlInt", "intShl", "toFloat", "ucompare", "clamp"]
@staticmethod
def negate(this1):
return (((~this1 + 1) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
@staticmethod
def preIncrement(this1):
this1 = (this1 + 1)
x = this1
this1 = ((x + (2 ** 31)) % (2 ** 32) - (2 ** 31))
return this1
@staticmethod
def postIncrement(this1):
ret = this1
this1 = (this1 + 1)
this1 = ((this1 + (2 ** 31)) % (2 ** 32) - (2 ** 31))
return ret
@staticmethod
def preDecrement(this1):
this1 = (this1 - 1)
x = this1
this1 = ((x + (2 ** 31)) % (2 ** 32) - (2 ** 31))
return this1
@staticmethod
def postDecrement(this1):
ret = this1
this1 = (this1 - 1)
this1 = ((this1 + (2 ** 31)) % (2 ** 32) - (2 ** 31))
return ret
@staticmethod
def add(a,b):
return (((a + b) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
@staticmethod
def addInt(a,b):
return (((a + b) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
@staticmethod
def sub(a,b):
return (((a - b) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
@staticmethod
def subInt(a,b):
return (((a - b) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
@staticmethod
def intSub(a,b):
return (((a - b) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
@staticmethod
def mul(a,b):
return ((((a * ((b & 65535))) + ((((((a * (HxOverrides.rshift(b, 16))) << 16)) + (2 ** 31)) % (2 ** 32) - (2 ** 31)))) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
@staticmethod
def mulInt(a,b):
return haxe__Int32_Int32_Impl_.mul(a,b)
@staticmethod
def complement(a):
return ((~a + (2 ** 31)) % (2 ** 32) - (2 ** 31))
@staticmethod
def _hx_or(a,b):
return ((((a | b)) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
@staticmethod
def orInt(a,b):
return ((((a | b)) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
@staticmethod
def xor(a,b):
return ((((a ^ b)) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
@staticmethod
def xorInt(a,b):
return ((((a ^ b)) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
@staticmethod
def shr(a,b):
return ((((a >> b)) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
@staticmethod
def shrInt(a,b):
return ((((a >> b)) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
@staticmethod
def intShr(a,b):
return ((((a >> b)) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
@staticmethod
def shl(a,b):
return ((((a << b)) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
@staticmethod
def shlInt(a,b):
return ((((a << b)) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
@staticmethod
def intShl(a,b):
return ((((a << b)) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
@staticmethod
def toFloat(this1):
return this1
@staticmethod
def ucompare(a,b):
if (a < 0):
if (b < 0):
return (((((~b + (2 ** 31)) % (2 ** 32) - (2 ** 31)) - (((~a + (2 ** 31)) % (2 ** 32) - (2 ** 31)))) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
else:
return 1
if (b < 0):
return -1
else:
return (((a - b) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
@staticmethod
def clamp(x):
return ((x + (2 ** 31)) % (2 ** 32) - (2 ** 31))
class haxe__Int64_Int64_Impl_:
_hx_class_name = "haxe._Int64.Int64_Impl_"
__slots__ = ()
_hx_statics = ["_new", "copy", "make", "ofInt", "toInt", "is", "isInt64", "getHigh", "getLow", "isNeg", "isZero", "compare", "ucompare", "toStr", "toString", "parseString", "fromFloat", "divMod", "neg", "preIncrement", "postIncrement", "preDecrement", "postDecrement", "add", "addInt", "sub", "subInt", "intSub", "mul", "mulInt", "div", "divInt", "intDiv", "mod", "modInt", "intMod", "eq", "eqInt", "neq", "neqInt", "lt", "ltInt", "intLt", "lte", "lteInt", "intLte", "gt", "gtInt", "intGt", "gte", "gteInt", "intGte", "complement", "and", "or", "xor", "shl", "shr", "ushr", "get_high", "set_high", "get_low", "set_low"]
high = None
low = None
@staticmethod
def _new(x):
this1 = x
return this1
@staticmethod
def copy(this1):
this2 = haxe__Int64____Int64(this1.high,this1.low)
return this2
@staticmethod
def make(high,low):
this1 = haxe__Int64____Int64(high,low)
return this1
@staticmethod
def ofInt(x):
this1 = haxe__Int64____Int64((x >> 31),x)
return this1
@staticmethod
def toInt(x):
if (x.high != ((((x.low >> 31)) + (2 ** 31)) % (2 ** 32) - (2 ** 31))):
raise haxe_Exception.thrown("Overflow")
return x.low
@staticmethod
def _hx_is(val):
return Std.isOfType(val,haxe__Int64____Int64)
@staticmethod
def isInt64(val):
return Std.isOfType(val,haxe__Int64____Int64)
@staticmethod
def getHigh(x):
return x.high
@staticmethod
def getLow(x):
return x.low
@staticmethod
def isNeg(x):
return (x.high < 0)
@staticmethod
def isZero(x):
b_high = 0
b_low = 0
if (x.high == b_high):
return (x.low == b_low)
else:
return False
@staticmethod
def compare(a,b):
v = (((a.high - b.high) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (v == 0):
v = haxe__Int32_Int32_Impl_.ucompare(a.low,b.low)
if (a.high < 0):
if (b.high < 0):
return v
else:
return -1
elif (b.high >= 0):
return v
else:
return 1
@staticmethod
def ucompare(a,b):
v = haxe__Int32_Int32_Impl_.ucompare(a.high,b.high)
if (v != 0):
return v
else:
return haxe__Int32_Int32_Impl_.ucompare(a.low,b.low)
@staticmethod
def toStr(x):
return haxe__Int64_Int64_Impl_.toString(x)
@staticmethod
def toString(this1):
i = this1
b_high = 0
b_low = 0
if ((i.high == b_high) and ((i.low == b_low))):
return "0"
_hx_str = ""
neg = False
if (i.high < 0):
neg = True
this1 = haxe__Int64____Int64(0,10)
ten = this1
while True:
b_high = 0
b_low = 0
if (not (((i.high != b_high) or ((i.low != b_low))))):
break
r = haxe__Int64_Int64_Impl_.divMod(i,ten)
if (r.modulus.high < 0):
x = r.modulus
high = ((~x.high + (2 ** 31)) % (2 ** 32) - (2 ** 31))
low = (((~x.low + 1) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (low == 0):
ret = high
high = (high + 1)
high = ((high + (2 ** 31)) % (2 ** 32) - (2 ** 31))
this_high = high
this_low = low
_hx_str = (Std.string(this_low) + ("null" if _hx_str is None else _hx_str))
x1 = r.quotient
high1 = ((~x1.high + (2 ** 31)) % (2 ** 32) - (2 ** 31))
low1 = (((~x1.low + 1) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (low1 == 0):
ret1 = high1
high1 = (high1 + 1)
high1 = ((high1 + (2 ** 31)) % (2 ** 32) - (2 ** 31))
this1 = haxe__Int64____Int64(high1,low1)
i = this1
else:
_hx_str = (Std.string(r.modulus.low) + ("null" if _hx_str is None else _hx_str))
i = r.quotient
if neg:
_hx_str = ("-" + ("null" if _hx_str is None else _hx_str))
return _hx_str
@staticmethod
def parseString(sParam):
return haxe_Int64Helper.parseString(sParam)
@staticmethod
def fromFloat(f):
return haxe_Int64Helper.fromFloat(f)
@staticmethod
def divMod(dividend,divisor):
if (divisor.high == 0):
_g = divisor.low
if (_g == 0):
raise haxe_Exception.thrown("divide by zero")
elif (_g == 1):
this1 = haxe__Int64____Int64(dividend.high,dividend.low)
this2 = haxe__Int64____Int64(0,0)
return _hx_AnonObject({'quotient': this1, 'modulus': this2})
else:
pass
divSign = ((dividend.high < 0) != ((divisor.high < 0)))
modulus = None
if (dividend.high < 0):
high = ((~dividend.high + (2 ** 31)) % (2 ** 32) - (2 ** 31))
low = (((~dividend.low + 1) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (low == 0):
ret = high
high = (high + 1)
high = ((high + (2 ** 31)) % (2 ** 32) - (2 ** 31))
this1 = haxe__Int64____Int64(high,low)
modulus = this1
else:
this1 = haxe__Int64____Int64(dividend.high,dividend.low)
modulus = this1
if (divisor.high < 0):
high = ((~divisor.high + (2 ** 31)) % (2 ** 32) - (2 ** 31))
low = (((~divisor.low + 1) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (low == 0):
ret = high
high = (high + 1)
high = ((high + (2 ** 31)) % (2 ** 32) - (2 ** 31))
this1 = haxe__Int64____Int64(high,low)
divisor = this1
this1 = haxe__Int64____Int64(0,0)
quotient = this1
this1 = haxe__Int64____Int64(0,1)
mask = this1
while (not ((divisor.high < 0))):
v = haxe__Int32_Int32_Impl_.ucompare(divisor.high,modulus.high)
cmp = (v if ((v != 0)) else haxe__Int32_Int32_Impl_.ucompare(divisor.low,modulus.low))
b = 1
b = (b & 63)
if (b == 0):
this1 = haxe__Int64____Int64(divisor.high,divisor.low)
divisor = this1
elif (b < 32):
this2 = haxe__Int64____Int64(((((((((divisor.high << b)) + (2 ** 31)) % (2 ** 32) - (2 ** 31)) | HxOverrides.rshift(divisor.low, ((32 - b))))) + (2 ** 31)) % (2 ** 32) - (2 ** 31)),((((divisor.low << b)) + (2 ** 31)) % (2 ** 32) - (2 ** 31)))
divisor = this2
else:
this3 = haxe__Int64____Int64(((((divisor.low << ((b - 32)))) + (2 ** 31)) % (2 ** 32) - (2 ** 31)),0)
divisor = this3
b1 = 1
b1 = (b1 & 63)
if (b1 == 0):
this4 = haxe__Int64____Int64(mask.high,mask.low)
mask = this4
elif (b1 < 32):
this5 = haxe__Int64____Int64(((((((((mask.high << b1)) + (2 ** 31)) % (2 ** 32) - (2 ** 31)) | HxOverrides.rshift(mask.low, ((32 - b1))))) + (2 ** 31)) % (2 ** 32) - (2 ** 31)),((((mask.low << b1)) + (2 ** 31)) % (2 ** 32) - (2 ** 31)))
mask = this5
else:
this6 = haxe__Int64____Int64(((((mask.low << ((b1 - 32)))) + (2 ** 31)) % (2 ** 32) - (2 ** 31)),0)
mask = this6
if (cmp >= 0):
break
while True:
b_high = 0
b_low = 0
if (not (((mask.high != b_high) or ((mask.low != b_low))))):
break
v = haxe__Int32_Int32_Impl_.ucompare(modulus.high,divisor.high)
if (((v if ((v != 0)) else haxe__Int32_Int32_Impl_.ucompare(modulus.low,divisor.low))) >= 0):
this1 = haxe__Int64____Int64(((((quotient.high | mask.high)) + (2 ** 31)) % (2 ** 32) - (2 ** 31)),((((quotient.low | mask.low)) + (2 ** 31)) % (2 ** 32) - (2 ** 31)))
quotient = this1
high = (((modulus.high - divisor.high) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
low = (((modulus.low - divisor.low) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (haxe__Int32_Int32_Impl_.ucompare(modulus.low,divisor.low) < 0):
ret = high
high = (high - 1)
high = ((high + (2 ** 31)) % (2 ** 32) - (2 ** 31))
this2 = haxe__Int64____Int64(high,low)
modulus = this2
b = 1
b = (b & 63)
if (b == 0):
this3 = haxe__Int64____Int64(mask.high,mask.low)
mask = this3
elif (b < 32):
this4 = haxe__Int64____Int64(HxOverrides.rshift(mask.high, b),((((((((mask.high << ((32 - b)))) + (2 ** 31)) % (2 ** 32) - (2 ** 31)) | HxOverrides.rshift(mask.low, b))) + (2 ** 31)) % (2 ** 32) - (2 ** 31)))
mask = this4
else:
this5 = haxe__Int64____Int64(0,HxOverrides.rshift(mask.high, ((b - 32))))
mask = this5
b1 = 1
b1 = (b1 & 63)
if (b1 == 0):
this6 = haxe__Int64____Int64(divisor.high,divisor.low)
divisor = this6
elif (b1 < 32):
this7 = haxe__Int64____Int64(HxOverrides.rshift(divisor.high, b1),((((((((divisor.high << ((32 - b1)))) + (2 ** 31)) % (2 ** 32) - (2 ** 31)) | HxOverrides.rshift(divisor.low, b1))) + (2 ** 31)) % (2 ** 32) - (2 ** 31)))
divisor = this7
else:
this8 = haxe__Int64____Int64(0,HxOverrides.rshift(divisor.high, ((b1 - 32))))
divisor = this8
if divSign:
high = ((~quotient.high + (2 ** 31)) % (2 ** 32) - (2 ** 31))
low = (((~quotient.low + 1) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (low == 0):
ret = high
high = (high + 1)
high = ((high + (2 ** 31)) % (2 ** 32) - (2 ** 31))
this1 = haxe__Int64____Int64(high,low)
quotient = this1
if (dividend.high < 0):
high = ((~modulus.high + (2 ** 31)) % (2 ** 32) - (2 ** 31))
low = (((~modulus.low + 1) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (low == 0):
ret = high
high = (high + 1)
high = ((high + (2 ** 31)) % (2 ** 32) - (2 ** 31))
this1 = haxe__Int64____Int64(high,low)
modulus = this1
return _hx_AnonObject({'quotient': quotient, 'modulus': modulus})
@staticmethod
def neg(x):
high = ((~x.high + (2 ** 31)) % (2 ** 32) - (2 ** 31))
low = (((~x.low + 1) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (low == 0):
ret = high
high = (high + 1)
high = ((high + (2 ** 31)) % (2 ** 32) - (2 ** 31))
this1 = haxe__Int64____Int64(high,low)
return this1
@staticmethod
def preIncrement(this1):
this2 = haxe__Int64____Int64(this1.high,this1.low)
this1 = this2
def _hx_local_1():
_hx_local_0 = this1.low
this1.low = (this1.low + 1)
return _hx_local_0
ret = _hx_local_1()
this1.low = ((this1.low + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (this1.low == 0):
def _hx_local_3():
_hx_local_2 = this1.high
this1.high = (this1.high + 1)
return _hx_local_2
ret = _hx_local_3()
this1.high = ((this1.high + (2 ** 31)) % (2 ** 32) - (2 ** 31))
return this1
@staticmethod
def postIncrement(this1):
ret = this1
this2 = haxe__Int64____Int64(this1.high,this1.low)
this1 = this2
def _hx_local_2():
_hx_local_0 = this1
_hx_local_1 = _hx_local_0.low
_hx_local_0.low = (_hx_local_1 + 1)
return _hx_local_1
ret1 = _hx_local_2()
this1.low = ((this1.low + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (this1.low == 0):
def _hx_local_5():
_hx_local_3 = this1
_hx_local_4 = _hx_local_3.high
_hx_local_3.high = (_hx_local_4 + 1)
return _hx_local_4
ret1 = _hx_local_5()
this1.high = ((this1.high + (2 ** 31)) % (2 ** 32) - (2 ** 31))
return ret
@staticmethod
def preDecrement(this1):
this2 = haxe__Int64____Int64(this1.high,this1.low)
this1 = this2
if (this1.low == 0):
def _hx_local_1():
_hx_local_0 = this1.high
this1.high = (this1.high - 1)
return _hx_local_0
ret = _hx_local_1()
this1.high = ((this1.high + (2 ** 31)) % (2 ** 32) - (2 ** 31))
def _hx_local_3():
_hx_local_2 = this1.low
this1.low = (this1.low - 1)
return _hx_local_2
ret = _hx_local_3()
this1.low = ((this1.low + (2 ** 31)) % (2 ** 32) - (2 ** 31))
return this1
@staticmethod
def postDecrement(this1):
ret = this1
this2 = haxe__Int64____Int64(this1.high,this1.low)
this1 = this2
if (this1.low == 0):
def _hx_local_2():
_hx_local_0 = this1
_hx_local_1 = _hx_local_0.high
_hx_local_0.high = (_hx_local_1 - 1)
return _hx_local_1
ret1 = _hx_local_2()
this1.high = ((this1.high + (2 ** 31)) % (2 ** 32) - (2 ** 31))
def _hx_local_5():
_hx_local_3 = this1
_hx_local_4 = _hx_local_3.low
_hx_local_3.low = (_hx_local_4 - 1)
return _hx_local_4
ret1 = _hx_local_5()
this1.low = ((this1.low + (2 ** 31)) % (2 ** 32) - (2 ** 31))
return ret
@staticmethod
def add(a,b):
high = (((a.high + b.high) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
low = (((a.low + b.low) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (haxe__Int32_Int32_Impl_.ucompare(low,a.low) < 0):
ret = high
high = (high + 1)
high = ((high + (2 ** 31)) % (2 ** 32) - (2 ** 31))
this1 = haxe__Int64____Int64(high,low)
return this1
@staticmethod
def addInt(a,b):
b_high = (b >> 31)
b_low = b
high = (((a.high + b_high) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
low = (((a.low + b_low) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (haxe__Int32_Int32_Impl_.ucompare(low,a.low) < 0):
ret = high
high = (high + 1)
high = ((high + (2 ** 31)) % (2 ** 32) - (2 ** 31))
this1 = haxe__Int64____Int64(high,low)
return this1
@staticmethod
def sub(a,b):
high = (((a.high - b.high) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
low = (((a.low - b.low) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (haxe__Int32_Int32_Impl_.ucompare(a.low,b.low) < 0):
ret = high
high = (high - 1)
high = ((high + (2 ** 31)) % (2 ** 32) - (2 ** 31))
this1 = haxe__Int64____Int64(high,low)
return this1
@staticmethod
def subInt(a,b):
b_high = (b >> 31)
b_low = b
high = (((a.high - b_high) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
low = (((a.low - b_low) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (haxe__Int32_Int32_Impl_.ucompare(a.low,b_low) < 0):
ret = high
high = (high - 1)
high = ((high + (2 ** 31)) % (2 ** 32) - (2 ** 31))
this1 = haxe__Int64____Int64(high,low)
return this1
@staticmethod
def intSub(a,b):
a_high = (a >> 31)
a_low = a
high = (((a_high - b.high) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
low = (((a_low - b.low) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (haxe__Int32_Int32_Impl_.ucompare(a_low,b.low) < 0):
ret = high
high = (high - 1)
high = ((high + (2 ** 31)) % (2 ** 32) - (2 ** 31))
this1 = haxe__Int64____Int64(high,low)
return this1
@staticmethod
def mul(a,b):
mask = 65535
al = (a.low & mask)
ah = HxOverrides.rshift(a.low, 16)
bl = (b.low & mask)
bh = HxOverrides.rshift(b.low, 16)
p00 = haxe__Int32_Int32_Impl_.mul(al,bl)
p10 = haxe__Int32_Int32_Impl_.mul(ah,bl)
p01 = haxe__Int32_Int32_Impl_.mul(al,bh)
p11 = haxe__Int32_Int32_Impl_.mul(ah,bh)
low = p00
high = ((((((p11 + (HxOverrides.rshift(p01, 16))) + (2 ** 31)) % (2 ** 32) - (2 ** 31)) + (HxOverrides.rshift(p10, 16))) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
p01 = ((((p01 << 16)) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
low = (((low + p01) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (haxe__Int32_Int32_Impl_.ucompare(low,p01) < 0):
ret = high
high = (high + 1)
high = ((high + (2 ** 31)) % (2 ** 32) - (2 ** 31))
p10 = ((((p10 << 16)) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
low = (((low + p10) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (haxe__Int32_Int32_Impl_.ucompare(low,p10) < 0):
ret = high
high = (high + 1)
high = ((high + (2 ** 31)) % (2 ** 32) - (2 ** 31))
high = (((high + ((((haxe__Int32_Int32_Impl_.mul(a.low,b.high) + haxe__Int32_Int32_Impl_.mul(a.high,b.low)) + (2 ** 31)) % (2 ** 32) - (2 ** 31)))) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
this1 = haxe__Int64____Int64(high,low)
return this1
@staticmethod
def mulInt(a,b):
b_high = (b >> 31)
b_low = b
mask = 65535
al = (a.low & mask)
ah = HxOverrides.rshift(a.low, 16)
bl = (b_low & mask)
bh = HxOverrides.rshift(b_low, 16)
p00 = haxe__Int32_Int32_Impl_.mul(al,bl)
p10 = haxe__Int32_Int32_Impl_.mul(ah,bl)
p01 = haxe__Int32_Int32_Impl_.mul(al,bh)
p11 = haxe__Int32_Int32_Impl_.mul(ah,bh)
low = p00
high = ((((((p11 + (HxOverrides.rshift(p01, 16))) + (2 ** 31)) % (2 ** 32) - (2 ** 31)) + (HxOverrides.rshift(p10, 16))) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
p01 = ((((p01 << 16)) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
low = (((low + p01) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (haxe__Int32_Int32_Impl_.ucompare(low,p01) < 0):
ret = high
high = (high + 1)
high = ((high + (2 ** 31)) % (2 ** 32) - (2 ** 31))
p10 = ((((p10 << 16)) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
low = (((low + p10) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (haxe__Int32_Int32_Impl_.ucompare(low,p10) < 0):
ret = high
high = (high + 1)
high = ((high + (2 ** 31)) % (2 ** 32) - (2 ** 31))
high = (((high + ((((haxe__Int32_Int32_Impl_.mul(a.low,b_high) + haxe__Int32_Int32_Impl_.mul(a.high,b_low)) + (2 ** 31)) % (2 ** 32) - (2 ** 31)))) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
this1 = haxe__Int64____Int64(high,low)
return this1
@staticmethod
def div(a,b):
return haxe__Int64_Int64_Impl_.divMod(a,b).quotient
@staticmethod
def divInt(a,b):
this1 = haxe__Int64____Int64((b >> 31),b)
return haxe__Int64_Int64_Impl_.divMod(a,this1).quotient
@staticmethod
def intDiv(a,b):
this1 = haxe__Int64____Int64((a >> 31),a)
x = haxe__Int64_Int64_Impl_.divMod(this1,b).quotient
if (x.high != ((((x.low >> 31)) + (2 ** 31)) % (2 ** 32) - (2 ** 31))):
raise haxe_Exception.thrown("Overflow")
x1 = x.low
this1 = haxe__Int64____Int64((x1 >> 31),x1)
return this1
@staticmethod
def mod(a,b):
return haxe__Int64_Int64_Impl_.divMod(a,b).modulus
@staticmethod
def modInt(a,b):
this1 = haxe__Int64____Int64((b >> 31),b)
x = haxe__Int64_Int64_Impl_.divMod(a,this1).modulus
if (x.high != ((((x.low >> 31)) + (2 ** 31)) % (2 ** 32) - (2 ** 31))):
raise haxe_Exception.thrown("Overflow")
x1 = x.low
this1 = haxe__Int64____Int64((x1 >> 31),x1)
return this1
@staticmethod
def intMod(a,b):
this1 = haxe__Int64____Int64((a >> 31),a)
x = haxe__Int64_Int64_Impl_.divMod(this1,b).modulus
if (x.high != ((((x.low >> 31)) + (2 ** 31)) % (2 ** 32) - (2 ** 31))):
raise haxe_Exception.thrown("Overflow")
x1 = x.low
this1 = haxe__Int64____Int64((x1 >> 31),x1)
return this1
@staticmethod
def eq(a,b):
if (a.high == b.high):
return (a.low == b.low)
else:
return False
@staticmethod
def eqInt(a,b):
b_high = (b >> 31)
b_low = b
if (a.high == b_high):
return (a.low == b_low)
else:
return False
@staticmethod
def neq(a,b):
if (a.high == b.high):
return (a.low != b.low)
else:
return True
@staticmethod
def neqInt(a,b):
b_high = (b >> 31)
b_low = b
if (a.high == b_high):
return (a.low != b_low)
else:
return True
@staticmethod
def lt(a,b):
v = (((a.high - b.high) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (v == 0):
v = haxe__Int32_Int32_Impl_.ucompare(a.low,b.low)
return ((((v if ((b.high < 0)) else -1) if ((a.high < 0)) else (v if ((b.high >= 0)) else 1))) < 0)
@staticmethod
def ltInt(a,b):
b_high = (b >> 31)
b_low = b
v = (((a.high - b_high) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (v == 0):
v = haxe__Int32_Int32_Impl_.ucompare(a.low,b_low)
return ((((v if ((b_high < 0)) else -1) if ((a.high < 0)) else (v if ((b_high >= 0)) else 1))) < 0)
@staticmethod
def intLt(a,b):
a_high = (a >> 31)
a_low = a
v = (((a_high - b.high) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (v == 0):
v = haxe__Int32_Int32_Impl_.ucompare(a_low,b.low)
return ((((v if ((b.high < 0)) else -1) if ((a_high < 0)) else (v if ((b.high >= 0)) else 1))) < 0)
@staticmethod
def lte(a,b):
v = (((a.high - b.high) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (v == 0):
v = haxe__Int32_Int32_Impl_.ucompare(a.low,b.low)
return ((((v if ((b.high < 0)) else -1) if ((a.high < 0)) else (v if ((b.high >= 0)) else 1))) <= 0)
@staticmethod
def lteInt(a,b):
b_high = (b >> 31)
b_low = b
v = (((a.high - b_high) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (v == 0):
v = haxe__Int32_Int32_Impl_.ucompare(a.low,b_low)
return ((((v if ((b_high < 0)) else -1) if ((a.high < 0)) else (v if ((b_high >= 0)) else 1))) <= 0)
@staticmethod
def intLte(a,b):
a_high = (a >> 31)
a_low = a
v = (((a_high - b.high) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (v == 0):
v = haxe__Int32_Int32_Impl_.ucompare(a_low,b.low)
return ((((v if ((b.high < 0)) else -1) if ((a_high < 0)) else (v if ((b.high >= 0)) else 1))) <= 0)
@staticmethod
def gt(a,b):
v = (((a.high - b.high) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (v == 0):
v = haxe__Int32_Int32_Impl_.ucompare(a.low,b.low)
return ((((v if ((b.high < 0)) else -1) if ((a.high < 0)) else (v if ((b.high >= 0)) else 1))) > 0)
@staticmethod
def gtInt(a,b):
b_high = (b >> 31)
b_low = b
v = (((a.high - b_high) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (v == 0):
v = haxe__Int32_Int32_Impl_.ucompare(a.low,b_low)
return ((((v if ((b_high < 0)) else -1) if ((a.high < 0)) else (v if ((b_high >= 0)) else 1))) > 0)
@staticmethod
def intGt(a,b):
a_high = (a >> 31)
a_low = a
v = (((a_high - b.high) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (v == 0):
v = haxe__Int32_Int32_Impl_.ucompare(a_low,b.low)
return ((((v if ((b.high < 0)) else -1) if ((a_high < 0)) else (v if ((b.high >= 0)) else 1))) > 0)
@staticmethod
def gte(a,b):
v = (((a.high - b.high) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (v == 0):
v = haxe__Int32_Int32_Impl_.ucompare(a.low,b.low)
return ((((v if ((b.high < 0)) else -1) if ((a.high < 0)) else (v if ((b.high >= 0)) else 1))) >= 0)
@staticmethod
def gteInt(a,b):
b_high = (b >> 31)
b_low = b
v = (((a.high - b_high) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (v == 0):
v = haxe__Int32_Int32_Impl_.ucompare(a.low,b_low)
return ((((v if ((b_high < 0)) else -1) if ((a.high < 0)) else (v if ((b_high >= 0)) else 1))) >= 0)
@staticmethod
def intGte(a,b):
a_high = (a >> 31)
a_low = a
v = (((a_high - b.high) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (v == 0):
v = haxe__Int32_Int32_Impl_.ucompare(a_low,b.low)
return ((((v if ((b.high < 0)) else -1) if ((a_high < 0)) else (v if ((b.high >= 0)) else 1))) >= 0)
@staticmethod
def complement(a):
this1 = haxe__Int64____Int64(((~a.high + (2 ** 31)) % (2 ** 32) - (2 ** 31)),((~a.low + (2 ** 31)) % (2 ** 32) - (2 ** 31)))
return this1
@staticmethod
def _hx_and(a,b):
this1 = haxe__Int64____Int64((a.high & b.high),(a.low & b.low))
return this1
@staticmethod
def _hx_or(a,b):
this1 = haxe__Int64____Int64(((((a.high | b.high)) + (2 ** 31)) % (2 ** 32) - (2 ** 31)),((((a.low | b.low)) + (2 ** 31)) % (2 ** 32) - (2 ** 31)))
return this1
@staticmethod
def xor(a,b):
this1 = haxe__Int64____Int64(((((a.high ^ b.high)) + (2 ** 31)) % (2 ** 32) - (2 ** 31)),((((a.low ^ b.low)) + (2 ** 31)) % (2 ** 32) - (2 ** 31)))
return this1
@staticmethod
def shl(a,b):
b = (b & 63)
if (b == 0):
this1 = haxe__Int64____Int64(a.high,a.low)
return this1
elif (b < 32):
this1 = haxe__Int64____Int64(((((((((a.high << b)) + (2 ** 31)) % (2 ** 32) - (2 ** 31)) | HxOverrides.rshift(a.low, ((32 - b))))) + (2 ** 31)) % (2 ** 32) - (2 ** 31)),((((a.low << b)) + (2 ** 31)) % (2 ** 32) - (2 ** 31)))
return this1
else:
this1 = haxe__Int64____Int64(((((a.low << ((b - 32)))) + (2 ** 31)) % (2 ** 32) - (2 ** 31)),0)
return this1
@staticmethod
def shr(a,b):
b = (b & 63)
if (b == 0):
this1 = haxe__Int64____Int64(a.high,a.low)
return this1
elif (b < 32):
this1 = haxe__Int64____Int64(((((a.high >> b)) + (2 ** 31)) % (2 ** 32) - (2 ** 31)),((((((((a.high << ((32 - b)))) + (2 ** 31)) % (2 ** 32) - (2 ** 31)) | HxOverrides.rshift(a.low, b))) + (2 ** 31)) % (2 ** 32) - (2 ** 31)))
return this1
else:
this1 = haxe__Int64____Int64(((((a.high >> 31)) + (2 ** 31)) % (2 ** 32) - (2 ** 31)),((((a.high >> ((b - 32)))) + (2 ** 31)) % (2 ** 32) - (2 ** 31)))
return this1
@staticmethod
def ushr(a,b):
b = (b & 63)
if (b == 0):
this1 = haxe__Int64____Int64(a.high,a.low)
return this1
elif (b < 32):
this1 = haxe__Int64____Int64(HxOverrides.rshift(a.high, b),((((((((a.high << ((32 - b)))) + (2 ** 31)) % (2 ** 32) - (2 ** 31)) | HxOverrides.rshift(a.low, b))) + (2 ** 31)) % (2 ** 32) - (2 ** 31)))
return this1
else:
this1 = haxe__Int64____Int64(0,HxOverrides.rshift(a.high, ((b - 32))))
return this1
@staticmethod
def get_high(this1):
return this1.high
@staticmethod
def set_high(this1,x):
def _hx_local_1():
def _hx_local_0():
this1.high = x
return this1.high
return _hx_local_0()
return _hx_local_1()
@staticmethod
def get_low(this1):
return this1.low
@staticmethod
def set_low(this1,x):
def _hx_local_1():
def _hx_local_0():
this1.low = x
return this1.low
return _hx_local_0()
return _hx_local_1()
class haxe__Int64____Int64:
_hx_class_name = "haxe._Int64.___Int64"
__slots__ = ("high", "low")
_hx_fields = ["high", "low"]
_hx_methods = ["toString"]
def __init__(self,high,low):
self.high = high
self.low = low
def toString(self):
return haxe__Int64_Int64_Impl_.toString(self)
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.high = None
_hx_o.low = None
class haxe_Int64Helper:
_hx_class_name = "haxe.Int64Helper"
__slots__ = ()
_hx_statics = ["parseString", "fromFloat"]
@staticmethod
def parseString(sParam):
base_high = 0
base_low = 10
this1 = haxe__Int64____Int64(0,0)
current = this1
this1 = haxe__Int64____Int64(0,1)
multiplier = this1
sIsNegative = False
s = StringTools.trim(sParam)
if ((("" if ((0 >= len(s))) else s[0])) == "-"):
sIsNegative = True
s = HxString.substring(s,1,len(s))
_hx_len = len(s)
_g = 0
_g1 = _hx_len
while (_g < _g1):
i = _g
_g = (_g + 1)
digitInt = (HxString.charCodeAt(s,((_hx_len - 1) - i)) - 48)
if ((digitInt < 0) or ((digitInt > 9))):
raise haxe_Exception.thrown("NumberFormatError")
if (digitInt != 0):
digit_high = (digitInt >> 31)
digit_low = digitInt
if sIsNegative:
mask = 65535
al = (multiplier.low & mask)
ah = HxOverrides.rshift(multiplier.low, 16)
bl = (digit_low & mask)
bh = HxOverrides.rshift(digit_low, 16)
p00 = haxe__Int32_Int32_Impl_.mul(al,bl)
p10 = haxe__Int32_Int32_Impl_.mul(ah,bl)
p01 = haxe__Int32_Int32_Impl_.mul(al,bh)
p11 = haxe__Int32_Int32_Impl_.mul(ah,bh)
low = p00
high = ((((((p11 + (HxOverrides.rshift(p01, 16))) + (2 ** 31)) % (2 ** 32) - (2 ** 31)) + (HxOverrides.rshift(p10, 16))) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
p01 = ((((p01 << 16)) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
low = (((low + p01) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (haxe__Int32_Int32_Impl_.ucompare(low,p01) < 0):
ret = high
high = (high + 1)
high = ((high + (2 ** 31)) % (2 ** 32) - (2 ** 31))
p10 = ((((p10 << 16)) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
low = (((low + p10) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (haxe__Int32_Int32_Impl_.ucompare(low,p10) < 0):
ret1 = high
high = (high + 1)
high = ((high + (2 ** 31)) % (2 ** 32) - (2 ** 31))
high = (((high + ((((haxe__Int32_Int32_Impl_.mul(multiplier.low,digit_high) + haxe__Int32_Int32_Impl_.mul(multiplier.high,digit_low)) + (2 ** 31)) % (2 ** 32) - (2 ** 31)))) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
b_high = high
b_low = low
high1 = (((current.high - b_high) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
low1 = (((current.low - b_low) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (haxe__Int32_Int32_Impl_.ucompare(current.low,b_low) < 0):
ret2 = high1
high1 = (high1 - 1)
high1 = ((high1 + (2 ** 31)) % (2 ** 32) - (2 ** 31))
this1 = haxe__Int64____Int64(high1,low1)
current = this1
if (not ((current.high < 0))):
raise haxe_Exception.thrown("NumberFormatError: Underflow")
else:
mask1 = 65535
al1 = (multiplier.low & mask1)
ah1 = HxOverrides.rshift(multiplier.low, 16)
bl1 = (digit_low & mask1)
bh1 = HxOverrides.rshift(digit_low, 16)
p001 = haxe__Int32_Int32_Impl_.mul(al1,bl1)
p101 = haxe__Int32_Int32_Impl_.mul(ah1,bl1)
p011 = haxe__Int32_Int32_Impl_.mul(al1,bh1)
p111 = haxe__Int32_Int32_Impl_.mul(ah1,bh1)
low2 = p001
high2 = ((((((p111 + (HxOverrides.rshift(p011, 16))) + (2 ** 31)) % (2 ** 32) - (2 ** 31)) + (HxOverrides.rshift(p101, 16))) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
p011 = ((((p011 << 16)) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
low2 = (((low2 + p011) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (haxe__Int32_Int32_Impl_.ucompare(low2,p011) < 0):
ret3 = high2
high2 = (high2 + 1)
high2 = ((high2 + (2 ** 31)) % (2 ** 32) - (2 ** 31))
p101 = ((((p101 << 16)) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
low2 = (((low2 + p101) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (haxe__Int32_Int32_Impl_.ucompare(low2,p101) < 0):
ret4 = high2
high2 = (high2 + 1)
high2 = ((high2 + (2 ** 31)) % (2 ** 32) - (2 ** 31))
high2 = (((high2 + ((((haxe__Int32_Int32_Impl_.mul(multiplier.low,digit_high) + haxe__Int32_Int32_Impl_.mul(multiplier.high,digit_low)) + (2 ** 31)) % (2 ** 32) - (2 ** 31)))) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
b_high1 = high2
b_low1 = low2
high3 = (((current.high + b_high1) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
low3 = (((current.low + b_low1) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (haxe__Int32_Int32_Impl_.ucompare(low3,current.low) < 0):
ret5 = high3
high3 = (high3 + 1)
high3 = ((high3 + (2 ** 31)) % (2 ** 32) - (2 ** 31))
this2 = haxe__Int64____Int64(high3,low3)
current = this2
if (current.high < 0):
raise haxe_Exception.thrown("NumberFormatError: Overflow")
mask2 = 65535
al2 = (multiplier.low & mask2)
ah2 = HxOverrides.rshift(multiplier.low, 16)
bl2 = (base_low & mask2)
bh2 = HxOverrides.rshift(base_low, 16)
p002 = haxe__Int32_Int32_Impl_.mul(al2,bl2)
p102 = haxe__Int32_Int32_Impl_.mul(ah2,bl2)
p012 = haxe__Int32_Int32_Impl_.mul(al2,bh2)
p112 = haxe__Int32_Int32_Impl_.mul(ah2,bh2)
low4 = p002
high4 = ((((((p112 + (HxOverrides.rshift(p012, 16))) + (2 ** 31)) % (2 ** 32) - (2 ** 31)) + (HxOverrides.rshift(p102, 16))) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
p012 = ((((p012 << 16)) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
low4 = (((low4 + p012) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (haxe__Int32_Int32_Impl_.ucompare(low4,p012) < 0):
ret6 = high4
high4 = (high4 + 1)
high4 = ((high4 + (2 ** 31)) % (2 ** 32) - (2 ** 31))
p102 = ((((p102 << 16)) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
low4 = (((low4 + p102) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (haxe__Int32_Int32_Impl_.ucompare(low4,p102) < 0):
ret7 = high4
high4 = (high4 + 1)
high4 = ((high4 + (2 ** 31)) % (2 ** 32) - (2 ** 31))
high4 = (((high4 + ((((haxe__Int32_Int32_Impl_.mul(multiplier.low,base_high) + haxe__Int32_Int32_Impl_.mul(multiplier.high,base_low)) + (2 ** 31)) % (2 ** 32) - (2 ** 31)))) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
this3 = haxe__Int64____Int64(high4,low4)
multiplier = this3
return current
@staticmethod
def fromFloat(f):
if (python_lib_Math.isnan(f) or (not ((((f != Math.POSITIVE_INFINITY) and ((f != Math.NEGATIVE_INFINITY))) and (not python_lib_Math.isnan(f)))))):
raise haxe_Exception.thrown("Number is NaN or Infinite")
noFractions = (f - (HxOverrides.modf(f, 1)))
if (noFractions > 9007199254740991):
raise haxe_Exception.thrown("Conversion overflow")
if (noFractions < -9007199254740991):
raise haxe_Exception.thrown("Conversion underflow")
this1 = haxe__Int64____Int64(0,0)
result = this1
neg = (noFractions < 0)
rest = (-noFractions if neg else noFractions)
i = 0
while (rest >= 1):
curr = HxOverrides.modf(rest, 2)
rest = (rest / 2)
if (curr >= 1):
a_high = 0
a_low = 1
b = i
b = (b & 63)
b1 = None
if (b == 0):
this1 = haxe__Int64____Int64(a_high,a_low)
b1 = this1
elif (b < 32):
this2 = haxe__Int64____Int64(((((((((a_high << b)) + (2 ** 31)) % (2 ** 32) - (2 ** 31)) | HxOverrides.rshift(a_low, ((32 - b))))) + (2 ** 31)) % (2 ** 32) - (2 ** 31)),((((a_low << b)) + (2 ** 31)) % (2 ** 32) - (2 ** 31)))
b1 = this2
else:
this3 = haxe__Int64____Int64(((((a_low << ((b - 32)))) + (2 ** 31)) % (2 ** 32) - (2 ** 31)),0)
b1 = this3
high = (((result.high + b1.high) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
low = (((result.low + b1.low) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (haxe__Int32_Int32_Impl_.ucompare(low,result.low) < 0):
ret = high
high = (high + 1)
high = ((high + (2 ** 31)) % (2 ** 32) - (2 ** 31))
this4 = haxe__Int64____Int64(high,low)
result = this4
i = (i + 1)
if neg:
high = ((~result.high + (2 ** 31)) % (2 ** 32) - (2 ** 31))
low = (((~result.low + 1) + (2 ** 31)) % (2 ** 32) - (2 ** 31))
if (low == 0):
ret = high
high = (high + 1)
high = ((high + (2 ** 31)) % (2 ** 32) - (2 ** 31))
this1 = haxe__Int64____Int64(high,low)
result = this1
return result
class haxe_Log:
_hx_class_name = "haxe.Log"
__slots__ = ()
_hx_statics = ["formatOutput", "trace"]
@staticmethod
def formatOutput(v,infos):
_hx_str = Std.string(v)
if (infos is None):
return _hx_str
pstr = ((HxOverrides.stringOrNull(infos.fileName) + ":") + Std.string(infos.lineNumber))
if (Reflect.field(infos,"customParams") is not None):
_g = 0
_g1 = Reflect.field(infos,"customParams")
while (_g < len(_g1)):
v = (_g1[_g] if _g >= 0 and _g < len(_g1) else None)
_g = (_g + 1)
_hx_str = (("null" if _hx_str is None else _hx_str) + ((", " + Std.string(v))))
return ((("null" if pstr is None else pstr) + ": ") + ("null" if _hx_str is None else _hx_str))
@staticmethod
def trace(v,infos = None):
_hx_str = haxe_Log.formatOutput(v,infos)
str1 = Std.string(_hx_str)
python_Lib.printString((("" + ("null" if str1 is None else str1)) + HxOverrides.stringOrNull(python_Lib.lineEnd)))
class haxe_NativeStackTrace:
_hx_class_name = "haxe.NativeStackTrace"
__slots__ = ()
_hx_statics = ["saveStack", "callStack", "exceptionStack", "toHaxe"]
@staticmethod
def saveStack(exception):
pass
@staticmethod
def callStack():
infos = python_lib_Traceback.extract_stack()
if (len(infos) != 0):
infos.pop()
infos.reverse()
return infos
@staticmethod
def exceptionStack():
exc = python_lib_Sys.exc_info()
if (exc[2] is not None):
infos = python_lib_Traceback.extract_tb(exc[2])
infos.reverse()
return infos
else:
return []
@staticmethod
def toHaxe(native,skip = None):
if (skip is None):
skip = 0
stack = []
_g = 0
_g1 = len(native)
while (_g < _g1):
i = _g
_g = (_g + 1)
if (skip > i):
continue
elem = (native[i] if i >= 0 and i < len(native) else None)
x = haxe_StackItem.FilePos(haxe_StackItem.Method(None,elem[2]),elem[0],elem[1])
stack.append(x)
return stack
class haxe__Rest_Rest_Impl_:
_hx_class_name = "haxe._Rest.Rest_Impl_"
__slots__ = ()
_hx_statics = ["get_length", "of", "_new", "get", "toArray", "iterator", "keyValueIterator", "append", "prepend", "toString"]
length = None
@staticmethod
def get_length(this1):
return len(this1)
@staticmethod
def of(array):
this1 = array
return this1
@staticmethod
def _new(array):
this1 = array
return this1
@staticmethod
def get(this1,index):
return (this1[index] if index >= 0 and index < len(this1) else None)
@staticmethod
def toArray(this1):
return list(this1)
@staticmethod
def iterator(this1):
return haxe_iterators_RestIterator(this1)
@staticmethod
def keyValueIterator(this1):
return haxe_iterators_RestKeyValueIterator(this1)
@staticmethod
def append(this1,item):
result = list(this1)
result.append(item)
this1 = result
return this1
@staticmethod
def prepend(this1,item):
result = list(this1)
result.insert(0, item)
this1 = result
return this1
@staticmethod
def toString(this1):
return (("[" + HxOverrides.stringOrNull(",".join([python_Boot.toString1(x1,'') for x1 in this1]))) + "]")
class haxe_ValueException(haxe_Exception):
_hx_class_name = "haxe.ValueException"
__slots__ = ("value",)
_hx_fields = ["value"]
_hx_methods = ["unwrap"]
_hx_statics = []
_hx_interfaces = []
_hx_super = haxe_Exception
def __init__(self,value,previous = None,native = None):
self.value = None
super().__init__(Std.string(value),previous,native)
self.value = value
_hx_local_0 = self
_hx_local_1 = _hx_local_0._hx___skipStack
_hx_local_0._hx___skipStack = (_hx_local_1 + 1)
_hx_local_1
def unwrap(self):
return self.value
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.value = None
class haxe_ds_BalancedTree:
_hx_class_name = "haxe.ds.BalancedTree"
__slots__ = ("root",)
_hx_fields = ["root"]
_hx_methods = ["set", "get", "remove", "exists", "iterator", "keyValueIterator", "keys", "copy", "setLoop", "removeLoop", "keysLoop", "merge", "minBinding", "removeMinBinding", "balance", "compare", "toString", "clear"]
_hx_statics = ["iteratorLoop"]
_hx_interfaces = [haxe_IMap]
def __init__(self):
self.root = None
def set(self,key,value):
self.root = self.setLoop(key,value,self.root)
def get(self,key):
node = self.root
while (node is not None):
c = self.compare(key,node.key)
if (c == 0):
return node.value
if (c < 0):
node = node.left
else:
node = node.right
return None
def remove(self,key):
try:
self.root = self.removeLoop(key,self.root)
return True
except BaseException as _g:
None
if Std.isOfType(haxe_Exception.caught(_g).unwrap(),str):
return False
else:
raise _g
def exists(self,key):
node = self.root
while (node is not None):
c = self.compare(key,node.key)
if (c == 0):
return True
elif (c < 0):
node = node.left
else:
node = node.right
return False
def iterator(self):
ret = []
haxe_ds_BalancedTree.iteratorLoop(self.root,ret)
return haxe_iterators_ArrayIterator(ret)
def keyValueIterator(self):
return haxe_iterators_MapKeyValueIterator(self)
def keys(self):
ret = []
self.keysLoop(self.root,ret)
return haxe_iterators_ArrayIterator(ret)
def copy(self):
copied = haxe_ds_BalancedTree()
copied.root = self.root
return copied
def setLoop(self,k,v,node):
if (node is None):
return haxe_ds_TreeNode(None,k,v,None)
c = self.compare(k,node.key)
if (c == 0):
return haxe_ds_TreeNode(node.left,k,v,node.right,(0 if ((node is None)) else node._height))
elif (c < 0):
nl = self.setLoop(k,v,node.left)
return self.balance(nl,node.key,node.value,node.right)
else:
nr = self.setLoop(k,v,node.right)
return self.balance(node.left,node.key,node.value,nr)
def removeLoop(self,k,node):
if (node is None):
raise haxe_Exception.thrown("Not_found")
c = self.compare(k,node.key)
if (c == 0):
return self.merge(node.left,node.right)
elif (c < 0):
return self.balance(self.removeLoop(k,node.left),node.key,node.value,node.right)
else:
return self.balance(node.left,node.key,node.value,self.removeLoop(k,node.right))
def keysLoop(self,node,acc):
if (node is not None):
self.keysLoop(node.left,acc)
x = node.key
acc.append(x)
self.keysLoop(node.right,acc)
def merge(self,t1,t2):
if (t1 is None):
return t2
if (t2 is None):
return t1
t = self.minBinding(t2)
return self.balance(t1,t.key,t.value,self.removeMinBinding(t2))
def minBinding(self,t):
if (t is None):
raise haxe_Exception.thrown("Not_found")
elif (t.left is None):
return t
else:
return self.minBinding(t.left)
def removeMinBinding(self,t):
if (t.left is None):
return t.right
else:
return self.balance(self.removeMinBinding(t.left),t.key,t.value,t.right)
def balance(self,l,k,v,r):
hl = (0 if ((l is None)) else l._height)
hr = (0 if ((r is None)) else r._height)
if (hl > ((hr + 2))):
_this = l.left
_this1 = l.right
if (((0 if ((_this is None)) else _this._height)) >= ((0 if ((_this1 is None)) else _this1._height))):
return haxe_ds_TreeNode(l.left,l.key,l.value,haxe_ds_TreeNode(l.right,k,v,r))
else:
return haxe_ds_TreeNode(haxe_ds_TreeNode(l.left,l.key,l.value,l.right.left),l.right.key,l.right.value,haxe_ds_TreeNode(l.right.right,k,v,r))
elif (hr > ((hl + 2))):
_this = r.right
_this1 = r.left
if (((0 if ((_this is None)) else _this._height)) > ((0 if ((_this1 is None)) else _this1._height))):
return haxe_ds_TreeNode(haxe_ds_TreeNode(l,k,v,r.left),r.key,r.value,r.right)
else:
return haxe_ds_TreeNode(haxe_ds_TreeNode(l,k,v,r.left.left),r.left.key,r.left.value,haxe_ds_TreeNode(r.left.right,r.key,r.value,r.right))
else:
return haxe_ds_TreeNode(l,k,v,r,(((hl if ((hl > hr)) else hr)) + 1))
def compare(self,k1,k2):
return Reflect.compare(k1,k2)
def toString(self):
if (self.root is None):
return "{}"
else:
return (("{" + HxOverrides.stringOrNull(self.root.toString())) + "}")
def clear(self):
self.root = None
@staticmethod
def iteratorLoop(node,acc):
if (node is not None):
haxe_ds_BalancedTree.iteratorLoop(node.left,acc)
x = node.value
acc.append(x)
haxe_ds_BalancedTree.iteratorLoop(node.right,acc)
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.root = None
class haxe_ds_TreeNode:
_hx_class_name = "haxe.ds.TreeNode"
__slots__ = ("left", "right", "key", "value", "_height")
_hx_fields = ["left", "right", "key", "value", "_height"]
_hx_methods = ["toString"]
def __init__(self,l,k,v,r,h = None):
if (h is None):
h = -1
self._height = None
self.left = l
self.key = k
self.value = v
self.right = r
if (h == -1):
tmp = None
_this = self.left
_this1 = self.right
if (((0 if ((_this is None)) else _this._height)) > ((0 if ((_this1 is None)) else _this1._height))):
_this = self.left
tmp = (0 if ((_this is None)) else _this._height)
else:
_this = self.right
tmp = (0 if ((_this is None)) else _this._height)
self._height = (tmp + 1)
else:
self._height = h
def toString(self):
return ((HxOverrides.stringOrNull((("" if ((self.left is None)) else (HxOverrides.stringOrNull(self.left.toString()) + ", ")))) + (((("" + Std.string(self.key)) + "=") + Std.string(self.value)))) + HxOverrides.stringOrNull((("" if ((self.right is None)) else (", " + HxOverrides.stringOrNull(self.right.toString()))))))
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.left = None
_hx_o.right = None
_hx_o.key = None
_hx_o.value = None
_hx_o._height = None
class haxe_ds_EnumValueMap(haxe_ds_BalancedTree):
_hx_class_name = "haxe.ds.EnumValueMap"
__slots__ = ()
_hx_fields = []
_hx_methods = ["compare", "compareArgs", "compareArg", "copy"]
_hx_statics = []
_hx_interfaces = [haxe_IMap]
_hx_super = haxe_ds_BalancedTree
def __init__(self):
super().__init__()
def compare(self,k1,k2):
d = (k1.index - k2.index)
if (d != 0):
return d
p1 = list(k1.params)
p2 = list(k2.params)
if ((len(p1) == 0) and ((len(p2) == 0))):
return 0
return self.compareArgs(p1,p2)
def compareArgs(self,a1,a2):
ld = (len(a1) - len(a2))
if (ld != 0):
return ld
_g = 0
_g1 = len(a1)
while (_g < _g1):
i = _g
_g = (_g + 1)
d = self.compareArg((a1[i] if i >= 0 and i < len(a1) else None),(a2[i] if i >= 0 and i < len(a2) else None))
if (d != 0):
return d
return 0
def compareArg(self,v1,v2):
if (Reflect.isEnumValue(v1) and Reflect.isEnumValue(v2)):
return self.compare(v1,v2)
elif (Std.isOfType(v1,list) and Std.isOfType(v2,list)):
return self.compareArgs(v1,v2)
else:
return Reflect.compare(v1,v2)
def copy(self):
copied = haxe_ds_EnumValueMap()
copied.root = self.root
return copied
@staticmethod
def _hx_empty_init(_hx_o): pass
class haxe_ds__HashMap_HashMap_Impl_:
_hx_class_name = "haxe.ds._HashMap.HashMap_Impl_"
__slots__ = ()
_hx_statics = ["_new", "set", "get", "exists", "remove", "keys", "copy", "iterator", "keyValueIterator", "clear"]
@staticmethod
def _new():
this1 = haxe_ds__HashMap_HashMapData()
return this1
@staticmethod
def set(this1,k,v):
this1.keys.set(k.hashCode(),k)
this1.values.set(k.hashCode(),v)
@staticmethod
def get(this1,k):
_this = this1.values
key = k.hashCode()
return _this.h.get(key,None)
@staticmethod
def exists(this1,k):
_this = this1.values
return (k.hashCode() in _this.h)
@staticmethod
def remove(this1,k):
this1.values.remove(k.hashCode())
return this1.keys.remove(k.hashCode())
@staticmethod
def keys(this1):
return this1.keys.iterator()
@staticmethod
def copy(this1):
copied = haxe_ds__HashMap_HashMapData()
copied.keys = this1.keys.copy()
copied.values = this1.values.copy()
return copied
@staticmethod
def iterator(this1):
return this1.values.iterator()
@staticmethod
def keyValueIterator(this1):
return haxe_iterators_HashMapKeyValueIterator(this1)
@staticmethod
def clear(this1):
this1.keys.h.clear()
this1.values.h.clear()
class haxe_ds__HashMap_HashMapData:
_hx_class_name = "haxe.ds._HashMap.HashMapData"
__slots__ = ("keys", "values")
_hx_fields = ["keys", "values"]
def __init__(self):
self.keys = haxe_ds_IntMap()
self.values = haxe_ds_IntMap()
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.keys = None
_hx_o.values = None
class haxe_ds_IntMap:
_hx_class_name = "haxe.ds.IntMap"
__slots__ = ("h",)
_hx_fields = ["h"]
_hx_methods = ["set", "get", "exists", "remove", "keys", "iterator", "keyValueIterator", "copy", "toString", "clear"]
_hx_interfaces = [haxe_IMap]
def __init__(self):
self.h = dict()
def set(self,key,value):
self.h[key] = value
def get(self,key):
return self.h.get(key,None)
def exists(self,key):
return (key in self.h)
def remove(self,key):
if (not (key in self.h)):
return False
del self.h[key]
return True
def keys(self):
return python_HaxeIterator(iter(self.h.keys()))
def iterator(self):
return python_HaxeIterator(iter(self.h.values()))
def keyValueIterator(self):
return haxe_iterators_MapKeyValueIterator(self)
def copy(self):
copied = haxe_ds_IntMap()
key = self.keys()
while key.hasNext():
key1 = key.next()
copied.set(key1,self.h.get(key1,None))
return copied
def toString(self):
s_b = python_lib_io_StringIO()
s_b.write("{")
it = self.keys()
i = it
while i.hasNext():
i1 = i.next()
s_b.write(Std.string(i1))
s_b.write(" => ")
s_b.write(Std.string(Std.string(self.h.get(i1,None))))
if it.hasNext():
s_b.write(", ")
s_b.write("}")
return s_b.getvalue()
def clear(self):
self.h.clear()
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.h = None
class haxe_ds__Map_Map_Impl_:
_hx_class_name = "haxe.ds._Map.Map_Impl_"
__slots__ = ()
_hx_statics = ["set", "get", "exists", "remove", "keys", "iterator", "keyValueIterator", "copy", "toString", "clear", "arrayWrite", "toStringMap", "toIntMap", "toEnumValueMapMap", "toObjectMap", "fromStringMap", "fromIntMap", "fromObjectMap"]
@staticmethod
def set(this1,key,value):
this1.set(key,value)
@staticmethod
def get(this1,key):
return this1.get(key)
@staticmethod
def exists(this1,key):
return this1.exists(key)
@staticmethod
def remove(this1,key):
return this1.remove(key)
@staticmethod
def keys(this1):
return this1.keys()
@staticmethod
def iterator(this1):
return this1.iterator()
@staticmethod
def keyValueIterator(this1):
return this1.keyValueIterator()
@staticmethod
def copy(this1):
return this1.copy()
@staticmethod
def toString(this1):
return this1.toString()
@staticmethod
def clear(this1):
this1.clear()
@staticmethod
def arrayWrite(this1,k,v):
this1.set(k,v)
return v
@staticmethod
def toStringMap(t):
return haxe_ds_StringMap()
@staticmethod
def toIntMap(t):
return haxe_ds_IntMap()
@staticmethod
def toEnumValueMapMap(t):
return haxe_ds_EnumValueMap()
@staticmethod
def toObjectMap(t):
return haxe_ds_ObjectMap()
@staticmethod
def fromStringMap(_hx_map):
return _hx_map
@staticmethod
def fromIntMap(_hx_map):
return _hx_map
@staticmethod
def fromObjectMap(_hx_map):
return _hx_map
class haxe_ds_ObjectMap:
_hx_class_name = "haxe.ds.ObjectMap"
__slots__ = ("h",)
_hx_fields = ["h"]
_hx_methods = ["set", "get", "exists", "remove", "keys", "iterator", "keyValueIterator", "copy", "toString", "clear"]
_hx_interfaces = [haxe_IMap]
def __init__(self):
self.h = dict()
def set(self,key,value):
self.h[key] = value
def get(self,key):
return self.h.get(key,None)
def exists(self,key):
return (key in self.h)
def remove(self,key):
r = (key in self.h)
if r:
del self.h[key]
return r
def keys(self):
return python_HaxeIterator(iter(self.h.keys()))
def iterator(self):
return python_HaxeIterator(iter(self.h.values()))
def keyValueIterator(self):
return haxe_iterators_MapKeyValueIterator(self)
def copy(self):
copied = haxe_ds_ObjectMap()
key = self.keys()
while key.hasNext():
key1 = key.next()
copied.set(key1,self.h.get(key1,None))
return copied
def toString(self):
s_b = python_lib_io_StringIO()
s_b.write("{")
it = self.keys()
i = it
while i.hasNext():
i1 = i.next()
s_b.write(Std.string(Std.string(i1)))
s_b.write(" => ")
s_b.write(Std.string(Std.string(self.h.get(i1,None))))
if it.hasNext():
s_b.write(", ")
s_b.write("}")
return s_b.getvalue()
def clear(self):
self.h.clear()
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.h = None
class haxe_ds__ReadOnlyArray_ReadOnlyArray_Impl_:
_hx_class_name = "haxe.ds._ReadOnlyArray.ReadOnlyArray_Impl_"
__slots__ = ()
_hx_statics = ["get_length", "get", "concat"]
length = None
@staticmethod
def get_length(this1):
return len(this1)
@staticmethod
def get(this1,i):
return (this1[i] if i >= 0 and i < len(this1) else None)
@staticmethod
def concat(this1,a):
return (this1 + a)
class haxe_ds_StringMap:
_hx_class_name = "haxe.ds.StringMap"
__slots__ = ("h",)
_hx_fields = ["h"]
_hx_methods = ["set", "get", "exists", "remove", "keys", "iterator", "keyValueIterator", "copy", "toString", "clear"]
_hx_interfaces = [haxe_IMap]
def __init__(self):
self.h = dict()
def set(self,key,value):
self.h[key] = value
def get(self,key):
return self.h.get(key,None)
def exists(self,key):
return (key in self.h)
def remove(self,key):
has = (key in self.h)
if has:
del self.h[key]
return has
def keys(self):
return python_HaxeIterator(iter(self.h.keys()))
def iterator(self):
return python_HaxeIterator(iter(self.h.values()))
def keyValueIterator(self):
return haxe_iterators_MapKeyValueIterator(self)
def copy(self):
copied = haxe_ds_StringMap()
key = self.keys()
while key.hasNext():
key1 = key.next()
value = self.h.get(key1,None)
copied.h[key1] = value
return copied
def toString(self):
s_b = python_lib_io_StringIO()
s_b.write("{")
it = self.keys()
i = it
while i.hasNext():
i1 = i.next()
s_b.write(Std.string(i1))
s_b.write(" => ")
s_b.write(Std.string(Std.string(self.h.get(i1,None))))
if it.hasNext():
s_b.write(", ")
s_b.write("}")
return s_b.getvalue()
def clear(self):
self.h.clear()
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.h = None
class haxe_ds_WeakMap:
_hx_class_name = "haxe.ds.WeakMap"
__slots__ = ()
_hx_methods = ["set", "get", "exists", "remove", "keys", "iterator", "keyValueIterator", "copy", "toString", "clear"]
_hx_interfaces = [haxe_IMap]
def __init__(self):
raise haxe_exceptions_NotImplementedException("Not implemented for this platform",None,_hx_AnonObject({'fileName': "haxe/ds/WeakMap.hx", 'lineNumber': 39, 'className': "haxe.ds.WeakMap", 'methodName': "new"}))
def set(self,key,value):
pass
def get(self,key):
return None
def exists(self,key):
return False
def remove(self,key):
return False
def keys(self):
return None
def iterator(self):
return None
def keyValueIterator(self):
return None
def copy(self):
return None
def toString(self):
return None
def clear(self):
pass
@staticmethod
def _hx_empty_init(_hx_o): pass
class haxe_exceptions_PosException(haxe_Exception):
_hx_class_name = "haxe.exceptions.PosException"
__slots__ = ("posInfos",)
_hx_fields = ["posInfos"]
_hx_methods = ["toString"]
_hx_statics = []
_hx_interfaces = []
_hx_super = haxe_Exception
def __init__(self,message,previous = None,pos = None):
self.posInfos = None
super().__init__(message,previous)
if (pos is None):
self.posInfos = _hx_AnonObject({'fileName': "(unknown)", 'lineNumber': 0, 'className': "(unknown)", 'methodName': "(unknown)"})
else:
self.posInfos = pos
_hx_local_0 = self
_hx_local_1 = _hx_local_0._hx___skipStack
_hx_local_0._hx___skipStack = (_hx_local_1 + 1)
_hx_local_1
def toString(self):
return ((((((((("" + HxOverrides.stringOrNull(super().toString())) + " in ") + HxOverrides.stringOrNull(self.posInfos.className)) + ".") + HxOverrides.stringOrNull(self.posInfos.methodName)) + " at ") + HxOverrides.stringOrNull(self.posInfos.fileName)) + ":") + Std.string(self.posInfos.lineNumber))
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.posInfos = None
class haxe_exceptions_NotImplementedException(haxe_exceptions_PosException):
_hx_class_name = "haxe.exceptions.NotImplementedException"
__slots__ = ()
_hx_fields = []
_hx_methods = []
_hx_statics = []
_hx_interfaces = []
_hx_super = haxe_exceptions_PosException
def __init__(self,message = None,previous = None,pos = None):
if (message is None):
message = "Not implemented"
super().__init__(message,previous,pos)
_hx_local_0 = self
_hx_local_1 = _hx_local_0._hx___skipStack
_hx_local_0._hx___skipStack = (_hx_local_1 + 1)
_hx_local_1
class haxe_io_Bytes:
_hx_class_name = "haxe.io.Bytes"
__slots__ = ("length", "b")
_hx_fields = ["length", "b"]
_hx_methods = ["get", "set", "blit", "fill", "sub", "compare", "getDouble", "getFloat", "setDouble", "setFloat", "getUInt16", "setUInt16", "getInt32", "getInt64", "setInt32", "setInt64", "getString", "readString", "toString", "toHex", "getData"]
_hx_statics = ["alloc", "ofString", "ofData", "ofHex", "fastGet"]
def __init__(self,length,b):
self.length = length
self.b = b
def get(self,pos):
return self.b[pos]
def set(self,pos,v):
self.b[pos] = (v & 255)
def blit(self,pos,src,srcpos,_hx_len):
if (((((pos < 0) or ((srcpos < 0))) or ((_hx_len < 0))) or (((pos + _hx_len) > self.length))) or (((srcpos + _hx_len) > src.length))):
raise haxe_Exception.thrown(haxe_io_Error.OutsideBounds)
self.b[pos:pos+_hx_len] = src.b[srcpos:srcpos+_hx_len]
def fill(self,pos,_hx_len,value):
_g = 0
_g1 = _hx_len
while (_g < _g1):
i = _g
_g = (_g + 1)
pos1 = pos
pos = (pos + 1)
self.b[pos1] = (value & 255)
def sub(self,pos,_hx_len):
if (((pos < 0) or ((_hx_len < 0))) or (((pos + _hx_len) > self.length))):
raise haxe_Exception.thrown(haxe_io_Error.OutsideBounds)
return haxe_io_Bytes(_hx_len,self.b[pos:(pos + _hx_len)])
def compare(self,other):
b1 = self.b
b2 = other.b
_hx_len = (self.length if ((self.length < other.length)) else other.length)
_g = 0
_g1 = _hx_len
while (_g < _g1):
i = _g
_g = (_g + 1)
if (b1[i] != b2[i]):
return (b1[i] - b2[i])
return (self.length - other.length)
def getDouble(self,pos):
v = (((self.b[pos] | ((self.b[(pos + 1)] << 8))) | ((self.b[(pos + 2)] << 16))) | ((self.b[(pos + 3)] << 24)))
pos1 = (pos + 4)
v1 = (((self.b[pos1] | ((self.b[(pos1 + 1)] << 8))) | ((self.b[(pos1 + 2)] << 16))) | ((self.b[(pos1 + 3)] << 24)))
return haxe_io_FPHelper.i64ToDouble(((v | -2147483648) if ((((v & -2147483648)) != 0)) else v),((v1 | -2147483648) if ((((v1 & -2147483648)) != 0)) else v1))
def getFloat(self,pos):
v = (((self.b[pos] | ((self.b[(pos + 1)] << 8))) | ((self.b[(pos + 2)] << 16))) | ((self.b[(pos + 3)] << 24)))
return haxe_io_FPHelper.i32ToFloat(((v | -2147483648) if ((((v & -2147483648)) != 0)) else v))
def setDouble(self,pos,v):
i = haxe_io_FPHelper.doubleToI64(v)
v = i.low
self.b[pos] = (v & 255)
self.b[(pos + 1)] = ((v >> 8) & 255)
self.b[(pos + 2)] = ((v >> 16) & 255)
self.b[(pos + 3)] = (HxOverrides.rshift(v, 24) & 255)
pos1 = (pos + 4)
v = i.high
self.b[pos1] = (v & 255)
self.b[(pos1 + 1)] = ((v >> 8) & 255)
self.b[(pos1 + 2)] = ((v >> 16) & 255)
self.b[(pos1 + 3)] = (HxOverrides.rshift(v, 24) & 255)
def setFloat(self,pos,v):
v1 = haxe_io_FPHelper.floatToI32(v)
self.b[pos] = (v1 & 255)
self.b[(pos + 1)] = ((v1 >> 8) & 255)
self.b[(pos + 2)] = ((v1 >> 16) & 255)
self.b[(pos + 3)] = (HxOverrides.rshift(v1, 24) & 255)
def getUInt16(self,pos):
return (self.b[pos] | ((self.b[(pos + 1)] << 8)))
def setUInt16(self,pos,v):
self.b[pos] = (v & 255)
self.b[(pos + 1)] = ((v >> 8) & 255)
def getInt32(self,pos):
v = (((self.b[pos] | ((self.b[(pos + 1)] << 8))) | ((self.b[(pos + 2)] << 16))) | ((self.b[(pos + 3)] << 24)))
if (((v & -2147483648)) != 0):
return (v | -2147483648)
else:
return v
def getInt64(self,pos):
pos1 = (pos + 4)
v = (((self.b[pos1] | ((self.b[(pos1 + 1)] << 8))) | ((self.b[(pos1 + 2)] << 16))) | ((self.b[(pos1 + 3)] << 24)))
v1 = (((self.b[pos] | ((self.b[(pos + 1)] << 8))) | ((self.b[(pos + 2)] << 16))) | ((self.b[(pos + 3)] << 24)))
this1 = haxe__Int64____Int64(((v | -2147483648) if ((((v & -2147483648)) != 0)) else v),((v1 | -2147483648) if ((((v1 & -2147483648)) != 0)) else v1))
return this1
def setInt32(self,pos,v):
self.b[pos] = (v & 255)
self.b[(pos + 1)] = ((v >> 8) & 255)
self.b[(pos + 2)] = ((v >> 16) & 255)
self.b[(pos + 3)] = (HxOverrides.rshift(v, 24) & 255)
def setInt64(self,pos,v):
v1 = v.low
self.b[pos] = (v1 & 255)
self.b[(pos + 1)] = ((v1 >> 8) & 255)
self.b[(pos + 2)] = ((v1 >> 16) & 255)
self.b[(pos + 3)] = (HxOverrides.rshift(v1, 24) & 255)
pos1 = (pos + 4)
v1 = v.high
self.b[pos1] = (v1 & 255)
self.b[(pos1 + 1)] = ((v1 >> 8) & 255)
self.b[(pos1 + 2)] = ((v1 >> 16) & 255)
self.b[(pos1 + 3)] = (HxOverrides.rshift(v1, 24) & 255)
def getString(self,pos,_hx_len,encoding = None):
tmp = (encoding is None)
if (((pos < 0) or ((_hx_len < 0))) or (((pos + _hx_len) > self.length))):
raise haxe_Exception.thrown(haxe_io_Error.OutsideBounds)
return self.b[pos:pos+_hx_len].decode('UTF-8','replace')
def readString(self,pos,_hx_len):
return self.getString(pos,_hx_len)
def toString(self):
return self.getString(0,self.length)
def toHex(self):
s_b = python_lib_io_StringIO()
chars = []
_hx_str = "0123456789abcdef"
_g = 0
_g1 = len(_hx_str)
while (_g < _g1):
i = _g
_g = (_g + 1)
x = HxString.charCodeAt(_hx_str,i)
chars.append(x)
_g = 0
_g1 = self.length
while (_g < _g1):
i = _g
_g = (_g + 1)
c = self.b[i]
s_b.write("".join(map(chr,[python_internal_ArrayImpl._get(chars, (c >> 4))])))
s_b.write("".join(map(chr,[python_internal_ArrayImpl._get(chars, (c & 15))])))
return s_b.getvalue()
def getData(self):
return self.b
@staticmethod
def alloc(length):
return haxe_io_Bytes(length,bytearray(length))
@staticmethod
def ofString(s,encoding = None):
b = bytearray(s,"UTF-8")
return haxe_io_Bytes(len(b),b)
@staticmethod
def ofData(b):
return haxe_io_Bytes(len(b),b)
@staticmethod
def ofHex(s):
_hx_len = len(s)
if (((_hx_len & 1)) != 0):
raise haxe_Exception.thrown("Not a hex string (odd number of digits)")
ret = haxe_io_Bytes.alloc((_hx_len >> 1))
_g = 0
_g1 = ret.length
while (_g < _g1):
i = _g
_g = (_g + 1)
index = (i * 2)
high = (-1 if ((index >= len(s))) else ord(s[index]))
index1 = ((i * 2) + 1)
low = (-1 if ((index1 >= len(s))) else ord(s[index1]))
high = (((high & 15)) + ((((((high & 64)) >> 6)) * 9)))
low = (((low & 15)) + ((((((low & 64)) >> 6)) * 9)))
ret.b[i] = (((((high << 4) | low)) & 255) & 255)
return ret
@staticmethod
def fastGet(b,pos):
return b[pos]
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.length = None
_hx_o.b = None
class haxe_io_BytesBuffer:
_hx_class_name = "haxe.io.BytesBuffer"
__slots__ = ("b",)
_hx_fields = ["b"]
_hx_methods = ["get_length", "addByte", "add", "addString", "addInt32", "addInt64", "addFloat", "addDouble", "addBytes", "getBytes"]
def __init__(self):
self.b = bytearray()
def get_length(self):
return len(self.b)
def addByte(self,byte):
self.b.append(byte)
def add(self,src):
self.b.extend(src.b)
def addString(self,v,encoding = None):
self.b.extend(bytearray(v,"UTF-8"))
def addInt32(self,v):
self.b.append((v & 255))
self.b.append(((v >> 8) & 255))
self.b.append(((v >> 16) & 255))
self.b.append(HxOverrides.rshift(v, 24))
def addInt64(self,v):
self.addInt32(v.low)
self.addInt32(v.high)
def addFloat(self,v):
self.addInt32(haxe_io_FPHelper.floatToI32(v))
def addDouble(self,v):
self.addInt64(haxe_io_FPHelper.doubleToI64(v))
def addBytes(self,src,pos,_hx_len):
if (((pos < 0) or ((_hx_len < 0))) or (((pos + _hx_len) > src.length))):
raise haxe_Exception.thrown(haxe_io_Error.OutsideBounds)
self.b.extend(src.b[pos:(pos + _hx_len)])
def getBytes(self):
_hx_bytes = haxe_io_Bytes(len(self.b),self.b)
self.b = None
return _hx_bytes
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.b = None
class haxe_io_Encoding(Enum):
__slots__ = ()
_hx_class_name = "haxe.io.Encoding"
_hx_constructs = ["UTF8", "RawNative"]
haxe_io_Encoding.UTF8 = haxe_io_Encoding("UTF8", 0, ())
haxe_io_Encoding.RawNative = haxe_io_Encoding("RawNative", 1, ())
class haxe_io_Eof:
_hx_class_name = "haxe.io.Eof"
__slots__ = ()
_hx_methods = ["toString"]
def __init__(self):
pass
def toString(self):
return "Eof"
@staticmethod
def _hx_empty_init(_hx_o): pass
class haxe_io_Error(Enum):
__slots__ = ()
_hx_class_name = "haxe.io.Error"
_hx_constructs = ["Blocked", "Overflow", "OutsideBounds", "Custom"]
@staticmethod
def Custom(e):
return haxe_io_Error("Custom", 3, (e,))
haxe_io_Error.Blocked = haxe_io_Error("Blocked", 0, ())
haxe_io_Error.Overflow = haxe_io_Error("Overflow", 1, ())
haxe_io_Error.OutsideBounds = haxe_io_Error("OutsideBounds", 2, ())
class haxe_io_FPHelper:
_hx_class_name = "haxe.io.FPHelper"
__slots__ = ()
_hx_statics = ["i64tmp", "LN2", "_i32ToFloat", "_i64ToDouble", "_floatToI32", "_doubleToI64", "i32ToFloat", "floatToI32", "i64ToDouble", "doubleToI64"]
@staticmethod
def _i32ToFloat(i):
sign = (1 - ((HxOverrides.rshift(i, 31) << 1)))
e = ((i >> 23) & 255)
if (e == 255):
if (((i & 8388607)) == 0):
if (sign > 0):
return Math.POSITIVE_INFINITY
else:
return Math.NEGATIVE_INFINITY
else:
return Math.NaN
m = ((((i & 8388607)) << 1) if ((e == 0)) else ((i & 8388607) | 8388608))
return ((sign * m) * Math.pow(2,(e - 150)))
@staticmethod
def _i64ToDouble(lo,hi):
sign = (1 - ((HxOverrides.rshift(hi, 31) << 1)))
e = ((hi >> 20) & 2047)
if (e == 2047):
if ((lo == 0) and ((((hi & 1048575)) == 0))):
if (sign > 0):
return Math.POSITIVE_INFINITY
else:
return Math.NEGATIVE_INFINITY
else:
return Math.NaN
m = (2.220446049250313e-16 * ((((((hi & 1048575)) * 4294967296.) + (((HxOverrides.rshift(lo, 31)) * 2147483648.))) + ((lo & 2147483647)))))
if (e == 0):
m = (m * 2.0)
else:
m = (m + 1.0)
return ((sign * m) * Math.pow(2,(e - 1023)))
@staticmethod
def _floatToI32(f):
if (f == 0):
return 0
af = (-f if ((f < 0)) else f)
exp = Math.floor((((Math.NEGATIVE_INFINITY if ((af == 0.0)) else (Math.NaN if ((af < 0.0)) else python_lib_Math.log(af)))) / 0.6931471805599453))
if (exp > 127):
return 2139095040
else:
if (exp <= -127):
exp = -127
af = (af * 7.1362384635298e+44)
else:
af = ((((af / Math.pow(2,exp)) - 1.0)) * 8388608)
return ((((-2147483648 if ((f < 0)) else 0)) | (((exp + 127) << 23))) | Math.floor((af + 0.5)))
@staticmethod
def _doubleToI64(v):
i64 = haxe_io_FPHelper.i64tmp
if (v == 0):
i64.low = 0
i64.high = 0
elif (not ((((v != Math.POSITIVE_INFINITY) and ((v != Math.NEGATIVE_INFINITY))) and (not python_lib_Math.isnan(v))))):
i64.low = 0
i64.high = (2146435072 if ((v > 0)) else -1048576)
else:
av = (-v if ((v < 0)) else v)
exp = Math.floor((((Math.NEGATIVE_INFINITY if ((av == 0.0)) else (Math.NaN if ((av < 0.0)) else python_lib_Math.log(av)))) / 0.6931471805599453))
if (exp > 1023):
i64.low = -1
i64.high = 2146435071
else:
if (exp <= -1023):
exp = -1023
av = (av / 2.2250738585072014e-308)
else:
av = ((av / Math.pow(2,exp)) - 1.0)
v1 = (av * 4503599627370496.)
sig = (v1 if (((v1 == Math.POSITIVE_INFINITY) or ((v1 == Math.NEGATIVE_INFINITY)))) else (Math.NaN if (python_lib_Math.isnan(v1)) else Math.floor((v1 + 0.5))))
sig_l = None
try:
sig_l = int(sig)
except BaseException as _g:
None
sig_l = None
sig_l1 = sig_l
sig_h = None
try:
sig_h = int((sig / 4294967296.0))
except BaseException as _g:
None
sig_h = None
sig_h1 = sig_h
i64.low = sig_l1
i64.high = ((((-2147483648 if ((v < 0)) else 0)) | (((exp + 1023) << 20))) | sig_h1)
return i64
@staticmethod
def i32ToFloat(i):
sign = (1 - ((HxOverrides.rshift(i, 31) << 1)))
e = ((i >> 23) & 255)
if (e == 255):
if (((i & 8388607)) == 0):
if (sign > 0):
return Math.POSITIVE_INFINITY
else:
return Math.NEGATIVE_INFINITY
else:
return Math.NaN
else:
m = ((((i & 8388607)) << 1) if ((e == 0)) else ((i & 8388607) | 8388608))
return ((sign * m) * Math.pow(2,(e - 150)))
@staticmethod
def floatToI32(f):
if (f == 0):
return 0
else:
af = (-f if ((f < 0)) else f)
exp = Math.floor((((Math.NEGATIVE_INFINITY if ((af == 0.0)) else (Math.NaN if ((af < 0.0)) else python_lib_Math.log(af)))) / 0.6931471805599453))
if (exp > 127):
return 2139095040
else:
if (exp <= -127):
exp = -127
af = (af * 7.1362384635298e+44)
else:
af = ((((af / Math.pow(2,exp)) - 1.0)) * 8388608)
return ((((-2147483648 if ((f < 0)) else 0)) | (((exp + 127) << 23))) | Math.floor((af + 0.5)))
@staticmethod
def i64ToDouble(low,high):
sign = (1 - ((HxOverrides.rshift(high, 31) << 1)))
e = ((high >> 20) & 2047)
if (e == 2047):
if ((low == 0) and ((((high & 1048575)) == 0))):
if (sign > 0):
return Math.POSITIVE_INFINITY
else:
return Math.NEGATIVE_INFINITY
else:
return Math.NaN
else:
m = (2.220446049250313e-16 * ((((((high & 1048575)) * 4294967296.) + (((HxOverrides.rshift(low, 31)) * 2147483648.))) + ((low & 2147483647)))))
if (e == 0):
m = (m * 2.0)
else:
m = (m + 1.0)
return ((sign * m) * Math.pow(2,(e - 1023)))
@staticmethod
def doubleToI64(v):
i64 = haxe_io_FPHelper.i64tmp
if (v == 0):
i64.low = 0
i64.high = 0
elif (not ((((v != Math.POSITIVE_INFINITY) and ((v != Math.NEGATIVE_INFINITY))) and (not python_lib_Math.isnan(v))))):
i64.low = 0
i64.high = (2146435072 if ((v > 0)) else -1048576)
else:
av = (-v if ((v < 0)) else v)
exp = Math.floor((((Math.NEGATIVE_INFINITY if ((av == 0.0)) else (Math.NaN if ((av < 0.0)) else python_lib_Math.log(av)))) / 0.6931471805599453))
if (exp > 1023):
i64.low = -1
i64.high = 2146435071
else:
if (exp <= -1023):
exp = -1023
av = (av / 2.2250738585072014e-308)
else:
av = ((av / Math.pow(2,exp)) - 1.0)
v1 = (av * 4503599627370496.)
sig = (v1 if (((v1 == Math.POSITIVE_INFINITY) or ((v1 == Math.NEGATIVE_INFINITY)))) else (Math.NaN if (python_lib_Math.isnan(v1)) else Math.floor((v1 + 0.5))))
sig_l = None
try:
sig_l = int(sig)
except BaseException as _g:
None
sig_l = None
sig_l1 = sig_l
sig_h = None
try:
sig_h = int((sig / 4294967296.0))
except BaseException as _g:
None
sig_h = None
sig_h1 = sig_h
i64.low = sig_l1
i64.high = ((((-2147483648 if ((v < 0)) else 0)) | (((exp + 1023) << 20))) | sig_h1)
return i64
class haxe_io_Input:
_hx_class_name = "haxe.io.Input"
__slots__ = ("bigEndian",)
_hx_fields = ["bigEndian"]
_hx_methods = ["readByte", "readBytes", "close", "set_bigEndian", "readAll", "readFullBytes", "read", "readUntil", "readLine", "readFloat", "readDouble", "readInt8", "readInt16", "readUInt16", "readInt24", "readUInt24", "readInt32", "readString", "getDoubleSig"]
def readByte(self):
raise haxe_exceptions_NotImplementedException(None,None,_hx_AnonObject({'fileName': "haxe/io/Input.hx", 'lineNumber': 53, 'className': "haxe.io.Input", 'methodName': "readByte"}))
def readBytes(self,s,pos,_hx_len):
k = _hx_len
b = s.b
if (((pos < 0) or ((_hx_len < 0))) or (((pos + _hx_len) > s.length))):
raise haxe_Exception.thrown(haxe_io_Error.OutsideBounds)
try:
while (k > 0):
b[pos] = self.readByte()
pos = (pos + 1)
k = (k - 1)
except BaseException as _g:
None
if (not Std.isOfType(haxe_Exception.caught(_g).unwrap(),haxe_io_Eof)):
raise _g
return (_hx_len - k)
def close(self):
pass
def set_bigEndian(self,b):
self.bigEndian = b
return b
def readAll(self,bufsize = None):
if (bufsize is None):
bufsize = 16384
buf = haxe_io_Bytes.alloc(bufsize)
total = haxe_io_BytesBuffer()
try:
while True:
_hx_len = self.readBytes(buf,0,bufsize)
if (_hx_len == 0):
raise haxe_Exception.thrown(haxe_io_Error.Blocked)
if ((_hx_len < 0) or ((_hx_len > buf.length))):
raise haxe_Exception.thrown(haxe_io_Error.OutsideBounds)
total.b.extend(buf.b[0:_hx_len])
except BaseException as _g:
None
if (not Std.isOfType(haxe_Exception.caught(_g).unwrap(),haxe_io_Eof)):
raise _g
return total.getBytes()
def readFullBytes(self,s,pos,_hx_len):
while (_hx_len > 0):
k = self.readBytes(s,pos,_hx_len)
if (k == 0):
raise haxe_Exception.thrown(haxe_io_Error.Blocked)
pos = (pos + k)
_hx_len = (_hx_len - k)
def read(self,nbytes):
s = haxe_io_Bytes.alloc(nbytes)
p = 0
while (nbytes > 0):
k = self.readBytes(s,p,nbytes)
if (k == 0):
raise haxe_Exception.thrown(haxe_io_Error.Blocked)
p = (p + k)
nbytes = (nbytes - k)
return s
def readUntil(self,end):
buf = haxe_io_BytesBuffer()
last = None
while True:
last = self.readByte()
if (not ((last != end))):
break
buf.b.append(last)
return buf.getBytes().toString()
def readLine(self):
buf = haxe_io_BytesBuffer()
last = None
s = None
try:
while True:
last = self.readByte()
if (not ((last != 10))):
break
buf.b.append(last)
s = buf.getBytes().toString()
if (HxString.charCodeAt(s,(len(s) - 1)) == 13):
s = HxString.substr(s,0,-1)
except BaseException as _g:
None
_g1 = haxe_Exception.caught(_g).unwrap()
if Std.isOfType(_g1,haxe_io_Eof):
e = _g1
s = buf.getBytes().toString()
if (len(s) == 0):
raise haxe_Exception.thrown(e)
else:
raise _g
return s
def readFloat(self):
return haxe_io_FPHelper.i32ToFloat(self.readInt32())
def readDouble(self):
i1 = self.readInt32()
i2 = self.readInt32()
if self.bigEndian:
return haxe_io_FPHelper.i64ToDouble(i2,i1)
else:
return haxe_io_FPHelper.i64ToDouble(i1,i2)
def readInt8(self):
n = self.readByte()
if (n >= 128):
return (n - 256)
return n
def readInt16(self):
ch1 = self.readByte()
ch2 = self.readByte()
n = ((ch2 | ((ch1 << 8))) if (self.bigEndian) else (ch1 | ((ch2 << 8))))
if (((n & 32768)) != 0):
return (n - 65536)
return n
def readUInt16(self):
ch1 = self.readByte()
ch2 = self.readByte()
if self.bigEndian:
return (ch2 | ((ch1 << 8)))
else:
return (ch1 | ((ch2 << 8)))
def readInt24(self):
ch1 = self.readByte()
ch2 = self.readByte()
ch3 = self.readByte()
n = (((ch3 | ((ch2 << 8))) | ((ch1 << 16))) if (self.bigEndian) else ((ch1 | ((ch2 << 8))) | ((ch3 << 16))))
if (((n & 8388608)) != 0):
return (n - 16777216)
return n
def readUInt24(self):
ch1 = self.readByte()
ch2 = self.readByte()
ch3 = self.readByte()
if self.bigEndian:
return ((ch3 | ((ch2 << 8))) | ((ch1 << 16)))
else:
return ((ch1 | ((ch2 << 8))) | ((ch3 << 16)))
def readInt32(self):
ch1 = self.readByte()
ch2 = self.readByte()
ch3 = self.readByte()
ch4 = self.readByte()
n = ((((ch4 | ((ch3 << 8))) | ((ch2 << 16))) | ((ch1 << 24))) if (self.bigEndian) else (((ch1 | ((ch2 << 8))) | ((ch3 << 16))) | ((ch4 << 24))))
if (((n & -2147483648)) != 0):
return (n | -2147483648)
else:
return n
def readString(self,_hx_len,encoding = None):
b = haxe_io_Bytes.alloc(_hx_len)
self.readFullBytes(b,0,_hx_len)
return b.getString(0,_hx_len,encoding)
def getDoubleSig(self,_hx_bytes):
return ((((((((((_hx_bytes[1] if 1 < len(_hx_bytes) else None) & 15)) << 16) | (((_hx_bytes[2] if 2 < len(_hx_bytes) else None) << 8))) | (_hx_bytes[3] if 3 < len(_hx_bytes) else None))) * 4294967296.) + (((((_hx_bytes[4] if 4 < len(_hx_bytes) else None) >> 7)) * 2147483648))) + ((((((((_hx_bytes[4] if 4 < len(_hx_bytes) else None) & 127)) << 24) | (((_hx_bytes[5] if 5 < len(_hx_bytes) else None) << 16))) | (((_hx_bytes[6] if 6 < len(_hx_bytes) else None) << 8))) | (_hx_bytes[7] if 7 < len(_hx_bytes) else None))))
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.bigEndian = None
class haxe_io_Output:
_hx_class_name = "haxe.io.Output"
__slots__ = ("bigEndian",)
_hx_fields = ["bigEndian"]
_hx_methods = ["writeByte", "writeBytes", "flush", "close", "set_bigEndian", "write", "writeFullBytes", "writeFloat", "writeDouble", "writeInt8", "writeInt16", "writeUInt16", "writeInt24", "writeUInt24", "writeInt32", "prepare", "writeInput", "writeString"]
def writeByte(self,c):
raise haxe_exceptions_NotImplementedException(None,None,_hx_AnonObject({'fileName': "haxe/io/Output.hx", 'lineNumber': 47, 'className': "haxe.io.Output", 'methodName': "writeByte"}))
def writeBytes(self,s,pos,_hx_len):
if (((pos < 0) or ((_hx_len < 0))) or (((pos + _hx_len) > s.length))):
raise haxe_Exception.thrown(haxe_io_Error.OutsideBounds)
b = s.b
k = _hx_len
while (k > 0):
self.writeByte(b[pos])
pos = (pos + 1)
k = (k - 1)
return _hx_len
def flush(self):
pass
def close(self):
pass
def set_bigEndian(self,b):
self.bigEndian = b
return b
def write(self,s):
l = s.length
p = 0
while (l > 0):
k = self.writeBytes(s,p,l)
if (k == 0):
raise haxe_Exception.thrown(haxe_io_Error.Blocked)
p = (p + k)
l = (l - k)
def writeFullBytes(self,s,pos,_hx_len):
while (_hx_len > 0):
k = self.writeBytes(s,pos,_hx_len)
pos = (pos + k)
_hx_len = (_hx_len - k)
def writeFloat(self,x):
self.writeInt32(haxe_io_FPHelper.floatToI32(x))
def writeDouble(self,x):
i64 = haxe_io_FPHelper.doubleToI64(x)
if self.bigEndian:
self.writeInt32(i64.high)
self.writeInt32(i64.low)
else:
self.writeInt32(i64.low)
self.writeInt32(i64.high)
def writeInt8(self,x):
if ((x < -128) or ((x >= 128))):
raise haxe_Exception.thrown(haxe_io_Error.Overflow)
self.writeByte((x & 255))
def writeInt16(self,x):
if ((x < -32768) or ((x >= 32768))):
raise haxe_Exception.thrown(haxe_io_Error.Overflow)
self.writeUInt16((x & 65535))
def writeUInt16(self,x):
if ((x < 0) or ((x >= 65536))):
raise haxe_Exception.thrown(haxe_io_Error.Overflow)
if self.bigEndian:
self.writeByte((x >> 8))
self.writeByte((x & 255))
else:
self.writeByte((x & 255))
self.writeByte((x >> 8))
def writeInt24(self,x):
if ((x < -8388608) or ((x >= 8388608))):
raise haxe_Exception.thrown(haxe_io_Error.Overflow)
self.writeUInt24((x & 16777215))
def writeUInt24(self,x):
if ((x < 0) or ((x >= 16777216))):
raise haxe_Exception.thrown(haxe_io_Error.Overflow)
if self.bigEndian:
self.writeByte((x >> 16))
self.writeByte(((x >> 8) & 255))
self.writeByte((x & 255))
else:
self.writeByte((x & 255))
self.writeByte(((x >> 8) & 255))
self.writeByte((x >> 16))
def writeInt32(self,x):
if self.bigEndian:
self.writeByte(HxOverrides.rshift(x, 24))
self.writeByte(((x >> 16) & 255))
self.writeByte(((x >> 8) & 255))
self.writeByte((x & 255))
else:
self.writeByte((x & 255))
self.writeByte(((x >> 8) & 255))
self.writeByte(((x >> 16) & 255))
self.writeByte(HxOverrides.rshift(x, 24))
def prepare(self,nbytes):
pass
def writeInput(self,i,bufsize = None):
if (bufsize is None):
bufsize = 4096
buf = haxe_io_Bytes.alloc(bufsize)
try:
while True:
_hx_len = i.readBytes(buf,0,bufsize)
if (_hx_len == 0):
raise haxe_Exception.thrown(haxe_io_Error.Blocked)
p = 0
while (_hx_len > 0):
k = self.writeBytes(buf,p,_hx_len)
if (k == 0):
raise haxe_Exception.thrown(haxe_io_Error.Blocked)
p = (p + k)
_hx_len = (_hx_len - k)
except BaseException as _g:
None
if (not Std.isOfType(haxe_Exception.caught(_g).unwrap(),haxe_io_Eof)):
raise _g
def writeString(self,s,encoding = None):
b = haxe_io_Bytes.ofString(s,encoding)
self.writeFullBytes(b,0,b.length)
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.bigEndian = None
class haxe_io_Path:
_hx_class_name = "haxe.io.Path"
__slots__ = ("dir", "file", "ext", "backslash")
_hx_fields = ["dir", "file", "ext", "backslash"]
_hx_methods = ["toString"]
_hx_statics = ["withoutExtension", "withoutDirectory", "directory", "extension", "withExtension", "join", "normalize", "addTrailingSlash", "removeTrailingSlashes", "isAbsolute", "unescape", "escape"]
def __init__(self,path):
self.backslash = None
self.ext = None
self.file = None
self.dir = None
path1 = path
_hx_local_0 = len(path1)
if (_hx_local_0 == 1):
if (path1 == "."):
self.dir = path
self.file = ""
return
elif (_hx_local_0 == 2):
if (path1 == ".."):
self.dir = path
self.file = ""
return
else:
pass
startIndex = None
c1 = None
if (startIndex is None):
c1 = path.rfind("/", 0, len(path))
else:
i = path.rfind("/", 0, (startIndex + 1))
startLeft = (max(0,((startIndex + 1) - len("/"))) if ((i == -1)) else (i + 1))
check = path.find("/", startLeft, len(path))
c1 = (check if (((check > i) and ((check <= startIndex)))) else i)
startIndex = None
c2 = None
if (startIndex is None):
c2 = path.rfind("\\", 0, len(path))
else:
i = path.rfind("\\", 0, (startIndex + 1))
startLeft = (max(0,((startIndex + 1) - len("\\"))) if ((i == -1)) else (i + 1))
check = path.find("\\", startLeft, len(path))
c2 = (check if (((check > i) and ((check <= startIndex)))) else i)
if (c1 < c2):
self.dir = HxString.substr(path,0,c2)
path = HxString.substr(path,(c2 + 1),None)
self.backslash = True
elif (c2 < c1):
self.dir = HxString.substr(path,0,c1)
path = HxString.substr(path,(c1 + 1),None)
else:
self.dir = None
startIndex = None
cp = None
if (startIndex is None):
cp = path.rfind(".", 0, len(path))
else:
i = path.rfind(".", 0, (startIndex + 1))
startLeft = (max(0,((startIndex + 1) - len("."))) if ((i == -1)) else (i + 1))
check = path.find(".", startLeft, len(path))
cp = (check if (((check > i) and ((check <= startIndex)))) else i)
if (cp != -1):
self.ext = HxString.substr(path,(cp + 1),None)
self.file = HxString.substr(path,0,cp)
else:
self.ext = None
self.file = path
def toString(self):
return ((HxOverrides.stringOrNull((("" if ((self.dir is None)) else (HxOverrides.stringOrNull(self.dir) + HxOverrides.stringOrNull((("\\" if (self.backslash) else "/"))))))) + HxOverrides.stringOrNull(self.file)) + HxOverrides.stringOrNull((("" if ((self.ext is None)) else ("." + HxOverrides.stringOrNull(self.ext))))))
@staticmethod
def withoutExtension(path):
s = haxe_io_Path(path)
s.ext = None
return s.toString()
@staticmethod
def withoutDirectory(path):
s = haxe_io_Path(path)
s.dir = None
return s.toString()
@staticmethod
def directory(path):
s = haxe_io_Path(path)
if (s.dir is None):
return ""
return s.dir
@staticmethod
def extension(path):
s = haxe_io_Path(path)
if (s.ext is None):
return ""
return s.ext
@staticmethod
def withExtension(path,ext):
s = haxe_io_Path(path)
s.ext = ext
return s.toString()
@staticmethod
def join(paths):
def _hx_local_0(s):
if (s is not None):
return (s != "")
else:
return False
paths1 = list(filter(_hx_local_0,paths))
if (len(paths1) == 0):
return ""
path = (paths1[0] if 0 < len(paths1) else None)
_g = 1
_g1 = len(paths1)
while (_g < _g1):
i = _g
_g = (_g + 1)
path = haxe_io_Path.addTrailingSlash(path)
path = (("null" if path is None else path) + HxOverrides.stringOrNull((paths1[i] if i >= 0 and i < len(paths1) else None)))
return haxe_io_Path.normalize(path)
@staticmethod
def normalize(path):
slash = "/"
_this = path.split("\\")
path = slash.join([python_Boot.toString1(x1,'') for x1 in _this])
if (path == slash):
return slash
target = []
_g = 0
_g1 = (list(path) if ((slash == "")) else path.split(slash))
while (_g < len(_g1)):
token = (_g1[_g] if _g >= 0 and _g < len(_g1) else None)
_g = (_g + 1)
if (((token == "..") and ((len(target) > 0))) and ((python_internal_ArrayImpl._get(target, (len(target) - 1)) != ".."))):
if (len(target) != 0):
target.pop()
elif (token == ""):
if ((len(target) > 0) or ((HxString.charCodeAt(path,0) == 47))):
target.append(token)
elif (token != "."):
target.append(token)
tmp = slash.join([python_Boot.toString1(x1,'') for x1 in target])
acc_b = python_lib_io_StringIO()
colon = False
slashes = False
_g = 0
_g1 = len(tmp)
while (_g < _g1):
i = _g
_g = (_g + 1)
_g2 = (-1 if ((i >= len(tmp))) else ord(tmp[i]))
_g3 = _g2
if (_g3 == 47):
if (not colon):
slashes = True
else:
i1 = _g2
colon = False
if slashes:
acc_b.write("/")
slashes = False
acc_b.write("".join(map(chr,[i1])))
elif (_g3 == 58):
acc_b.write(":")
colon = True
else:
i2 = _g2
colon = False
if slashes:
acc_b.write("/")
slashes = False
acc_b.write("".join(map(chr,[i2])))
return acc_b.getvalue()
@staticmethod
def addTrailingSlash(path):
if (len(path) == 0):
return "/"
startIndex = None
c1 = None
if (startIndex is None):
c1 = path.rfind("/", 0, len(path))
else:
i = path.rfind("/", 0, (startIndex + 1))
startLeft = (max(0,((startIndex + 1) - len("/"))) if ((i == -1)) else (i + 1))
check = path.find("/", startLeft, len(path))
c1 = (check if (((check > i) and ((check <= startIndex)))) else i)
startIndex = None
c2 = None
if (startIndex is None):
c2 = path.rfind("\\", 0, len(path))
else:
i = path.rfind("\\", 0, (startIndex + 1))
startLeft = (max(0,((startIndex + 1) - len("\\"))) if ((i == -1)) else (i + 1))
check = path.find("\\", startLeft, len(path))
c2 = (check if (((check > i) and ((check <= startIndex)))) else i)
if (c1 < c2):
if (c2 != ((len(path) - 1))):
return (("null" if path is None else path) + "\\")
else:
return path
elif (c1 != ((len(path) - 1))):
return (("null" if path is None else path) + "/")
else:
return path
@staticmethod
def removeTrailingSlashes(path):
while True:
_g = HxString.charCodeAt(path,(len(path) - 1))
if (_g is None):
break
else:
_g1 = _g
if ((_g1 == 92) or ((_g1 == 47))):
path = HxString.substr(path,0,-1)
else:
break
return path
@staticmethod
def isAbsolute(path):
if path.startswith("/"):
return True
if ((("" if ((1 >= len(path))) else path[1])) == ":"):
return True
if path.startswith("\\\\"):
return True
return False
@staticmethod
def unescape(path):
regex = EReg("-x([0-9][0-9])","g")
def _hx_local_1():
def _hx_local_0(regex):
code = Std.parseInt(regex.matchObj.group(1))
return "".join(map(chr,[code]))
return regex.map(path,_hx_local_0)
return _hx_local_1()
@staticmethod
def escape(path,allowSlashes = None):
if (allowSlashes is None):
allowSlashes = False
regex = (EReg("[^A-Za-z0-9_/\\\\\\.]","g") if allowSlashes else EReg("[^A-Za-z0-9_\\.]","g"))
def _hx_local_1():
def _hx_local_0(v):
return ("-x" + Std.string(HxString.charCodeAt(v.matchObj.group(0),0)))
return regex.map(path,_hx_local_0)
return _hx_local_1()
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.dir = None
_hx_o.file = None
_hx_o.ext = None
_hx_o.backslash = None
class haxe_iterators_ArrayIterator:
_hx_class_name = "haxe.iterators.ArrayIterator"
__slots__ = ("array", "current")
_hx_fields = ["array", "current"]
_hx_methods = ["hasNext", "next"]
def __init__(self,array):
self.current = 0
self.array = array
def hasNext(self):
return (self.current < len(self.array))
def next(self):
def _hx_local_3():
def _hx_local_2():
_hx_local_0 = self
_hx_local_1 = _hx_local_0.current
_hx_local_0.current = (_hx_local_1 + 1)
return _hx_local_1
return python_internal_ArrayImpl._get(self.array, _hx_local_2())
return _hx_local_3()
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.array = None
_hx_o.current = None
class haxe_iterators_ArrayKeyValueIterator:
_hx_class_name = "haxe.iterators.ArrayKeyValueIterator"
__slots__ = ("current", "array")
_hx_fields = ["current", "array"]
_hx_methods = ["hasNext", "next"]
def __init__(self,array):
self.current = 0
self.array = array
def hasNext(self):
return (self.current < len(self.array))
def next(self):
def _hx_local_3():
def _hx_local_2():
_hx_local_0 = self
_hx_local_1 = _hx_local_0.current
_hx_local_0.current = (_hx_local_1 + 1)
return _hx_local_1
return _hx_AnonObject({'value': python_internal_ArrayImpl._get(self.array, self.current), 'key': _hx_local_2()})
return _hx_local_3()
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.current = None
_hx_o.array = None
class haxe_iterators_DynamicAccessIterator:
_hx_class_name = "haxe.iterators.DynamicAccessIterator"
__slots__ = ("access", "keys", "index")
_hx_fields = ["access", "keys", "index"]
_hx_methods = ["hasNext", "next"]
def __init__(self,access):
self.access = access
self.keys = python_Boot.fields(access)
self.index = 0
def hasNext(self):
return (self.index < len(self.keys))
def next(self):
def _hx_local_2():
_hx_local_0 = self
_hx_local_1 = _hx_local_0.index
_hx_local_0.index = (_hx_local_1 + 1)
return _hx_local_1
key = python_internal_ArrayImpl._get(self.keys, _hx_local_2())
return Reflect.field(self.access,key)
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.access = None
_hx_o.keys = None
_hx_o.index = None
class haxe_iterators_DynamicAccessKeyValueIterator:
_hx_class_name = "haxe.iterators.DynamicAccessKeyValueIterator"
__slots__ = ("access", "keys", "index")
_hx_fields = ["access", "keys", "index"]
_hx_methods = ["hasNext", "next"]
def __init__(self,access):
self.access = access
self.keys = python_Boot.fields(access)
self.index = 0
def hasNext(self):
return (self.index < len(self.keys))
def next(self):
def _hx_local_2():
_hx_local_0 = self
_hx_local_1 = _hx_local_0.index
_hx_local_0.index = (_hx_local_1 + 1)
return _hx_local_1
key = python_internal_ArrayImpl._get(self.keys, _hx_local_2())
return _hx_AnonObject({'value': Reflect.field(self.access,key), 'key': key})
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.access = None
_hx_o.keys = None
_hx_o.index = None
class haxe_iterators_HashMapKeyValueIterator:
_hx_class_name = "haxe.iterators.HashMapKeyValueIterator"
__slots__ = ("map", "keys")
_hx_fields = ["map", "keys"]
_hx_methods = ["hasNext", "next"]
def __init__(self,_hx_map):
self.map = _hx_map
self.keys = _hx_map.keys.iterator()
def hasNext(self):
return self.keys.hasNext()
def next(self):
key = self.keys.next()
_this = self.map.values
key1 = key.hashCode()
return _hx_AnonObject({'value': _this.h.get(key1,None), 'key': key})
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.map = None
_hx_o.keys = None
class haxe_iterators_MapKeyValueIterator:
_hx_class_name = "haxe.iterators.MapKeyValueIterator"
__slots__ = ("map", "keys")
_hx_fields = ["map", "keys"]
_hx_methods = ["hasNext", "next"]
def __init__(self,_hx_map):
self.map = _hx_map
self.keys = _hx_map.keys()
def hasNext(self):
return self.keys.hasNext()
def next(self):
key = self.keys.next()
return _hx_AnonObject({'value': self.map.get(key), 'key': key})
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.map = None
_hx_o.keys = None
class haxe_iterators_RestIterator:
_hx_class_name = "haxe.iterators.RestIterator"
__slots__ = ("args", "current")
_hx_fields = ["args", "current"]
_hx_methods = ["hasNext", "next"]
def __init__(self,args):
self.current = 0
self.args = args
def hasNext(self):
return (self.current < len(self.args))
def next(self):
index = self.current
self.current = (self.current + 1)
return python_internal_ArrayImpl._get(self.args, index)
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.args = None
_hx_o.current = None
class haxe_iterators_RestKeyValueIterator:
_hx_class_name = "haxe.iterators.RestKeyValueIterator"
__slots__ = ("args", "current")
_hx_fields = ["args", "current"]
_hx_methods = ["hasNext", "next"]
def __init__(self,args):
self.current = 0
self.args = args
def hasNext(self):
return (self.current < len(self.args))
def next(self):
tmp = self.current
index = self.current
self.current = (self.current + 1)
return _hx_AnonObject({'key': tmp, 'value': python_internal_ArrayImpl._get(self.args, index)})
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.args = None
_hx_o.current = None
class haxe_iterators_StringIterator:
_hx_class_name = "haxe.iterators.StringIterator"
__slots__ = ("offset", "s")
_hx_fields = ["offset", "s"]
_hx_methods = ["hasNext", "next"]
def __init__(self,s):
self.offset = 0
self.s = s
def hasNext(self):
return (self.offset < len(self.s))
def next(self):
index = self.offset
self.offset = (self.offset + 1)
return ord(self.s[index])
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.offset = None
_hx_o.s = None
class haxe_iterators_StringIteratorUnicode:
_hx_class_name = "haxe.iterators.StringIteratorUnicode"
__slots__ = ("offset", "s")
_hx_fields = ["offset", "s"]
_hx_methods = ["hasNext", "next"]
_hx_statics = ["unicodeIterator"]
def __init__(self,s):
self.offset = 0
self.s = s
def hasNext(self):
return (self.offset < len(self.s))
def next(self):
index = self.offset
self.offset = (self.offset + 1)
return ord(self.s[index])
@staticmethod
def unicodeIterator(s):
return haxe_iterators_StringIteratorUnicode(s)
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.offset = None
_hx_o.s = None
class haxe_iterators_StringKeyValueIterator:
_hx_class_name = "haxe.iterators.StringKeyValueIterator"
__slots__ = ("offset", "s")
_hx_fields = ["offset", "s"]
_hx_methods = ["hasNext", "next"]
def __init__(self,s):
self.offset = 0
self.s = s
def hasNext(self):
return (self.offset < len(self.s))
def next(self):
tmp = self.offset
s = self.s
index = self.offset
self.offset = (self.offset + 1)
return _hx_AnonObject({'key': tmp, 'value': (-1 if ((index >= len(s))) else ord(s[index]))})
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.offset = None
_hx_o.s = None
class python_Boot:
_hx_class_name = "python.Boot"
__slots__ = ()
_hx_statics = ["keywords", "arrayJoin", "safeJoin", "isPyBool", "isPyInt", "isPyFloat", "isClass", "isAnonObject", "_add_dynamic", "toString", "toString1", "isMetaType", "fields", "isString", "isArray", "simpleField", "createClosure", "hasField", "field", "getInstanceFields", "getSuperClass", "getClassFields", "unsafeFastCodeAt", "handleKeywords", "prefixLength", "unhandleKeywords", "implementsInterface"]
@staticmethod
def arrayJoin(x,sep):
return sep.join([python_Boot.toString1(x1,'') for x1 in x])
@staticmethod
def safeJoin(x,sep):
return sep.join([x1 for x1 in x])
@staticmethod
def isPyBool(o):
return isinstance(o,bool)
@staticmethod
def isPyInt(o):
if isinstance(o,int):
return (not isinstance(o,bool))
else:
return False
@staticmethod
def isPyFloat(o):
return isinstance(o,float)
@staticmethod
def isClass(o):
if (o is not None):
if not HxOverrides.eq(o,str):
return python_lib_Inspect.isclass(o)
else:
return True
else:
return False
@staticmethod
def isAnonObject(o):
return isinstance(o,_hx_AnonObject)
@staticmethod
def _add_dynamic(a,b):
if (isinstance(a,str) and isinstance(b,str)):
return (a + b)
if (isinstance(a,str) or isinstance(b,str)):
return (python_Boot.toString1(a,"") + python_Boot.toString1(b,""))
return (a + b)
@staticmethod
def toString(o):
return python_Boot.toString1(o,"")
@staticmethod
def toString1(o,s):
if (o is None):
return "null"
if isinstance(o,str):
return o
if (s is None):
s = ""
if (len(s) >= 5):
return "<...>"
if isinstance(o,bool):
if o:
return "true"
else:
return "false"
if (isinstance(o,int) and (not isinstance(o,bool))):
return str(o)
if isinstance(o,float):
try:
if (o == int(o)):
return str(Math.floor((o + 0.5)))
else:
return str(o)
except BaseException as _g:
None
return str(o)
if isinstance(o,list):
o1 = o
l = len(o1)
st = "["
s = (("null" if s is None else s) + "\t")
_g = 0
_g1 = l
while (_g < _g1):
i = _g
_g = (_g + 1)
prefix = ""
if (i > 0):
prefix = ","
st = (("null" if st is None else st) + HxOverrides.stringOrNull(((("null" if prefix is None else prefix) + HxOverrides.stringOrNull(python_Boot.toString1((o1[i] if i >= 0 and i < len(o1) else None),s))))))
st = (("null" if st is None else st) + "]")
return st
try:
if hasattr(o,"toString"):
return o.toString()
except BaseException as _g:
None
if hasattr(o,"__class__"):
if isinstance(o,_hx_AnonObject):
toStr = None
try:
fields = python_Boot.fields(o)
_g = []
_g1 = 0
while (_g1 < len(fields)):
f = (fields[_g1] if _g1 >= 0 and _g1 < len(fields) else None)
_g1 = (_g1 + 1)
x = ((("" + ("null" if f is None else f)) + " : ") + HxOverrides.stringOrNull(python_Boot.toString1(python_Boot.simpleField(o,f),(("null" if s is None else s) + "\t"))))
_g.append(x)
fieldsStr = _g
toStr = (("{ " + HxOverrides.stringOrNull(", ".join([x1 for x1 in fieldsStr]))) + " }")
except BaseException as _g:
None
return "{ ... }"
if (toStr is None):
return "{ ... }"
else:
return toStr
if isinstance(o,Enum):
o1 = o
l = len(o1.params)
hasParams = (l > 0)
if hasParams:
paramsStr = ""
_g = 0
_g1 = l
while (_g < _g1):
i = _g
_g = (_g + 1)
prefix = ""
if (i > 0):
prefix = ","
paramsStr = (("null" if paramsStr is None else paramsStr) + HxOverrides.stringOrNull(((("null" if prefix is None else prefix) + HxOverrides.stringOrNull(python_Boot.toString1(o1.params[i],s))))))
return (((HxOverrides.stringOrNull(o1.tag) + "(") + ("null" if paramsStr is None else paramsStr)) + ")")
else:
return o1.tag
if hasattr(o,"_hx_class_name"):
if (o.__class__.__name__ != "type"):
fields = python_Boot.getInstanceFields(o)
_g = []
_g1 = 0
while (_g1 < len(fields)):
f = (fields[_g1] if _g1 >= 0 and _g1 < len(fields) else None)
_g1 = (_g1 + 1)
x = ((("" + ("null" if f is None else f)) + " : ") + HxOverrides.stringOrNull(python_Boot.toString1(python_Boot.simpleField(o,f),(("null" if s is None else s) + "\t"))))
_g.append(x)
fieldsStr = _g
toStr = (((HxOverrides.stringOrNull(o._hx_class_name) + "( ") + HxOverrides.stringOrNull(", ".join([x1 for x1 in fieldsStr]))) + " )")
return toStr
else:
fields = python_Boot.getClassFields(o)
_g = []
_g1 = 0
while (_g1 < len(fields)):
f = (fields[_g1] if _g1 >= 0 and _g1 < len(fields) else None)
_g1 = (_g1 + 1)
x = ((("" + ("null" if f is None else f)) + " : ") + HxOverrides.stringOrNull(python_Boot.toString1(python_Boot.simpleField(o,f),(("null" if s is None else s) + "\t"))))
_g.append(x)
fieldsStr = _g
toStr = (((("#" + HxOverrides.stringOrNull(o._hx_class_name)) + "( ") + HxOverrides.stringOrNull(", ".join([x1 for x1 in fieldsStr]))) + " )")
return toStr
if ((type(o) == type) and (o == str)):
return "#String"
if ((type(o) == type) and (o == list)):
return "#Array"
if callable(o):
return "function"
try:
if hasattr(o,"__repr__"):
return o.__repr__()
except BaseException as _g:
None
if hasattr(o,"__str__"):
return o.__str__([])
if hasattr(o,"__name__"):
return o.__name__
return "???"
else:
return str(o)
@staticmethod
def isMetaType(v,t):
return ((type(v) == type) and (v == t))
@staticmethod
def fields(o):
a = []
if (o is not None):
if hasattr(o,"_hx_fields"):
fields = o._hx_fields
if (fields is not None):
return list(fields)
if isinstance(o,_hx_AnonObject):
d = o.__dict__
keys = d.keys()
handler = python_Boot.unhandleKeywords
for k in keys:
if (k != '_hx_disable_getattr'):
a.append(handler(k))
elif hasattr(o,"__dict__"):
d = o.__dict__
keys1 = d.keys()
for k in keys1:
a.append(k)
return a
@staticmethod
def isString(o):
return isinstance(o,str)
@staticmethod
def isArray(o):
return isinstance(o,list)
@staticmethod
def simpleField(o,field):
if (field is None):
return None
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
if hasattr(o,field1):
return getattr(o,field1)
else:
return None
@staticmethod
def createClosure(obj,func):
return python_internal_MethodClosure(obj,func)
@staticmethod
def hasField(o,field):
if isinstance(o,_hx_AnonObject):
return o._hx_hasattr(field)
return hasattr(o,(("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field)))
@staticmethod
def field(o,field):
if (field is None):
return None
if isinstance(o,str):
field1 = field
_hx_local_0 = len(field1)
if (_hx_local_0 == 10):
if (field1 == "charCodeAt"):
return python_internal_MethodClosure(o,HxString.charCodeAt)
else:
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
if hasattr(o,field1):
return getattr(o,field1)
else:
return None
elif (_hx_local_0 == 11):
if (field1 == "lastIndexOf"):
return python_internal_MethodClosure(o,HxString.lastIndexOf)
elif (field1 == "toLowerCase"):
return python_internal_MethodClosure(o,HxString.toLowerCase)
elif (field1 == "toUpperCase"):
return python_internal_MethodClosure(o,HxString.toUpperCase)
else:
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
if hasattr(o,field1):
return getattr(o,field1)
else:
return None
elif (_hx_local_0 == 9):
if (field1 == "substring"):
return python_internal_MethodClosure(o,HxString.substring)
else:
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
if hasattr(o,field1):
return getattr(o,field1)
else:
return None
elif (_hx_local_0 == 5):
if (field1 == "split"):
return python_internal_MethodClosure(o,HxString.split)
else:
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
if hasattr(o,field1):
return getattr(o,field1)
else:
return None
elif (_hx_local_0 == 7):
if (field1 == "indexOf"):
return python_internal_MethodClosure(o,HxString.indexOf)
else:
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
if hasattr(o,field1):
return getattr(o,field1)
else:
return None
elif (_hx_local_0 == 8):
if (field1 == "toString"):
return python_internal_MethodClosure(o,HxString.toString)
else:
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
if hasattr(o,field1):
return getattr(o,field1)
else:
return None
elif (_hx_local_0 == 6):
if (field1 == "charAt"):
return python_internal_MethodClosure(o,HxString.charAt)
elif (field1 == "length"):
return len(o)
elif (field1 == "substr"):
return python_internal_MethodClosure(o,HxString.substr)
else:
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
if hasattr(o,field1):
return getattr(o,field1)
else:
return None
else:
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
if hasattr(o,field1):
return getattr(o,field1)
else:
return None
elif isinstance(o,list):
field1 = field
_hx_local_1 = len(field1)
if (_hx_local_1 == 11):
if (field1 == "lastIndexOf"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.lastIndexOf)
else:
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
if hasattr(o,field1):
return getattr(o,field1)
else:
return None
elif (_hx_local_1 == 4):
if (field1 == "copy"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.copy)
elif (field1 == "join"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.join)
elif (field1 == "push"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.push)
elif (field1 == "sort"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.sort)
else:
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
if hasattr(o,field1):
return getattr(o,field1)
else:
return None
elif (_hx_local_1 == 5):
if (field1 == "shift"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.shift)
elif (field1 == "slice"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.slice)
else:
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
if hasattr(o,field1):
return getattr(o,field1)
else:
return None
elif (_hx_local_1 == 7):
if (field1 == "indexOf"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.indexOf)
elif (field1 == "reverse"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.reverse)
elif (field1 == "unshift"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.unshift)
else:
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
if hasattr(o,field1):
return getattr(o,field1)
else:
return None
elif (_hx_local_1 == 3):
if (field1 == "map"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.map)
elif (field1 == "pop"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.pop)
else:
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
if hasattr(o,field1):
return getattr(o,field1)
else:
return None
elif (_hx_local_1 == 8):
if (field1 == "contains"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.contains)
elif (field1 == "iterator"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.iterator)
elif (field1 == "toString"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.toString)
else:
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
if hasattr(o,field1):
return getattr(o,field1)
else:
return None
elif (_hx_local_1 == 16):
if (field1 == "keyValueIterator"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.keyValueIterator)
else:
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
if hasattr(o,field1):
return getattr(o,field1)
else:
return None
elif (_hx_local_1 == 6):
if (field1 == "concat"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.concat)
elif (field1 == "filter"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.filter)
elif (field1 == "insert"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.insert)
elif (field1 == "length"):
return len(o)
elif (field1 == "remove"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.remove)
elif (field1 == "splice"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.splice)
else:
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
if hasattr(o,field1):
return getattr(o,field1)
else:
return None
else:
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
if hasattr(o,field1):
return getattr(o,field1)
else:
return None
else:
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
if hasattr(o,field1):
return getattr(o,field1)
else:
return None
@staticmethod
def getInstanceFields(c):
f = (list(c._hx_fields) if (hasattr(c,"_hx_fields")) else [])
if hasattr(c,"_hx_methods"):
f = (f + c._hx_methods)
sc = python_Boot.getSuperClass(c)
if (sc is None):
return f
else:
scArr = python_Boot.getInstanceFields(sc)
scMap = set(scArr)
_g = 0
while (_g < len(f)):
f1 = (f[_g] if _g >= 0 and _g < len(f) else None)
_g = (_g + 1)
if (not (f1 in scMap)):
scArr.append(f1)
return scArr
@staticmethod
def getSuperClass(c):
if (c is None):
return None
try:
if hasattr(c,"_hx_super"):
return c._hx_super
return None
except BaseException as _g:
None
return None
@staticmethod
def getClassFields(c):
if hasattr(c,"_hx_statics"):
x = c._hx_statics
return list(x)
else:
return []
@staticmethod
def unsafeFastCodeAt(s,index):
return ord(s[index])
@staticmethod
def handleKeywords(name):
if (name in python_Boot.keywords):
return ("_hx_" + name)
elif ((((len(name) > 2) and ((ord(name[0]) == 95))) and ((ord(name[1]) == 95))) and ((ord(name[(len(name) - 1)]) != 95))):
return ("_hx_" + name)
else:
return name
@staticmethod
def unhandleKeywords(name):
if (HxString.substr(name,0,python_Boot.prefixLength) == "_hx_"):
real = HxString.substr(name,python_Boot.prefixLength,None)
if (real in python_Boot.keywords):
return real
return name
@staticmethod
def implementsInterface(value,cls):
loop = None
def _hx_local_1(intf):
f = (intf._hx_interfaces if (hasattr(intf,"_hx_interfaces")) else [])
if (f is not None):
_g = 0
while (_g < len(f)):
i = (f[_g] if _g >= 0 and _g < len(f) else None)
_g = (_g + 1)
if (i == cls):
return True
else:
l = loop(i)
if l:
return True
return False
else:
return False
loop = _hx_local_1
currentClass = value.__class__
result = False
while (currentClass is not None):
if loop(currentClass):
result = True
break
currentClass = python_Boot.getSuperClass(currentClass)
return result
class python_HaxeIterable:
_hx_class_name = "python.HaxeIterable"
__slots__ = ("x",)
_hx_fields = ["x"]
_hx_methods = ["iterator"]
def __init__(self,x):
self.x = x
def iterator(self):
return python_HaxeIterator(self.x.__iter__())
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.x = None
class python_HaxeIterator:
_hx_class_name = "python.HaxeIterator"
__slots__ = ("it", "x", "has", "checked")
_hx_fields = ["it", "x", "has", "checked"]
_hx_methods = ["next", "hasNext"]
def __init__(self,it):
self.checked = False
self.has = False
self.x = None
self.it = it
def next(self):
if (not self.checked):
self.hasNext()
self.checked = False
return self.x
def hasNext(self):
if (not self.checked):
try:
self.x = self.it.__next__()
self.has = True
except BaseException as _g:
None
if Std.isOfType(haxe_Exception.caught(_g).unwrap(),StopIteration):
self.has = False
self.x = None
else:
raise _g
self.checked = True
return self.has
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.it = None
_hx_o.x = None
_hx_o.has = None
_hx_o.checked = None
class python__KwArgs_KwArgs_Impl_:
_hx_class_name = "python._KwArgs.KwArgs_Impl_"
__slots__ = ()
_hx_statics = ["_new", "toDict", "toDictHelper", "fromDict", "fromT", "typed", "get"]
@staticmethod
def _new(d):
this1 = d
return this1
@staticmethod
def toDict(this1):
return python__KwArgs_KwArgs_Impl_.toDictHelper(this1,None)
@staticmethod
def toDictHelper(this1,x):
return this1
@staticmethod
def fromDict(d):
this1 = d
return this1
@staticmethod
def fromT(d):
this1 = python_Lib.anonAsDict(d)
return this1
@staticmethod
def typed(this1):
return _hx_AnonObject(python__KwArgs_KwArgs_Impl_.toDictHelper(this1,None))
@staticmethod
def get(this1,key,_hx_def):
return this1.get(key,_hx_def)
class python_Lib:
_hx_class_name = "python.Lib"
__slots__ = ()
_hx_statics = ["lineEnd", "get___name__", "print", "printString", "println", "dictToAnon", "anonToDict", "anonAsDict", "dictAsAnon", "toPythonIterable", "toHaxeIterable", "toHaxeIterator"]
__name__ = None
@staticmethod
def get___name__():
return __name__
@staticmethod
def print(v):
python_Lib.printString(Std.string(v))
@staticmethod
def printString(_hx_str):
encoding = "utf-8"
if (encoding is None):
encoding = "utf-8"
python_lib_Sys.stdout.buffer.write(_hx_str.encode(encoding, "strict"))
python_lib_Sys.stdout.flush()
@staticmethod
def println(v):
_hx_str = Std.string(v)
python_Lib.printString((("" + ("null" if _hx_str is None else _hx_str)) + HxOverrides.stringOrNull(python_Lib.lineEnd)))
@staticmethod
def dictToAnon(v):
return _hx_AnonObject(v.copy())
@staticmethod
def anonToDict(o):
if isinstance(o,_hx_AnonObject):
return o.__dict__.copy()
else:
return None
@staticmethod
def anonAsDict(o):
if isinstance(o,_hx_AnonObject):
return o.__dict__
else:
return None
@staticmethod
def dictAsAnon(d):
return _hx_AnonObject(d)
@staticmethod
def toPythonIterable(it):
def _hx_local_3():
def _hx_local_2():
it1 = HxOverrides.iterator(it)
_hx_self = None
def _hx_local_0():
if it1.hasNext():
return it1.next()
else:
raise haxe_Exception.thrown(StopIteration())
def _hx_local_1():
return _hx_self
this1 = _hx_AnonObject({'__next__': _hx_local_0, '__iter__': _hx_local_1})
_hx_self = this1
return _hx_self
return _hx_AnonObject({'__iter__': _hx_local_2})
return _hx_local_3()
@staticmethod
def toHaxeIterable(it):
return python_HaxeIterable(it)
@staticmethod
def toHaxeIterator(it):
return python_HaxeIterator(it)
class python__NativeIterable_NativeIterable_Impl_:
_hx_class_name = "python._NativeIterable.NativeIterable_Impl_"
__slots__ = ()
_hx_statics = ["toHaxeIterable", "iterator"]
@staticmethod
def toHaxeIterable(this1):
return python_HaxeIterable(this1)
@staticmethod
def iterator(this1):
return python_HaxeIterator(this1.__iter__())
class python__NativeIterator_NativeIterator_Impl_:
_hx_class_name = "python._NativeIterator.NativeIterator_Impl_"
__slots__ = ()
_hx_statics = ["_new", "toHaxeIterator"]
@staticmethod
def _new(p):
this1 = p
return this1
@staticmethod
def toHaxeIterator(this1):
return python_HaxeIterator(this1)
class python_NativeStringTools:
_hx_class_name = "python.NativeStringTools"
__slots__ = ()
_hx_statics = ["format", "encode", "contains", "strip", "rpartition", "startswith", "endswith"]
@staticmethod
def format(s,args):
return s.format(*args)
@staticmethod
def encode(s,encoding = None,errors = None):
if (encoding is None):
encoding = "utf-8"
if (errors is None):
errors = "strict"
return s.encode(encoding, errors)
@staticmethod
def contains(s,e):
return (e in s)
@staticmethod
def strip(s,chars = None):
return s.strip(chars)
@staticmethod
def rpartition(s,sep):
return s.rpartition(sep)
@staticmethod
def startswith(s,prefix):
return s.startswith(prefix)
@staticmethod
def endswith(s,suffix):
return s.endswith(suffix)
class python__VarArgs_VarArgs_Impl_:
_hx_class_name = "python._VarArgs.VarArgs_Impl_"
__slots__ = ()
_hx_statics = ["_new", "raw", "toArray", "fromArray"]
@staticmethod
def _new(d):
this1 = d
return this1
@staticmethod
def raw(this1):
return this1
@staticmethod
def toArray(this1):
if (not Std.isOfType(this1,list)):
return list(this1)
else:
return this1
@staticmethod
def fromArray(d):
this1 = d
return this1
class python_internal_ArrayImpl:
_hx_class_name = "python.internal.ArrayImpl"
__slots__ = ()
_hx_statics = ["get_length", "concat", "copy", "iterator", "keyValueIterator", "indexOf", "lastIndexOf", "join", "toString", "pop", "push", "unshift", "remove", "contains", "shift", "slice", "sort", "splice", "map", "filter", "insert", "reverse", "_get", "_set", "unsafeGet", "unsafeSet", "resize"]
@staticmethod
def get_length(x):
return len(x)
@staticmethod
def concat(a1,a2):
return (a1 + a2)
@staticmethod
def copy(x):
return list(x)
@staticmethod
def iterator(x):
return python_HaxeIterator(x.__iter__())
@staticmethod
def keyValueIterator(x):
return haxe_iterators_ArrayKeyValueIterator(x)
@staticmethod
def indexOf(a,x,fromIndex = None):
_hx_len = len(a)
l = (0 if ((fromIndex is None)) else ((_hx_len + fromIndex) if ((fromIndex < 0)) else fromIndex))
if (l < 0):
l = 0
_g = l
_g1 = _hx_len
while (_g < _g1):
i = _g
_g = (_g + 1)
if HxOverrides.eq(a[i],x):
return i
return -1
@staticmethod
def lastIndexOf(a,x,fromIndex = None):
_hx_len = len(a)
l = (_hx_len if ((fromIndex is None)) else (((_hx_len + fromIndex) + 1) if ((fromIndex < 0)) else (fromIndex + 1)))
if (l > _hx_len):
l = _hx_len
while True:
l = (l - 1)
tmp = l
if (not ((tmp > -1))):
break
if HxOverrides.eq(a[l],x):
return l
return -1
@staticmethod
def join(x,sep):
return sep.join([python_Boot.toString1(x1,'') for x1 in x])
@staticmethod
def toString(x):
return (("[" + HxOverrides.stringOrNull(",".join([python_Boot.toString1(x1,'') for x1 in x]))) + "]")
@staticmethod
def pop(x):
if (len(x) == 0):
return None
else:
return x.pop()
@staticmethod
def push(x,e):
x.append(e)
return len(x)
@staticmethod
def unshift(x,e):
x.insert(0, e)
@staticmethod
def remove(x,e):
try:
x.remove(e)
return True
except BaseException as _g:
None
return False
@staticmethod
def contains(x,e):
return (e in x)
@staticmethod
def shift(x):
if (len(x) == 0):
return None
return x.pop(0)
@staticmethod
def slice(x,pos,end = None):
return x[pos:end]
@staticmethod
def sort(x,f):
x.sort(key= python_lib_Functools.cmp_to_key(f))
@staticmethod
def splice(x,pos,_hx_len):
if (pos < 0):
pos = (len(x) + pos)
if (pos < 0):
pos = 0
res = x[pos:(pos + _hx_len)]
del x[pos:(pos + _hx_len)]
return res
@staticmethod
def map(x,f):
return list(map(f,x))
@staticmethod
def filter(x,f):
return list(filter(f,x))
@staticmethod
def insert(a,pos,x):
a.insert(pos, x)
@staticmethod
def reverse(a):
a.reverse()
@staticmethod
def _get(x,idx):
if ((idx > -1) and ((idx < len(x)))):
return x[idx]
else:
return None
@staticmethod
def _set(x,idx,v):
l = len(x)
while (l < idx):
x.append(None)
l = (l + 1)
if (l == idx):
x.append(v)
else:
x[idx] = v
return v
@staticmethod
def unsafeGet(x,idx):
return x[idx]
@staticmethod
def unsafeSet(x,idx,val):
x[idx] = val
return val
@staticmethod
def resize(x,_hx_len):
l = len(x)
if (l < _hx_len):
idx = (_hx_len - 1)
v = None
l1 = len(x)
while (l1 < idx):
x.append(None)
l1 = (l1 + 1)
if (l1 == idx):
x.append(v)
else:
x[idx] = v
elif (l > _hx_len):
pos = _hx_len
len1 = (l - _hx_len)
if (pos < 0):
pos = (len(x) + pos)
if (pos < 0):
pos = 0
res = x[pos:(pos + len1)]
del x[pos:(pos + len1)]
class HxOverrides:
_hx_class_name = "HxOverrides"
__slots__ = ()
_hx_statics = ["iterator", "keyValueIterator", "eq", "stringOrNull", "shift", "pop", "push", "join", "filter", "map", "toUpperCase", "toLowerCase", "split", "length", "rshift", "modf", "mod", "arrayGet", "arraySet", "mapKwArgs", "reverseMapKwArgs"]
@staticmethod
def iterator(x):
if isinstance(x,list):
return haxe_iterators_ArrayIterator(x)
return x.iterator()
@staticmethod
def keyValueIterator(x):
if isinstance(x,list):
return haxe_iterators_ArrayKeyValueIterator(x)
return x.keyValueIterator()
@staticmethod
def eq(a,b):
if (isinstance(a,list) or isinstance(b,list)):
return a is b
return (a == b)
@staticmethod
def stringOrNull(s):
if (s is None):
return "null"
else:
return s
@staticmethod
def shift(x):
if isinstance(x,list):
_this = x
return (None if ((len(_this) == 0)) else _this.pop(0))
return x.shift()
@staticmethod
def pop(x):
if isinstance(x,list):
_this = x
return (None if ((len(_this) == 0)) else _this.pop())
return x.pop()
@staticmethod
def push(x,e):
if isinstance(x,list):
_this = x
_this.append(e)
return len(_this)
return x.push(e)
@staticmethod
def join(x,sep):
if isinstance(x,list):
return sep.join([python_Boot.toString1(x1,'') for x1 in x])
return x.join(sep)
@staticmethod
def filter(x,f):
if isinstance(x,list):
return list(filter(f,x))
return x.filter(f)
@staticmethod
def map(x,f):
if isinstance(x,list):
return list(map(f,x))
return x.map(f)
@staticmethod
def toUpperCase(x):
if isinstance(x,str):
return x.upper()
return x.toUpperCase()
@staticmethod
def toLowerCase(x):
if isinstance(x,str):
return x.lower()
return x.toLowerCase()
@staticmethod
def split(x,delimiter):
if isinstance(x,str):
_this = x
if (delimiter == ""):
return list(_this)
else:
return _this.split(delimiter)
return x.split(delimiter)
@staticmethod
def length(x):
if isinstance(x,str):
return len(x)
elif isinstance(x,list):
return len(x)
return x.length
@staticmethod
def rshift(val,n):
return ((val % 0x100000000) >> n)
@staticmethod
def modf(a,b):
if (b == 0.0):
return float('nan')
elif (a < 0):
if (b < 0):
return -(-a % (-b))
else:
return -(-a % b)
elif (b < 0):
return a % (-b)
else:
return a % b
@staticmethod
def mod(a,b):
if (a < 0):
if (b < 0):
return -(-a % (-b))
else:
return -(-a % b)
elif (b < 0):
return a % (-b)
else:
return a % b
@staticmethod
def arrayGet(a,i):
if isinstance(a,list):
x = a
if ((i > -1) and ((i < len(x)))):
return x[i]
else:
return None
else:
return a[i]
@staticmethod
def arraySet(a,i,v):
if isinstance(a,list):
x = a
v1 = v
l = len(x)
while (l < i):
x.append(None)
l = (l + 1)
if (l == i):
x.append(v1)
else:
x[i] = v1
return v1
else:
a[i] = v
return v
@staticmethod
def mapKwArgs(a,v):
a1 = _hx_AnonObject(python_Lib.anonToDict(a))
k = python_HaxeIterator(iter(v.keys()))
while k.hasNext():
k1 = k.next()
val = v.get(k1)
if a1._hx_hasattr(k1):
x = getattr(a1,k1)
setattr(a1,val,x)
delattr(a1,k1)
return a1
@staticmethod
def reverseMapKwArgs(a,v):
a1 = a.copy()
k = python_HaxeIterator(iter(v.keys()))
while k.hasNext():
k1 = k.next()
val = v.get(k1)
if (val in a1):
x = a1.get(val,None)
a1[k1] = x
del a1[val]
return a1
class python_internal_Internal:
_hx_class_name = "python.internal.Internal"
__slots__ = ()
class python_internal_MethodClosure:
_hx_class_name = "python.internal.MethodClosure"
__slots__ = ("obj", "func")
_hx_fields = ["obj", "func"]
_hx_methods = ["__call__"]
def __init__(self,obj,func):
self.obj = obj
self.func = func
def __call__(self,*args):
return self.func(self.obj,*args)
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.obj = None
_hx_o.func = None
class HxString:
_hx_class_name = "HxString"
__slots__ = ()
_hx_statics = ["split", "charCodeAt", "charAt", "lastIndexOf", "toUpperCase", "toLowerCase", "indexOf", "indexOfImpl", "toString", "get_length", "fromCharCode", "substring", "substr"]
@staticmethod
def split(s,d):
if (d == ""):
return list(s)
else:
return s.split(d)
@staticmethod
def charCodeAt(s,index):
if ((((s is None) or ((len(s) == 0))) or ((index < 0))) or ((index >= len(s)))):
return None
else:
return ord(s[index])
@staticmethod
def charAt(s,index):
if ((index < 0) or ((index >= len(s)))):
return ""
else:
return s[index]
@staticmethod
def lastIndexOf(s,_hx_str,startIndex = None):
if (startIndex is None):
return s.rfind(_hx_str, 0, len(s))
elif (_hx_str == ""):
length = len(s)
if (startIndex < 0):
startIndex = (length + startIndex)
if (startIndex < 0):
startIndex = 0
if (startIndex > length):
return length
else:
return startIndex
else:
i = s.rfind(_hx_str, 0, (startIndex + 1))
startLeft = (max(0,((startIndex + 1) - len(_hx_str))) if ((i == -1)) else (i + 1))
check = s.find(_hx_str, startLeft, len(s))
if ((check > i) and ((check <= startIndex))):
return check
else:
return i
@staticmethod
def toUpperCase(s):
return s.upper()
@staticmethod
def toLowerCase(s):
return s.lower()
@staticmethod
def indexOf(s,_hx_str,startIndex = None):
if (startIndex is None):
return s.find(_hx_str)
else:
return HxString.indexOfImpl(s,_hx_str,startIndex)
@staticmethod
def indexOfImpl(s,_hx_str,startIndex):
if (_hx_str == ""):
length = len(s)
if (startIndex < 0):
startIndex = (length + startIndex)
if (startIndex < 0):
startIndex = 0
if (startIndex > length):
return length
else:
return startIndex
return s.find(_hx_str, startIndex)
@staticmethod
def toString(s):
return s
@staticmethod
def get_length(s):
return len(s)
@staticmethod
def fromCharCode(code):
return "".join(map(chr,[code]))
@staticmethod
def substring(s,startIndex,endIndex = None):
if (startIndex < 0):
startIndex = 0
if (endIndex is None):
return s[startIndex:]
else:
if (endIndex < 0):
endIndex = 0
if (endIndex < startIndex):
return s[endIndex:startIndex]
else:
return s[startIndex:endIndex]
@staticmethod
def substr(s,startIndex,_hx_len = None):
if (_hx_len is None):
return s[startIndex:]
else:
if (_hx_len == 0):
return ""
if (startIndex < 0):
startIndex = (len(s) + startIndex)
if (startIndex < 0):
startIndex = 0
return s[startIndex:(startIndex + _hx_len)]
class python_io_NativeInput(haxe_io_Input):
_hx_class_name = "python.io.NativeInput"
__slots__ = ("stream", "wasEof")
_hx_fields = ["stream", "wasEof"]
_hx_methods = ["get_canSeek", "close", "tell", "throwEof", "eof", "readinto", "seek", "readBytes"]
_hx_statics = []
_hx_interfaces = []
_hx_super = haxe_io_Input
def __init__(self,s):
self.wasEof = None
self.stream = s
self.set_bigEndian(False)
self.wasEof = False
if (not self.stream.readable()):
raise haxe_Exception.thrown("Write-only stream")
def get_canSeek(self):
return self.stream.seekable()
def close(self):
self.stream.close()
def tell(self):
return self.stream.tell()
def throwEof(self):
self.wasEof = True
raise haxe_Exception.thrown(haxe_io_Eof())
def eof(self):
return self.wasEof
def readinto(self,b):
raise haxe_Exception.thrown("abstract method, should be overridden")
def seek(self,p,mode):
raise haxe_Exception.thrown("abstract method, should be overridden")
def readBytes(self,s,pos,_hx_len):
if (((pos < 0) or ((_hx_len < 0))) or (((pos + _hx_len) > s.length))):
raise haxe_Exception.thrown(haxe_io_Error.OutsideBounds)
ba = bytearray(_hx_len)
ret = self.readinto(ba)
if (ret == 0):
self.throwEof()
s.blit(pos,haxe_io_Bytes.ofData(ba),0,_hx_len)
return ret
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.stream = None
_hx_o.wasEof = None
class python_io_IInput:
_hx_class_name = "python.io.IInput"
__slots__ = ("bigEndian",)
_hx_fields = ["bigEndian"]
_hx_methods = ["set_bigEndian", "readByte", "readBytes", "close", "readAll", "readFullBytes", "read", "readUntil", "readLine", "readFloat", "readDouble", "readInt8", "readInt16", "readUInt16", "readInt24", "readUInt24", "readInt32", "readString"]
class python_io_NativeBytesInput(python_io_NativeInput):
_hx_class_name = "python.io.NativeBytesInput"
__slots__ = ()
_hx_fields = []
_hx_methods = ["readByte", "seek", "readinto"]
_hx_statics = []
_hx_interfaces = [python_io_IInput]
_hx_super = python_io_NativeInput
def __init__(self,stream):
super().__init__(stream)
def readByte(self):
ret = self.stream.read(1)
if (len(ret) == 0):
self.throwEof()
return ret[0]
def seek(self,p,pos):
self.wasEof = False
python_io_IoTools.seekInBinaryMode(self.stream,p,pos)
def readinto(self,b):
return self.stream.readinto(b)
@staticmethod
def _hx_empty_init(_hx_o): pass
class python_io_IFileInput:
_hx_class_name = "python.io.IFileInput"
__slots__ = ()
_hx_methods = ["seek", "tell", "eof"]
_hx_interfaces = [python_io_IInput]
class python_io_FileBytesInput(python_io_NativeBytesInput):
_hx_class_name = "python.io.FileBytesInput"
__slots__ = ()
_hx_fields = []
_hx_methods = []
_hx_statics = []
_hx_interfaces = [python_io_IFileInput]
_hx_super = python_io_NativeBytesInput
def __init__(self,stream):
super().__init__(stream)
class python_io_NativeOutput(haxe_io_Output):
_hx_class_name = "python.io.NativeOutput"
__slots__ = ("stream",)
_hx_fields = ["stream"]
_hx_methods = ["get_canSeek", "close", "prepare", "flush", "tell"]
_hx_statics = []
_hx_interfaces = []
_hx_super = haxe_io_Output
def __init__(self,stream):
self.stream = None
self.set_bigEndian(False)
self.stream = stream
if (not stream.writable()):
raise haxe_Exception.thrown("Read only stream")
def get_canSeek(self):
return self.stream.seekable()
def close(self):
self.stream.close()
def prepare(self,nbytes):
self.stream.truncate(nbytes)
def flush(self):
self.stream.flush()
def tell(self):
return self.stream.tell()
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.stream = None
class python_io_NativeBytesOutput(python_io_NativeOutput):
_hx_class_name = "python.io.NativeBytesOutput"
__slots__ = ()
_hx_fields = []
_hx_methods = ["seek", "prepare", "writeByte", "writeBytes"]
_hx_statics = []
_hx_interfaces = []
_hx_super = python_io_NativeOutput
def __init__(self,stream):
super().__init__(stream)
def seek(self,p,pos):
python_io_IoTools.seekInBinaryMode(self.stream,p,pos)
def prepare(self,nbytes):
self.stream.truncate(nbytes)
def writeByte(self,c):
self.stream.write(bytearray([c]))
def writeBytes(self,s,pos,_hx_len):
return self.stream.write(s.b[pos:(pos + _hx_len)])
@staticmethod
def _hx_empty_init(_hx_o): pass
class python_io_IOutput:
_hx_class_name = "python.io.IOutput"
__slots__ = ("bigEndian",)
_hx_fields = ["bigEndian"]
_hx_methods = ["set_bigEndian", "writeByte", "writeBytes", "flush", "close", "write", "writeFullBytes", "writeFloat", "writeDouble", "writeInt8", "writeInt16", "writeUInt16", "writeInt24", "writeUInt24", "writeInt32", "prepare", "writeInput", "writeString"]
class python_io_IFileOutput:
_hx_class_name = "python.io.IFileOutput"
__slots__ = ()
_hx_methods = ["seek", "tell"]
_hx_interfaces = [python_io_IOutput]
class python_io_FileBytesOutput(python_io_NativeBytesOutput):
_hx_class_name = "python.io.FileBytesOutput"
__slots__ = ()
_hx_fields = []
_hx_methods = []
_hx_statics = []
_hx_interfaces = [python_io_IFileOutput]
_hx_super = python_io_NativeBytesOutput
def __init__(self,stream):
super().__init__(stream)
class python_io_NativeTextInput(python_io_NativeInput):
_hx_class_name = "python.io.NativeTextInput"
__slots__ = ()
_hx_fields = []
_hx_methods = ["readByte", "seek", "readinto"]
_hx_statics = []
_hx_interfaces = [python_io_IInput]
_hx_super = python_io_NativeInput
def __init__(self,stream):
super().__init__(stream)
def readByte(self):
ret = self.stream.buffer.read(1)
if (len(ret) == 0):
self.throwEof()
return ret[0]
def seek(self,p,pos):
self.wasEof = False
python_io_IoTools.seekInTextMode(self.stream,self.tell,p,pos)
def readinto(self,b):
return self.stream.buffer.readinto(b)
@staticmethod
def _hx_empty_init(_hx_o): pass
class python_io_FileTextInput(python_io_NativeTextInput):
_hx_class_name = "python.io.FileTextInput"
__slots__ = ()
_hx_fields = []
_hx_methods = []
_hx_statics = []
_hx_interfaces = [python_io_IFileInput]
_hx_super = python_io_NativeTextInput
def __init__(self,stream):
super().__init__(stream)
class python_io_NativeTextOutput(python_io_NativeOutput):
_hx_class_name = "python.io.NativeTextOutput"
__slots__ = ()
_hx_fields = []
_hx_methods = ["seek", "writeBytes", "writeByte"]
_hx_statics = []
_hx_interfaces = []
_hx_super = python_io_NativeOutput
def __init__(self,stream):
super().__init__(stream)
if (not stream.writable()):
raise haxe_Exception.thrown("Read only stream")
def seek(self,p,pos):
python_io_IoTools.seekInTextMode(self.stream,self.tell,p,pos)
def writeBytes(self,s,pos,_hx_len):
return self.stream.buffer.write(s.b[pos:(pos + _hx_len)])
def writeByte(self,c):
self.stream.write("".join(map(chr,[c])))
@staticmethod
def _hx_empty_init(_hx_o): pass
class python_io_FileTextOutput(python_io_NativeTextOutput):
_hx_class_name = "python.io.FileTextOutput"
__slots__ = ()
_hx_fields = []
_hx_methods = []
_hx_statics = []
_hx_interfaces = [python_io_IFileOutput]
_hx_super = python_io_NativeTextOutput
def __init__(self,stream):
super().__init__(stream)
class python_io_IoTools:
_hx_class_name = "python.io.IoTools"
__slots__ = ()
_hx_statics = ["createFileInputFromText", "createFileInputFromBytes", "createFileOutputFromText", "createFileOutputFromBytes", "seekInTextMode", "seekInBinaryMode"]
@staticmethod
def createFileInputFromText(t):
return sys_io_FileInput(python_io_FileTextInput(t))
@staticmethod
def createFileInputFromBytes(t):
return sys_io_FileInput(python_io_FileBytesInput(t))
@staticmethod
def createFileOutputFromText(t):
return sys_io_FileOutput(python_io_FileTextOutput(t))
@staticmethod
def createFileOutputFromBytes(t):
return sys_io_FileOutput(python_io_FileBytesOutput(t))
@staticmethod
def seekInTextMode(stream,tell,p,pos):
pos1 = None
pos2 = pos.index
if (pos2 == 0):
pos1 = 0
elif (pos2 == 1):
p = (tell() + p)
pos1 = 0
elif (pos2 == 2):
stream.seek(0,2)
p = (tell() + p)
pos1 = 0
else:
pass
stream.seek(p,pos1)
@staticmethod
def seekInBinaryMode(stream,p,pos):
pos1 = None
pos2 = pos.index
if (pos2 == 0):
pos1 = 0
elif (pos2 == 1):
pos1 = 1
elif (pos2 == 2):
pos1 = 2
else:
pass
stream.seek(p,pos1)
class python_lib__Re_Choice_Impl_:
_hx_class_name = "python.lib._Re.Choice_Impl_"
__slots__ = ()
_hx_statics = ["fromA", "fromB"]
@staticmethod
def fromA(x):
return x
@staticmethod
def fromB(x):
return x
class python_lib__Re_RegexHelper:
_hx_class_name = "python.lib._Re.RegexHelper"
__slots__ = ()
_hx_statics = ["findallDynamic"]
@staticmethod
def findallDynamic(r,string,pos = None,endpos = None):
if (endpos is None):
if (pos is None):
return r.findall(string)
else:
return r.findall(string,pos)
else:
return r.findall(string,pos,endpos)
class sys_io_FileInput(haxe_io_Input):
_hx_class_name = "sys.io.FileInput"
__slots__ = ("impl",)
_hx_fields = ["impl"]
_hx_methods = ["set_bigEndian", "seek", "tell", "eof", "readByte", "readBytes", "close", "readAll", "readFullBytes", "read", "readUntil", "readLine", "readFloat", "readDouble", "readInt8", "readInt16", "readUInt16", "readInt24", "readUInt24", "readInt32", "readString"]
_hx_statics = []
_hx_interfaces = []
_hx_super = haxe_io_Input
def __init__(self,impl):
self.impl = impl
def set_bigEndian(self,b):
return self.impl.set_bigEndian(b)
def seek(self,p,pos):
self.impl.seek(p,pos)
def tell(self):
return self.impl.tell()
def eof(self):
return self.impl.eof()
def readByte(self):
return self.impl.readByte()
def readBytes(self,s,pos,_hx_len):
return self.impl.readBytes(s,pos,_hx_len)
def close(self):
self.impl.close()
def readAll(self,bufsize = None):
return self.impl.readAll(bufsize)
def readFullBytes(self,s,pos,_hx_len):
self.impl.readFullBytes(s,pos,_hx_len)
def read(self,nbytes):
return self.impl.read(nbytes)
def readUntil(self,end):
return self.impl.readUntil(end)
def readLine(self):
return self.impl.readLine()
def readFloat(self):
return self.impl.readFloat()
def readDouble(self):
return self.impl.readDouble()
def readInt8(self):
return self.impl.readInt8()
def readInt16(self):
return self.impl.readInt16()
def readUInt16(self):
return self.impl.readUInt16()
def readInt24(self):
return self.impl.readInt24()
def readUInt24(self):
return self.impl.readUInt24()
def readInt32(self):
return self.impl.readInt32()
def readString(self,_hx_len,encoding = None):
return self.impl.readString(_hx_len)
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.impl = None
class sys_io_FileOutput(haxe_io_Output):
_hx_class_name = "sys.io.FileOutput"
__slots__ = ("impl",)
_hx_fields = ["impl"]
_hx_methods = ["seek", "tell", "set_bigEndian", "writeByte", "writeBytes", "flush", "close", "write", "writeFullBytes", "writeFloat", "writeDouble", "writeInt8", "writeInt16", "writeUInt16", "writeInt24", "writeUInt24", "writeInt32", "prepare", "writeInput", "writeString"]
_hx_statics = []
_hx_interfaces = []
_hx_super = haxe_io_Output
def __init__(self,impl):
self.impl = impl
def seek(self,p,pos):
self.impl.seek(p,pos)
def tell(self):
return self.impl.tell()
def set_bigEndian(self,b):
return self.impl.set_bigEndian(b)
def writeByte(self,c):
self.impl.writeByte(c)
def writeBytes(self,s,pos,_hx_len):
return self.impl.writeBytes(s,pos,_hx_len)
def flush(self):
self.impl.flush()
def close(self):
self.impl.close()
def write(self,s):
self.impl.write(s)
def writeFullBytes(self,s,pos,_hx_len):
self.impl.writeFullBytes(s,pos,_hx_len)
def writeFloat(self,x):
self.impl.writeFloat(x)
def writeDouble(self,x):
self.impl.writeDouble(x)
def writeInt8(self,x):
self.impl.writeInt8(x)
def writeInt16(self,x):
self.impl.writeInt16(x)
def writeUInt16(self,x):
self.impl.writeUInt16(x)
def writeInt24(self,x):
self.impl.writeInt24(x)
def writeUInt24(self,x):
self.impl.writeUInt24(x)
def writeInt32(self,x):
self.impl.writeInt32(x)
def prepare(self,nbytes):
self.impl.prepare(nbytes)
def writeInput(self,i,bufsize = None):
self.impl.writeInput(i,bufsize)
def writeString(self,s,encoding = None):
self.impl.writeString(s)
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.impl = None
class sys_io_FileSeek(Enum):
__slots__ = ()
_hx_class_name = "sys.io.FileSeek"
_hx_constructs = ["SeekBegin", "SeekCur", "SeekEnd"]
sys_io_FileSeek.SeekBegin = sys_io_FileSeek("SeekBegin", 0, ())
sys_io_FileSeek.SeekCur = sys_io_FileSeek("SeekCur", 1, ())
sys_io_FileSeek.SeekEnd = sys_io_FileSeek("SeekEnd", 2, ())
class xrfragment_Query:
_hx_class_name = "xrfragment.Query"
__slots__ = ("str", "q", "include", "exclude", "accept", "preset")
_hx_fields = ["str", "q", "include", "exclude", "accept", "preset"]
_hx_methods = ["toObject", "qualify", "parse", "test"]
def __init__(self,_hx_str):
self.preset = ""
self.accept = False
self.exclude = list()
self.include = list()
self.q = _hx_AnonObject({})
self.str = ""
if (_hx_str is not None):
self.parse(_hx_str)
def toObject(self):
return self.q
def qualify(self,nodename):
if Reflect.field(self.q,"copy_all"):
self.accept = True
if (nodename in self.include):
self.accept = True
if (nodename in self.exclude):
self.accept = False
return self.accept
def parse(self,_hx_str,recurse = None):
if (recurse is None):
recurse = False
_gthis = self
copyAll = (Reflect.field(self.q,"copy_all") if recurse else (((HxString.substr(_hx_str,0,1) == "-") or ((HxString.substr(_hx_str,0,1) == "?"))) or ((_hx_str == ""))))
isOr = EReg("^or$","")
isProp = EReg(".*:[><=!]?","")
isName = EReg("[^:/]","")
isExclude = EReg("^-","")
isInclude = EReg("^\\+","")
isPreset = EReg("^\\?","")
token = _hx_str.split(" ")
ors = list()
q = _hx_AnonObject({})
def _hx_local_0():
nonlocal q
q = _hx_AnonObject({})
value = list()
setattr(q,(("_hx_" + "object") if (("object" in python_Boot.keywords)) else (("_hx_" + "object") if (((((len("object") > 2) and ((ord("object"[0]) == 95))) and ((ord("object"[1]) == 95))) and ((ord("object"[(len("object") - 1)]) != 95)))) else "object")),value)
value = list()
setattr(q,(("_hx_" + "-object") if (("-object" in python_Boot.keywords)) else (("_hx_" + "-object") if (((((len("-object") > 2) and ((ord("-object"[0]) == 95))) and ((ord("-object"[1]) == 95))) and ((ord("-object"[(len("-object") - 1)]) != 95)))) else "-object")),value)
ors.append(q)
return q
composeQuery = _hx_local_0
composeQuery()
match = None
def _hx_local_2(_hx_str,prefix = None):
if (prefix is None):
prefix = ""
isPreset.matchObj = python_lib_Re.search(isPreset.pattern,_hx_str)
if ((isPreset.matchObj is not None) and (not recurse)):
_gthis.preset = _hx_str
return
match1 = None
isExclude.matchObj = python_lib_Re.search(isExclude.pattern,_hx_str)
if (isExclude.matchObj is None):
isInclude.matchObj = python_lib_Re.search(isInclude.pattern,_hx_str)
match1 = (isInclude.matchObj is not None)
else:
match1 = True
if match1:
t = HxString.substr(_hx_str,1,None)
match(t,HxString.substr(_hx_str,0,1))
return
isProp.matchObj = python_lib_Re.search(isProp.pattern,_hx_str)
if (isProp.matchObj is not None):
skip = 0
_hx_type = "="
startIndex = None
if (((_hx_str.find("*") if ((startIndex is None)) else HxString.indexOfImpl(_hx_str,"*",startIndex))) != -1):
_hx_type = "*"
startIndex = None
if (((_hx_str.find(">") if ((startIndex is None)) else HxString.indexOfImpl(_hx_str,">",startIndex))) != -1):
_hx_type = ">"
startIndex = None
if (((_hx_str.find("<") if ((startIndex is None)) else HxString.indexOfImpl(_hx_str,"<",startIndex))) != -1):
_hx_type = "<"
startIndex = None
if (((_hx_str.find("!=") if ((startIndex is None)) else HxString.indexOfImpl(_hx_str,"!=",startIndex))) != -1):
_hx_type = "!="
startIndex = None
if (((_hx_str.find(">=") if ((startIndex is None)) else HxString.indexOfImpl(_hx_str,">=",startIndex))) != -1):
_hx_type = ">="
startIndex = None
if (((_hx_str.find("<=") if ((startIndex is None)) else HxString.indexOfImpl(_hx_str,"<=",startIndex))) != -1):
_hx_type = "<="
if (_hx_type != "="):
skip = (skip + len(_hx_type))
property = HxOverrides.arrayGet(_hx_str.split(":"), 0)
value = None
if Reflect.field(q,(("null" if prefix is None else prefix) + ("null" if property is None else property))):
value = Reflect.field(q,(("null" if prefix is None else prefix) + ("null" if property is None else property)))
else:
value = _hx_AnonObject({})
value1 = HxString.substr(HxOverrides.arrayGet(_hx_str.split(":"), 1),skip,None)
setattr(value,(("_hx_" + _hx_type) if ((_hx_type in python_Boot.keywords)) else (("_hx_" + _hx_type) if (((((len(_hx_type) > 2) and ((ord(_hx_type[0]) == 95))) and ((ord(_hx_type[1]) == 95))) and ((ord(_hx_type[(len(_hx_type) - 1)]) != 95)))) else _hx_type)),value1)
key = (("null" if prefix is None else prefix) + ("null" if property is None else property))
setattr(q,(("_hx_" + key) if ((key in python_Boot.keywords)) else (("_hx_" + key) if (((((len(key) > 2) and ((ord(key[0]) == 95))) and ((ord(key[1]) == 95))) and ((ord(key[(len(key) - 1)]) != 95)))) else key)),value)
return
isName.matchObj = python_lib_Re.search(isName.pattern,_hx_str)
if (isName.matchObj is not None):
if (prefix == "-"):
Reflect.field(Reflect.field(q,"-object"),"push")(_hx_str)
while (Reflect.field(Reflect.field(q,"object"),"contains")(_hx_str) == True):
Reflect.field(Reflect.field(q,"object"),"remove")(_hx_str)
else:
Reflect.field(Reflect.field(q,"object"),"push")(_hx_str)
while (Reflect.field(Reflect.field(q,"-object"),"contains")(_hx_str) == True):
Reflect.field(Reflect.field(q,"-object"),"remove")(_hx_str)
return
match = _hx_local_2
_g = 0
_g1 = len(token)
while (_g < _g1):
i = _g
_g = (_g + 1)
isOr.matchObj = python_lib_Re.search(isOr.pattern,(token[i] if i >= 0 and i < len(token) else None))
if (isOr.matchObj is not None):
composeQuery()
else:
match((token[i] if i >= 0 and i < len(token) else None))
_g = 0
_g1 = len(ors)
while (_g < _g1):
i = _g
_g = (_g + 1)
_hx_or = (ors[i] if i >= 0 and i < len(ors) else None)
if (Reflect.field(_hx_or,"object") is not None):
self.include = (self.include + Reflect.field(_hx_or,"object"))
if (Reflect.field(_hx_or,"-object") is not None):
self.exclude = (self.exclude + Reflect.field(_hx_or,"-object"))
self.q = _hx_AnonObject({'_hx_or': ors, 'copy_all': copyAll})
return self.q
def test(self,property,value = None):
if (self.preset == property):
self.parse(value,True)
_g = 0
_g1 = Reflect.field(Reflect.field(self.q,"or"),"length")
while (_g < _g1):
i = _g
_g = (_g + 1)
_hx_or = HxOverrides.arrayGet(Reflect.field(self.q,"or"), i)
conds = [0]
fails = [0]
_hx_pass = 0
def _hx_local_7(fails,conds):
def _hx_local_0(expr):
_hx_local_1 = conds
_hx_local_2 = 0
_hx_local_3 = (_hx_local_1[_hx_local_2] if _hx_local_2 >= 0 and _hx_local_2 < len(_hx_local_1) else None)
python_internal_ArrayImpl._set(_hx_local_1, _hx_local_2, (_hx_local_3 + 1))
(_hx_local_1[_hx_local_2] if _hx_local_2 >= 0 and _hx_local_2 < len(_hx_local_1) else None)
_hx_local_4 = fails
_hx_local_5 = 0
_hx_local_6 = (_hx_local_4[_hx_local_5] if _hx_local_5 >= 0 and _hx_local_5 < len(_hx_local_4) else None)
python_internal_ArrayImpl._set(_hx_local_4, _hx_local_5, (_hx_local_6 + (0 if expr else 1)))
(_hx_local_4[_hx_local_5] if _hx_local_5 >= 0 and _hx_local_5 < len(_hx_local_4) else None)
return expr
return _hx_local_0
when = _hx_local_7(fails,conds)
_g2 = 0
_g3 = python_Boot.fields(_hx_or)
while (_g2 < len(_g3)):
k = (_g3[_g2] if _g2 >= 0 and _g2 < len(_g3) else None)
_g2 = (_g2 + 1)
orval = Reflect.field(_hx_or,k)
if (k != property):
continue
if ((Reflect.field(orval,"=") is not None) and when(HxOverrides.eq(value,Reflect.field(orval,"=")))):
_hx_pass = (_hx_pass + 1)
if ((Reflect.field(orval,"*") is not None) and when((value is not None))):
_hx_pass = (_hx_pass + 1)
if ((Reflect.field(orval,">") is not None) and when((value > Std.parseInt(Reflect.field(orval,">"))))):
_hx_pass = (_hx_pass + 1)
if ((Reflect.field(orval,"<") is not None) and when((value < Std.parseInt(Reflect.field(orval,"<"))))):
_hx_pass = (_hx_pass + 1)
if ((Reflect.field(orval,">=") is not None) and when((value >= Std.parseInt(Reflect.field(orval,">="))))):
_hx_pass = (_hx_pass + 1)
if ((Reflect.field(orval,"<=") is not None) and when((value >= Std.parseInt(Reflect.field(orval,"<="))))):
_hx_pass = (_hx_pass + 1)
if ((Reflect.field(orval,"!=") is not None) and when((value != Std.parseInt(Reflect.field(orval,"!="))))):
_hx_pass = (_hx_pass + 1)
if ((self.accept and (((conds[0] if 0 < len(conds) else None) > 0))) and (((fails[0] if 0 < len(fails) else None) > 0))):
self.accept = False
if ((((conds[0] if 0 < len(conds) else None) > 0) and ((_hx_pass > 0))) and (((fails[0] if 0 < len(fails) else None) == 0))):
self.accept = True
@staticmethod
def _hx_empty_init(_hx_o):
_hx_o.str = None
_hx_o.q = None
_hx_o.include = None
_hx_o.exclude = None
_hx_o.accept = None
_hx_o.preset = None
Math.NEGATIVE_INFINITY = float("-inf")
Math.POSITIVE_INFINITY = float("inf")
Math.NaN = float("nan")
Math.PI = python_lib_Math.pi
haxe_SysTools.winMetaCharacters = [32, 40, 41, 37, 33, 94, 34, 60, 62, 38, 124, 10, 13, 44, 59]
StringTools.winMetaCharacters = haxe_SysTools.winMetaCharacters
Sys._programPath = sys_FileSystem.fullPath(python_lib_Inspect.getsourcefile(Sys))
def _hx_init_haxe_io_FPHelper_i64tmp():
def _hx_local_0():
this1 = haxe__Int64____Int64(0,0)
return this1
return _hx_local_0()
haxe_io_FPHelper.i64tmp = _hx_init_haxe_io_FPHelper_i64tmp()
haxe_io_FPHelper.LN2 = 0.6931471805599453
python_Boot.keywords = set(["and", "del", "from", "not", "with", "as", "elif", "global", "or", "yield", "assert", "else", "if", "pass", "None", "break", "except", "import", "raise", "True", "class", "exec", "in", "return", "False", "continue", "finally", "is", "try", "def", "for", "lambda", "while"])
python_Boot.prefixLength = len("_hx_")
python_Lib.lineEnd = ("\r\n" if ((Sys.systemName() == "Windows")) else "\n")
Test.main()