Module Import alias Import alias ImportFrom alias Import alias Import alias Import alias identifier Import alias FunctionDef arguments args NameParam NameParam defaults NameLoad body Expr Str Assign NameStore Num Assign NameStore Num Assign TupleStore NameStore NameStore Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index Num If Call NameLoad NameLoad body If NameLoad body AugAssignAdd NameStore Call NameLoad NameLoad orelse AugAssignAdd NameStore Call NameLoad NameLoad For TupleStore NameStore NameStore Call NameLoad NameLoad body Assign NameStore Call AttributeLoad NameLoad attr NameLoad If Call NameLoad NameLoad body If NameLoad body AugAssignAdd NameStore Call NameLoad NameLoad orelse AugAssignAdd NameStore Call NameLoad NameLoad Assign NameStore BinOpSub NameLoad NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults NameLoad body Expr Str Assign NameStore Call NameLoad NameLoad Assign NameStore NameLoad If CompareNotEq SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num body If NameLoad body Print Str Assign NameStore NameLoad If CompareLt NameLoad Num body If NameLoad body Print Str Assign NameStore NameLoad If UnaryOpNot Call NameLoad NameLoad body If NameLoad body Print Str Assign NameStore NameLoad For NameStore Call NameLoad Num NameLoad body If CompareEq SubscriptLoad NameLoad Index NameLoad SubscriptLoad NameLoad Index BinOpSub NameLoad Num body If NameLoad body Print Str Assign NameStore NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str TryExcept body Assign NameStore Call NameLoad SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num handlers ExceptHandler body Return NameLoad Assign NameStore Call NameLoad NameLoad Assign NameStore Num Assign NameStore NameLoad For NameStore Call NameLoad Num NameLoad body Assign NameStore ListLoad BinOpSub SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num SubscriptLoad SubscriptLoad NameLoad Index Num Index Num BinOpSub SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num SubscriptLoad SubscriptLoad NameLoad Index Num Index Num BinOpSub SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num SubscriptLoad SubscriptLoad NameLoad Index Num Index Num If CompareGt Call AttributeLoad NameLoad attr Call NameLoad NameLoad NameLoad NameLoad body Assign NameStore NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore Call NameLoad NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad If CompareLt Call AttributeLoad NameLoad attr SubscriptLoad Call NameLoad SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num Index Num Num body Assign NameStore NameLoad orelse Assign NameStore NameLoad Assign NameStore NameLoad For NameStore Call NameLoad Num NameLoad body If CompareNotEq SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num SubscriptLoad SubscriptLoad NameLoad Index Num Index Num body Assign NameStore NameLoad Continue If NameLoad body For NameStore Call NameLoad Num NameLoad body Assign SubscriptStore SubscriptLoad NameLoad Index NameLoad Index Num SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num Assign SubscriptStore SubscriptLoad NameLoad Index NameLoad Index Num SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num orelse If NameLoad body For NameStore Call NameLoad Num NameLoad body Assign SubscriptStore SubscriptLoad NameLoad Index NameLoad Index Num SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num orelse Pass For NameStore Call NameLoad Num BinOpSub NameLoad Num body If CompareEq NameLoad Num body Assign NameStore BinOpSub NameLoad Num orelse Assign NameStore BinOpSub NameLoad Num For NameStore Call NameLoad BinOpAdd NameLoad Num NameLoad body If Call NameLoad SubscriptLoad NameLoad Index NameLoad SubscriptLoad NameLoad Index BinOpAdd NameLoad Num SubscriptLoad NameLoad Index BinOpMod NameLoad NameLoad SubscriptLoad NameLoad Index BinOpMod BinOpAdd NameLoad Num NameLoad body Return NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam defaults body Expr Str Assign NameStore Num Assign NameStore ListLoad BinOpSub SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num BinOpSub SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num Assign NameStore ListLoad BinOpSub SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num BinOpSub SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num Assign NameStore BinOpSub BinOpMult SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num BinOpMult SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num If CompareLt Call AttributeLoad NameLoad attr NameLoad NameLoad body Return NameLoad orelse Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body Assign TupleStore NameStore NameStore TupleLoad BinOpSub SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num BinOpSub SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num Assign TupleStore NameStore NameStore TupleLoad BinOpSub SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num BinOpSub SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num Return CompareLt BinOpSub BinOpMult NameLoad NameLoad BinOpMult NameLoad NameLoad Num decorator_list FunctionDef arguments args NameParam defaults body Expr Str Return BinOpSub BinOpSub BinOpSub BinOpAdd BinOpAdd BinOpMult BinOpMult SubscriptLoad SubscriptLoad NameLoad Index Num Index Num SubscriptLoad SubscriptLoad NameLoad Index Num Index Num SubscriptLoad SubscriptLoad NameLoad Index Num Index Num BinOpMult BinOpMult SubscriptLoad SubscriptLoad NameLoad Index Num Index Num SubscriptLoad SubscriptLoad NameLoad Index Num Index Num SubscriptLoad SubscriptLoad NameLoad Index Num Index Num BinOpMult BinOpMult SubscriptLoad SubscriptLoad NameLoad Index Num Index Num SubscriptLoad SubscriptLoad NameLoad Index Num Index Num SubscriptLoad SubscriptLoad NameLoad Index Num Index Num BinOpMult BinOpMult SubscriptLoad SubscriptLoad NameLoad Index Num Index Num SubscriptLoad SubscriptLoad NameLoad Index Num Index Num SubscriptLoad SubscriptLoad NameLoad Index Num Index Num BinOpMult BinOpMult SubscriptLoad SubscriptLoad NameLoad Index Num Index Num SubscriptLoad SubscriptLoad NameLoad Index Num Index Num SubscriptLoad SubscriptLoad NameLoad Index Num Index Num BinOpMult BinOpMult SubscriptLoad SubscriptLoad NameLoad Index Num Index Num SubscriptLoad SubscriptLoad NameLoad Index Num Index Num SubscriptLoad SubscriptLoad NameLoad Index Num Index Num decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body Expr Str Assign NameStore Call NameLoad ListLoad ListLoad Num SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num ListLoad Num SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num ListLoad Num SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num Assign NameStore Call NameLoad ListLoad ListLoad SubscriptLoad NameLoad Index Num Num SubscriptLoad NameLoad Index Num ListLoad SubscriptLoad NameLoad Index Num Num SubscriptLoad NameLoad Index Num ListLoad SubscriptLoad NameLoad Index Num Num SubscriptLoad NameLoad Index Num Assign NameStore Call NameLoad ListLoad ListLoad SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num Num ListLoad SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num Num ListLoad SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num Num Assign NameStore BinOpPow BinOpAdd BinOpAdd BinOpPow NameLoad Num BinOpPow NameLoad Num BinOpPow NameLoad Num Num If CompareEq NameLoad Num body Raise Call NameLoad Str Return TupleLoad BinOpDiv NameLoad NameLoad BinOpDiv NameLoad NameLoad BinOpDiv NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Return BinOpAdd BinOpAdd BinOpMult SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num BinOpMult SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num BinOpMult SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Assign NameStore BinOpSub BinOpMult SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num BinOpMult SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num Assign NameStore BinOpSub BinOpMult SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num BinOpMult SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num Assign NameStore BinOpSub BinOpMult SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num BinOpMult SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num Return TupleLoad NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore ListLoad Num Num Num For NameStore Call NameLoad Call NameLoad NameLoad body Assign NameStore SubscriptLoad NameLoad Index NameLoad If CompareIs NameLoad BinOpSub Call NameLoad NameLoad Num body Assign NameStore SubscriptLoad NameLoad Index Num orelse Assign NameStore SubscriptLoad NameLoad Index BinOpAdd NameLoad Num Assign NameStore Call NameLoad NameLoad NameLoad AugAssignAdd SubscriptStore NameLoad Index Num SubscriptLoad NameLoad Index Num AugAssignAdd SubscriptStore NameLoad Index Num SubscriptLoad NameLoad Index Num AugAssignAdd SubscriptStore NameLoad Index Num SubscriptLoad NameLoad Index Num Assign NameStore Call NameLoad NameLoad Call NameLoad SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num Return Call AttributeLoad NameLoad attr BinOpMult NameLoad Num decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore Call AttributeLoad NameLoad attr NameLoad For NameStore NameLoad body Assign SubscriptStore NameLoad Index Num Num Return Call NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Return Call NameLoad SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore BinOpSub Num Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num If CompareGtE NameLoad Num body AugAssignSub NameStore Num orelse If CompareLt NameLoad Num body AugAssignAdd NameStore Num Assign NameStore Call AttributeLoad NameLoad attr BinOpAdd BinOpPow SubscriptLoad NameLoad Index Num Num BinOpPow SubscriptLoad NameLoad Index Num Num If CompareEq NameLoad Num body Assign NameStore Num orelse Assign NameStore BinOpSub Num Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr BinOpDiv SubscriptLoad NameLoad Index Num NameLoad Assign NameStore Call NameLoad NameLoad Num Return TupleLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore ListLoad Assign NameStore Call AttributeLoad NameLoad attr Assert CompareEq BinOpMod Call NameLoad NameLoad Num Num For NameStore Call NameLoad Num Call NameLoad NameLoad Num body Expr Call AttributeLoad NameLoad attr ListLoad Call NameLoad SubscriptLoad NameLoad Index NameLoad Call NameLoad SubscriptLoad NameLoad Index BinOpAdd NameLoad Num Call NameLoad SubscriptLoad NameLoad Index BinOpAdd NameLoad Num Return NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore ListLoad Assign NameStore Call NameLoad NameLoad keyword Lambda arguments args NameParam defaults TupleLoad SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num Assign NameStore SubscriptLoad NameLoad Index Num Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults NameLoad body Expr Str Assign NameStore ListLoad Assign NameStore Call NameLoad NameLoad keyword Lambda arguments args NameParam defaults TupleLoad SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num If CompareIsNot NameLoad NameLoad body Assign NameStore NameLoad For NameStore Call NameLoad Num BinOpMult Num Call NameLoad NameLoad Num body If NameLoad body Assign NameStore SubscriptLoad NameLoad Index NameLoad If CompareNotEq SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num body Assign NameStore NameLoad Break orelse Break orelse Assign NameStore SubscriptLoad NameLoad Index Num Return NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore Num Assign NameStore Num Assign NameStore Num Assign NameStore Call NameLoad Call NameLoad NameLoad For NameStore NameLoad body AugAssignAdd NameStore Call NameLoad SubscriptLoad NameLoad Index Num AugAssignAdd NameStore Call NameLoad SubscriptLoad NameLoad Index Num AugAssignAdd NameStore Call NameLoad SubscriptLoad NameLoad Index Num Return ListLoad BinOpDiv NameLoad NameLoad BinOpDiv NameLoad NameLoad BinOpDiv NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore Call AttributeLoad NameLoad attr NameLoad Return AttributeLoad Call AttributeLoad NameLoad attr attr decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body Expr Str Assign NameStore BinOpSub BinOpMult BinOpSub SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num BinOpSub SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num BinOpMult BinOpSub SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num BinOpSub SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num Assign NameStore BinOpSub BinOpMult BinOpSub SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num BinOpSub SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num BinOpMult BinOpSub SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num BinOpSub SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num Assign NameStore BinOpSub BinOpMult BinOpSub SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num BinOpSub SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num BinOpMult BinOpSub SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num BinOpSub SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num Assign NameStore BinOpMult Num BinOpAdd BinOpAdd BinOpMult NameLoad SubscriptLoad NameLoad Index Num BinOpMult NameLoad SubscriptLoad NameLoad Index Num BinOpMult NameLoad SubscriptLoad NameLoad Index Num Return TupleLoad NameLoad NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body Expr Str Assign TupleStore NameStore NameStore NameStore NameStore NameLoad Assign NameStore BinOpDiv BinOpSub BinOpSub BinOpMult UnaryOpUSub NameLoad NameLoad BinOpMult NameLoad NameLoad NameLoad NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body Expr Str Assign TupleStore NameStore NameStore NameStore NameStore NameLoad Assign NameStore BinOpDiv BinOpSub BinOpSub BinOpMult UnaryOpUSub NameLoad NameLoad BinOpMult NameLoad NameLoad NameLoad NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Assign NameStore Num Assign NameStore NameLoad If CompareGt Call AttributeLoad NameLoad attr BinOpSub SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num NameLoad body Assign NameStore NameLoad orelse If CompareGt Call AttributeLoad NameLoad attr BinOpSub SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num NameLoad body Assign NameStore NameLoad orelse If CompareGt Call AttributeLoad NameLoad attr BinOpSub SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num NameLoad body Assign NameStore NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore ListLoad Assign NameStore Call NameLoad NameLoad For NameStore Call NameLoad BinOpSub NameLoad Num Num Num body Expr Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Assign NameStore ListLoad Assign NameStore ListLoad Assign NameStore ListLoad Assign NameStore Num Assign NameStore ListLoad ListLoad ListLoad ListLoad Assign NameStore ListLoad ListLoad ListLoad ListLoad For NameStore Call NameLoad BinOpSub Call NameLoad NameLoad Num body Expr Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index NameLoad If BoolOpAnd CompareEq NameLoad ListLoad ListLoad ListLoad ListLoad CompareEq NameLoad Num body Assign NameStore ListLoad SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num If BoolOpAnd CompareGt NameLoad Num CompareNotEq SubscriptLoad NameLoad Index NameLoad SubscriptLoad NameLoad Index BinOpSub NameLoad Num body If CompareEq NameLoad ListLoad ListLoad ListLoad ListLoad body Assign NameStore ListLoad SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num If CompareEq NameLoad BinOpSub Call NameLoad NameLoad Num body Expr Call AttributeLoad NameLoad attr ListLoad NameLoad Num orelse Expr Call AttributeLoad NameLoad attr ListLoad NameLoad BinOpAdd NameLoad Num AugAssignAdd NameStore Num For NameStore NameLoad body Assign NameStore NameLoad For NameStore Call NameLoad BinOpSub Call NameLoad NameLoad Num body If CompareEq NameLoad BinOpSub Call NameLoad NameLoad Num body Expr Call AttributeLoad NameLoad attr ListLoad NameLoad NameLoad orelse Expr Call AttributeLoad NameLoad attr ListLoad NameLoad BinOpAdd NameLoad Num AugAssignAdd NameStore Num Expr Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index NameLoad Expr Call AttributeLoad NameLoad attr Call NameLoad SubscriptLoad NameLoad Slice Num Assign NameStore Call NameLoad NameLoad Assign NameStore Call NameLoad NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call NameLoad SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num If CompareLt Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index Num Num body Assign NameStore NameLoad orelse Assign NameStore NameLoad Assign NameStore NameLoad For NameStore Call NameLoad Num NameLoad body If CompareNotEq SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num SubscriptLoad SubscriptLoad NameLoad Index Num Index Num body Assign NameStore NameLoad Continue If NameLoad body For NameStore Call NameLoad Num NameLoad body Assign SubscriptStore SubscriptLoad NameLoad Index NameLoad Index Num SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num Assign SubscriptStore SubscriptLoad NameLoad Index NameLoad Index Num SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num For NameStore Call NameLoad Num NameLoad body Assign SubscriptStore SubscriptLoad NameLoad Index NameLoad Index Num SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num Assign SubscriptStore SubscriptLoad NameLoad Index NameLoad Index Num SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num orelse If NameLoad body For NameStore Call NameLoad Num NameLoad body Assign SubscriptStore SubscriptLoad NameLoad Index NameLoad Index Num SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num For NameStore Call NameLoad Num NameLoad body Assign SubscriptStore SubscriptLoad NameLoad Index NameLoad Index Num SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num orelse Pass For NameStore NameLoad body Expr Call AttributeLoad NameLoad attr Num If CompareEq Call NameLoad NameLoad Num body Assign NameStore NameLoad orelse For NameStore NameLoad body Expr Call AttributeLoad NameLoad attr Num Assign NameStore SubscriptLoad NameLoad Index Num Assign NameStore SubscriptLoad NameLoad Index Num Assign NameStore SubscriptLoad NameLoad Index Num Assign NameStore Call NameLoad NameLoad NameLoad NameLoad Assign NameStore Dict Str Str Str Call AttributeLoad NameLoad attr NameLoad Call AttributeLoad NameLoad attr NameLoad Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad Str Assign NameStore SubscriptLoad NameLoad Index Str Assign NameStore Call AttributeLoad SubscriptLoad NameLoad Index Str attr Assign NameStore ListLoad For NameStore NameLoad body Assign NameStore ListLoad For NameStore Call AttributeLoad NameLoad attr body Assign NameStore ListLoad ListLoad ListLoad ListLoad If NameLoad body Assign SubscriptStore NameLoad Index Num SubscriptLoad SubscriptLoad NameLoad Index Num Index Num Assign SubscriptStore NameLoad Index Num SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num Assign SubscriptStore NameLoad Index Num SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num orelse If NameLoad body Assign SubscriptStore NameLoad Index Num SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num Assign SubscriptStore NameLoad Index Num SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num Assign SubscriptStore NameLoad Index Num Call NameLoad NameLoad SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num orelse Assign SubscriptStore NameLoad Index Num SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num Assign SubscriptStore NameLoad Index Num SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num Assign SubscriptStore NameLoad Index Num Call NameLoad NameLoad SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num Expr Call AttributeLoad NameLoad attr NameLoad TryExcept body Assign NameStore Call NameLoad SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num handlers ExceptHandler body Continue If Call NameLoad NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad orelse Assign NameStore Call NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Return NameLoad decorator_list
N/A N/A math N/A markup3dmodule lxml etree N/A copy N/A triangle N/A numpy np N/A shapely getAreaOfGML N/A N/A poly height N/A True N/A N/A Function which reads <gml:Polygon> and returns its area.
    The function also accounts for the interior and checks for the validity of the polygon. N/A exteriorarea 0.0 N/A interiorarea 0.0 N/A N/A e i N/A N/A markup3dmodule polydecomposer poly N/A epoints N/A N/A markup3dmodule GMLpoints N/A e N/A 0 N/A N/A isPolyValid epoints N/A N/A height N/A N/A exteriorarea N/A get3DArea epoints N/A N/A exteriorarea N/A get2DArea epoints N/A N/A idx iring N/A enumerate i N/A N/A ipoints N/A N/A markup3dmodule GMLpoints iring N/A N/A isPolyValid ipoints N/A N/A height N/A N/A interiorarea N/A get3DArea ipoints N/A N/A interiorarea N/A get2DArea ipoints N/A area N/A exteriorarea interiorarea N/A area N/A isPolyValid N/A N/A polypoints output N/A True N/A N/A Checks if a polygon is valid. Second option is to supress output. N/A npolypoints N/A len polypoints N/A valid True N/A N/A N/A polypoints N/A 0 N/A polypoints N/A -1 N/A N/A output N/A N/A 		A degenerate polygon. First and last points do not match. N/A valid False N/A N/A npolypoints 4 N/A N/A output N/A N/A 		A degenerate polygon. The number of points is smaller than 3. N/A valid False N/A N/A N/A isPolyPlanar polypoints N/A N/A output N/A N/A 		A degenerate polygon. The points are not planar. N/A valid False N/A i N/A range 1 npolypoints N/A N/A N/A N/A polypoints N/A i N/A polypoints N/A N/A i 1 N/A N/A output N/A N/A 		A degenerate polygon. There are identical points. N/A valid False N/A valid N/A isPolyPlanar N/A N/A polypoints N/A N/A N/A Checks if a polygon is planar. N/A N/A N/A normal N/A unit_normal N/A polypoints N/A 0 N/A polypoints N/A 1 N/A polypoints N/A 2 N/A N/A N/A N/A False N/A npolypoints N/A len polypoints N/A eps 0.01 N/A planar True N/A i N/A range 3 npolypoints N/A N/A vector N/A N/A N/A N/A polypoints N/A i N/A 0 N/A N/A polypoints N/A 0 N/A 0 N/A N/A N/A polypoints N/A i N/A 1 N/A N/A polypoints N/A 0 N/A 1 N/A N/A N/A polypoints N/A i N/A 2 N/A N/A polypoints N/A 0 N/A 2 N/A N/A N/A N/A math fabs N/A dot vector normal eps N/A N/A planar False N/A planar N/A isPolySimple N/A N/A polypoints N/A N/A N/A Checks if the polygon is simple, i.e. it does not have any self-intersections.
    Inspired by http://www.win.tue.nl/~vanwijk/2IV60/2IV60_exercise_3_answers.pdf N/A npolypoints N/A len polypoints N/A temppolypoints N/A N/A copy deepcopy polypoints N/A newpolypoints N/A N/A copy deepcopy temppolypoints N/A N/A N/A N/A math fabs N/A N/A unit_normal N/A temppolypoints N/A 0 N/A temppolypoints N/A 1 N/A temppolypoints N/A 2 N/A 2 1e-05 N/A N/A vertical True N/A N/A vertical False N/A YZ True N/A i N/A range 1 npolypoints N/A N/A N/A N/A N/A temppolypoints N/A i N/A 0 N/A N/A temppolypoints N/A 0 N/A 0 N/A N/A YZ False N/A N/A YZ N/A N/A i N/A range 0 npolypoints N/A N/A N/A N/A newpolypoints N/A i N/A 0 N/A N/A temppolypoints N/A i N/A 1 N/A N/A N/A newpolypoints N/A i N/A 1 N/A N/A temppolypoints N/A i N/A 2 N/A N/A vertical N/A N/A i N/A range 0 npolypoints N/A N/A N/A N/A newpolypoints N/A i N/A 1 N/A N/A temppolypoints N/A i N/A 2 N/A N/A N/A i N/A range 0 N/A npolypoints 3 N/A N/A N/A i 0 N/A N/A m N/A npolypoints 3 N/A N/A m N/A npolypoints 2 N/A j N/A range N/A i 2 m N/A N/A N/A intersection N/A newpolypoints N/A i N/A newpolypoints N/A N/A i 1 N/A newpolypoints N/A N/A j npolypoints N/A newpolypoints N/A N/A N/A j 1 npolypoints N/A N/A False N/A True N/A intersection N/A N/A p q r s N/A N/A N/A Check if two line segments (pq and rs) intersect. Computation is in 2D.
    Inspired by http://www.win.tue.nl/~vanwijk/2IV60/2IV60_exercise_3_answers.pdf N/A eps 1e-05 N/A V N/A N/A N/A q N/A 0 N/A p N/A 0 N/A N/A q N/A 1 N/A p N/A 1 N/A W N/A N/A N/A r N/A 0 N/A s N/A 0 N/A N/A r N/A 1 N/A s N/A 1 N/A d N/A N/A N/A V N/A 0 N/A W N/A 1 N/A N/A W N/A 0 N/A V N/A 1 N/A N/A N/A N/A math fabs d eps N/A N/A False N/A N/A True N/A collinear N/A N/A p0 p1 p2 N/A N/A N/A N/A x1 y1 N/A N/A N/A p1 N/A 0 N/A p0 N/A 0 N/A N/A p1 N/A 1 N/A p0 N/A 1 N/A N/A x2 y2 N/A N/A N/A p2 N/A 0 N/A p0 N/A 0 N/A N/A p2 N/A 1 N/A p0 N/A 1 N/A N/A N/A N/A x1 y2 N/A x2 y1 1e-12 N/A det N/A N/A a N/A N/A N/A Determinant of matrix a. N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A a N/A 0 N/A 0 N/A N/A a N/A 1 N/A 1 N/A N/A a N/A 2 N/A 2 N/A N/A N/A N/A a N/A 0 N/A 1 N/A N/A a N/A 1 N/A 2 N/A N/A a N/A 2 N/A 0 N/A N/A N/A N/A a N/A 0 N/A 2 N/A N/A a N/A 1 N/A 0 N/A N/A a N/A 2 N/A 1 N/A N/A N/A N/A a N/A 0 N/A 2 N/A N/A a N/A 1 N/A 1 N/A N/A a N/A 2 N/A 0 N/A N/A N/A N/A a N/A 0 N/A 1 N/A N/A a N/A 1 N/A 0 N/A N/A a N/A 2 N/A 2 N/A N/A N/A N/A a N/A 0 N/A 0 N/A N/A a N/A 1 N/A 2 N/A N/A a N/A 2 N/A 1 N/A unit_normal N/A N/A a b c N/A N/A N/A Unit normal vector of plane defined by points a, b, and c. N/A x N/A det N/A N/A 1 N/A a N/A 1 N/A a N/A 2 N/A 1 N/A b N/A 1 N/A b N/A 2 N/A 1 N/A c N/A 1 N/A c N/A 2 N/A y N/A det N/A N/A N/A a N/A 0 1 N/A a N/A 2 N/A N/A b N/A 0 1 N/A b N/A 2 N/A N/A c N/A 0 1 N/A c N/A 2 N/A z N/A det N/A N/A N/A a N/A 0 N/A a N/A 1 1 N/A N/A b N/A 0 N/A b N/A 1 1 N/A N/A c N/A 0 N/A c N/A 1 1 N/A magnitude N/A N/A N/A N/A x 2 N/A y 2 N/A z 2 0.5 N/A N/A magnitude 0.0 N/A N/A N/A ValueError The normal of the polygon has no magnitude. Check the polygon. The most common cause for this are two identical sequential points or collinear points. N/A N/A N/A x magnitude N/A y magnitude N/A z magnitude N/A dot N/A N/A a b N/A N/A N/A Dot product of vectors a and b. N/A N/A N/A N/A N/A a N/A 0 N/A b N/A 0 N/A N/A a N/A 1 N/A b N/A 1 N/A N/A a N/A 2 N/A b N/A 2 N/A cross N/A N/A a b N/A N/A N/A Cross product of vectors a and b. N/A x N/A N/A N/A a N/A 1 N/A b N/A 2 N/A N/A a N/A 2 N/A b N/A 1 N/A y N/A N/A N/A a N/A 2 N/A b N/A 0 N/A N/A a N/A 0 N/A b N/A 2 N/A z N/A N/A N/A a N/A 0 N/A b N/A 1 N/A N/A a N/A 1 N/A b N/A 0 N/A N/A x y z N/A get3DArea N/A N/A polypoints N/A N/A N/A Function which reads the list of coordinates and returns its area.
    The code has been borrowed from http://stackoverflow.com/questions/12642256/python-find-area-of-polygon-from-xyz-coordinates N/A total N/A 0 0 0 N/A i N/A range N/A len polypoints N/A N/A vi1 N/A polypoints N/A i N/A N/A i N/A N/A len polypoints 1 N/A N/A vi2 N/A polypoints N/A 0 N/A N/A vi2 N/A polypoints N/A N/A i 1 N/A prod N/A cross vi1 vi2 N/A N/A total N/A 0 N/A prod N/A 0 N/A N/A total N/A 1 N/A prod N/A 1 N/A N/A total N/A 2 N/A prod N/A 2 N/A result N/A dot total N/A unit_normal N/A polypoints N/A 0 N/A polypoints N/A 1 N/A polypoints N/A 2 N/A N/A N/A math fabs N/A result 0.5 N/A get2DArea N/A N/A polypoints N/A N/A N/A Reads the list of coordinates and returns its projected area (disregards z coords). N/A flatpolypoints N/A N/A copy deepcopy polypoints N/A p flatpolypoints N/A N/A N/A p N/A 2 0.0 N/A N/A get3DArea flatpolypoints N/A getNormal N/A N/A polypoints N/A N/A N/A Get the normal of the first three points of a polygon. Assumes planarity. N/A N/A unit_normal N/A polypoints N/A 0 N/A polypoints N/A 1 N/A polypoints N/A 2 N/A getAngles N/A N/A normal N/A N/A N/A Get the azimuth and altitude from the normal vector. N/A azimuth N/A 90 N/A N/A math degrees N/A N/A math atan2 N/A normal N/A 1 N/A normal N/A 0 N/A N/A azimuth 360.0 N/A N/A azimuth 360.0 N/A N/A N/A azimuth 0.0 N/A N/A azimuth 360.0 N/A t N/A N/A math sqrt N/A N/A N/A normal N/A 0 2 N/A N/A normal N/A 1 2 N/A N/A t 0 N/A N/A tilt 0.0 N/A N/A tilt N/A 90 N/A N/A math degrees N/A N/A math atan N/A N/A normal N/A 2 t N/A tilt N/A round tilt 3 N/A N/A azimuth tilt N/A GMLstring2points N/A N/A pointstring N/A N/A N/A Convert list of points in string to a list of points. Works for 3D points. N/A listPoints N/A N/A coords N/A N/A pointstring split N/A N/A N/A N/A len coords 3 0 N/A i N/A range 0 N/A len coords 3 N/A N/A N/A N/A listPoints append N/A N/A float N/A coords N/A i N/A float N/A coords N/A N/A i 1 N/A float N/A coords N/A N/A i 2 N/A listPoints N/A smallestPoint N/A N/A list_of_points N/A N/A N/A Finds the smallest point from a three-dimensional tuple list. N/A smallest N/A N/A sorted_points N/A sorted list_of_points key N/A N/A N/A x N/A N/A N/A x N/A 0 N/A x N/A 1 N/A x N/A 2 N/A smallest N/A sorted_points N/A 0 N/A smallest N/A highestPoint N/A N/A list_of_points a N/A None N/A N/A Finds the highest point from a three-dimensional tuple list. N/A highest N/A N/A sorted_points N/A sorted list_of_points key N/A N/A N/A x N/A N/A N/A x N/A 0 N/A x N/A 1 N/A x N/A 2 N/A N/A a None N/A N/A equalZ True N/A i N/A range -1 N/A -1 N/A len list_of_points -1 N/A N/A equalZ N/A N/A highest N/A sorted_points N/A i N/A N/A N/A highest N/A 2 N/A a N/A 2 N/A N/A equalZ False N/A N/A N/A N/A N/A highest N/A sorted_points N/A -1 N/A highest N/A centroid N/A N/A list_of_points N/A N/A N/A Returns the centroid of the list of points. N/A sum_x 0 N/A sum_y 0 N/A sum_z 0 N/A n N/A float N/A len list_of_points N/A p list_of_points N/A N/A sum_x N/A float N/A p N/A 0 N/A sum_y N/A float N/A p N/A 1 N/A sum_z N/A float N/A p N/A 2 N/A N/A N/A sum_x n N/A sum_y n N/A sum_z n N/A point_inside N/A N/A list_of_points N/A N/A N/A Returns a point that is guaranteed to be inside the polygon, thanks to Shapely. N/A polygon N/A N/A shapely Polygon list_of_points N/A N/A N/A N/A polygon representative_point coords N/A plane N/A N/A a b c N/A N/A N/A Returns the equation of a three-dimensional plane in space by entering the three coordinates of the plane. N/A p_a N/A N/A N/A N/A b N/A 1 N/A a N/A 1 N/A N/A c N/A 2 N/A a N/A 2 N/A N/A N/A c N/A 1 N/A a N/A 1 N/A N/A b N/A 2 N/A a N/A 2 N/A p_b N/A N/A N/A N/A b N/A 2 N/A a N/A 2 N/A N/A c N/A 0 N/A a N/A 0 N/A N/A N/A c N/A 2 N/A a N/A 2 N/A N/A b N/A 0 N/A a N/A 0 N/A p_c N/A N/A N/A N/A b N/A 0 N/A a N/A 0 N/A N/A c N/A 1 N/A a N/A 1 N/A N/A N/A c N/A 0 N/A a N/A 0 N/A N/A b N/A 1 N/A a N/A 1 N/A p_d N/A -1 N/A N/A N/A p_a N/A a N/A 0 N/A p_b N/A a N/A 1 N/A p_c N/A a N/A 2 N/A N/A p_a p_b p_c p_d N/A get_height N/A N/A plane x y N/A N/A N/A Get the missing coordinate from the plane equation and the partial coordinates. N/A N/A p_a p_b p_c p_d plane N/A z N/A N/A N/A N/A N/A p_a x N/A p_b y p_d p_c N/A z N/A get_y N/A N/A plane x z N/A N/A N/A Get the missing coordinate from the plane equation and the partial coordinates. N/A N/A p_a p_b p_c p_d plane N/A y N/A N/A N/A N/A N/A p_a x N/A p_c z p_d p_b N/A y N/A compare_normals N/A N/A n1 n2 N/A N/A N/A Compares if two normals are equal or opposite. Takes into account a small tolerance to overcome floating point errors. N/A tolerance 0.1 N/A equal True N/A N/A N/A N/A math fabs N/A N/A n1 N/A 0 N/A n2 N/A 0 tolerance N/A N/A equal False N/A N/A N/A N/A N/A math fabs N/A N/A n1 N/A 1 N/A n2 N/A 1 tolerance N/A N/A equal False N/A N/A N/A N/A N/A math fabs N/A N/A n1 N/A 2 N/A n2 N/A 2 tolerance N/A N/A equal False N/A equal N/A reverse_vertices N/A N/A vertices N/A N/A N/A Reverse vertices. Useful to reorient the normal of the polygon. N/A reversed_vertices N/A N/A nv N/A len vertices N/A i N/A range N/A nv 1 -1 -1 N/A N/A N/A N/A reversed_vertices append N/A vertices N/A i N/A reversed_vertices N/A triangulation N/A N/A e i N/A N/A N/A Triangulate the polygon with the exterior and interior list of points. Works only for convex polygons.
    Assumes planarity. Projects to a 2D plane and goes back to 3D. N/A vertices N/A N/A holes N/A N/A segments N/A N/A index_point 0 N/A a N/A N/A N/A N/A N/A b N/A N/A N/A N/A N/A ip N/A range N/A N/A len e 1 N/A N/A N/A N/A vertices append N/A e N/A ip N/A N/A N/A a N/A N/A N/A N/A N/A index_point 0 N/A N/A a N/A N/A N/A e N/A ip N/A 0 N/A N/A e N/A ip N/A 1 N/A N/A e N/A ip N/A 2 N/A N/A N/A index_point 0 N/A N/A e N/A ip N/A e N/A N/A ip 1 N/A N/A N/A b N/A N/A N/A N/A N/A N/A b N/A N/A N/A e N/A ip N/A 0 N/A N/A e N/A ip N/A 1 N/A N/A e N/A ip N/A 2 N/A N/A ip N/A N/A len e 2 N/A N/A N/A N/A segments append N/A index_point 0 N/A N/A N/A N/A segments append N/A index_point N/A index_point 1 N/A index_point 1 N/A hole i N/A N/A first_point_in_hole index_point N/A p N/A range N/A N/A len hole 1 N/A N/A N/A p N/A N/A len hole 2 N/A N/A N/A N/A segments append N/A index_point first_point_in_hole N/A N/A N/A N/A segments append N/A index_point N/A index_point 1 N/A index_point 1 N/A N/A N/A vertices append N/A hole N/A p N/A N/A N/A holes append N/A point_inside N/A hole N/A -1 N/A npolypoints N/A len vertices N/A nholes N/A len holes N/A temppolypoints N/A N/A copy deepcopy vertices N/A newpolypoints N/A N/A copy deepcopy vertices N/A tempholes N/A N/A copy deepcopy holes N/A newholes N/A N/A copy deepcopy holes N/A normal N/A unit_normal N/A temppolypoints N/A 0 N/A temppolypoints N/A 1 N/A temppolypoints N/A 2 N/A N/A N/A N/A math fabs N/A normal N/A 2 0.1 N/A N/A vertical True N/A N/A vertical False N/A YZ True N/A i N/A range 1 npolypoints N/A N/A N/A N/A N/A temppolypoints N/A i N/A 0 N/A N/A temppolypoints N/A 0 N/A 0 N/A N/A YZ False N/A N/A YZ N/A N/A i N/A range 0 npolypoints N/A N/A N/A N/A newpolypoints N/A i N/A 0 N/A N/A temppolypoints N/A i N/A 1 N/A N/A N/A newpolypoints N/A i N/A 1 N/A N/A temppolypoints N/A i N/A 2 N/A i N/A range 0 nholes N/A N/A N/A N/A newholes N/A i N/A 0 N/A N/A tempholes N/A i N/A 1 N/A N/A N/A newholes N/A i N/A 1 N/A N/A tempholes N/A i N/A 2 N/A N/A vertical N/A N/A i N/A range 0 npolypoints N/A N/A N/A N/A newpolypoints N/A i N/A 1 N/A N/A temppolypoints N/A i N/A 2 N/A i N/A range 0 nholes N/A N/A N/A N/A newholes N/A i N/A 1 N/A N/A tempholes N/A i N/A 2 N/A N/A N/A p newpolypoints N/A N/A N/A N/A p pop -1 N/A N/A N/A len newholes 0 N/A N/A newholes None N/A N/A h newholes N/A N/A N/A N/A h pop -1 N/A a N/A e N/A 0 N/A b N/A e N/A 1 N/A c N/A e N/A 2 N/A pl N/A plane a b c N/A poly N/A vertices segments holes N/A N/A np array newpolypoints N/A N/A np array segments N/A N/A np array newholes N/A t N/A N/A triangle triangulate poly pQjz N/A tris N/A t N/A triangles N/A vert N/A N/A N/A t N/A vertices tolist N/A tri_points N/A N/A tri tris N/A N/A tri_points_tmp N/A N/A v N/A N/A tri tolist N/A N/A vert_adj N/A N/A N/A N/A N/A YZ N/A N/A N/A vert_adj N/A 0 N/A N/A temppolypoints N/A 0 N/A 0 N/A N/A vert_adj N/A 1 N/A N/A vert N/A v N/A 0 N/A N/A vert_adj N/A 2 N/A N/A vert N/A v N/A 1 N/A N/A vertical N/A N/A N/A vert_adj N/A 0 N/A N/A vert N/A v N/A 0 N/A N/A vert_adj N/A 2 N/A N/A vert N/A v N/A 1 N/A N/A vert_adj N/A 1 N/A get_y pl N/A vert_adj N/A 0 N/A vert_adj N/A 2 N/A N/A N/A vert_adj N/A 0 N/A N/A vert N/A v N/A 0 N/A N/A vert_adj N/A 1 N/A N/A vert N/A v N/A 1 N/A N/A vert_adj N/A 2 N/A get_height pl N/A vert_adj N/A 0 N/A vert_adj N/A 1 N/A N/A N/A tri_points_tmp append vert_adj N/A N/A N/A tri_normal N/A unit_normal N/A tri_points_tmp N/A 0 N/A tri_points_tmp N/A 1 N/A tri_points_tmp N/A 2 N/A N/A N/A N/A N/A N/A compare_normals normal tri_normal N/A N/A N/A N/A tri_points append tri_points_tmp N/A N/A tri_points_tmp N/A reverse_vertices tri_points_tmp N/A N/A N/A tri_points append tri_points_tmp N/A tri_points N/A