|"      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                  ! (c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcSafe-Convert escaped sequences of characters into real& characters in a normal Python string.(The set of valid octal digits in Python.&The set of valid hex digits in Python.""(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcSafe35*All types which can be transformed into a #.Transform values into strings."Print just the prefix of something.Conditionally wrap parentheses around an item. %A list of things separated by commas.  D$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQ#RSTUVWXYZ[\]^_    (c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcSafe+8Source location spanning a contiguous section of a file..A span which starts and ends on the same line.0A span which starts and ends on different lines.4A span which is actually just one point in the file.No span information.Types which have a span.A location for a syntactic entity from the source code. The location is specified by its filename, and starting row and column. %4Create a new span which encloses two spanned things.&1Construct the initial source location for a file.'EDecrement the column of a location, only if they are on the same row.($Increment the column of a location. )3Increment the column of a location by one tab stop.*5Increment the line number (row) of a location by one.+*Make a point span from the start of a span,wMake a span from two locations. Assumption: either the arguments are the same, or the left one preceeds the right one.- Combines two w into one that spans at least all the characters within both spans. Assumes the "file" part is the same in both inputs.#Get the row of the start of a span./!Get the row of the end of a span.0&Get the column of the start of a span.1$Get the column of the end of a span.* !"#$%&'()*`+,-./01abcdefgh! !"#$%&'()*+,-./01& $!"#%,-&+('*)1/0. $!"#%&'()*`+,-./01abcdefgh(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcSafe+e2Classification of tokens=Lexical tokens.>Indentation: increase.@Indentation: decrease.ANewline.B%Line join (backslash at end of line).CSingle line comment.E Identifier.FLiteral: string.GLiteral: byte string.H(Literal: unicode string, version 2 only.ILiteral: integer.KLiteral: long integer. Version 2 only.LLiteral: floating point.NLiteral: imaginary number.OKeyword: 'def'. PKeyword: 'while'.QKeyword: 'if'.RKeyword: 'True'.SKeyword: 'False'.TKeyword: 'Return'.UKeyword: 'try'.VKeyword: 'except'.WKeyword: 'raise'.XKeyword: 'in'.YKeyword: 'is'.ZKeyword: 'lambda'.[Keyword: 'class'.\Keyword: 'finally'.]Keyword: 'None'. ^Keyword: 'for'._Keyword: 'from'.`Keyword: 'global'.aKeyword: 'with'.bKeyword: 'as'.cKeyword: 'elif'.dKeyword: 'yield'.eKeyword: 'assert'.fKeyword: 'import'.gKeyword: 'pass'.hKeyword: 'break'.iKeyword: 'continue'.jKeyword: 'del'.kKeyword: 'else'.lKeyword: 'not'.m#Keyword: boolean conjunction 'and'.n5Keyword: boolean disjunction 'or'. Version 3.x only:o8Keyword: 'nonlocal' (Python 3.x only) Version 2.x only:p#Keyword: 'print'. (Python 2.x only)q"Keyword: 'exec'. (Python 2.x only)rDelimiter: at sign '@'. s"Delimiter: left round bracket '('.t#Delimiter: right round bracket ')'.u#Delimiter: left square bracket '['.v$Delimiter: right square bracket ']'.w"Delimiter: left curly bracket '{'.x#Delimiter: right curly bracket '}'.yDelimiter: dot (full stop) '.'.zDelimiter: comma ','.{Delimiter: semicolon ';'.|Delimiter: colon ':'.}'Delimiter: ellipses (three dots) '...'.~#Delimiter: right facing arrow '->'.Delimiter: assignment '='. Delimiter: plus assignment '+='.!Delimiter: minus assignment '-='.#Delimiter: multiply assignment '*='"Delimiter: divide assignment '/='.#Delimiter: modulus assignment '%='."Delimiter: power assignment '**='.&Delimiter: binary-and assignment '&='.%Delimiter: binary-or assignment '|='.&Delimiter: binary-xor assignment '^='..Delimiter: binary-left-shift assignment '<<='./Delimiter: binary-right-shift assignment '>>='.)Delimiter: floor-divide assignment '//='.!Delimiter: back quote character '`\'.Operator: plus '+'.Operator: minus: '-'.Operator: multiply '*'.Operator: divide '/'.Operator: greater-than '>'.Operator: less-than '<'.Operator: equals '=='.&Operator: greater-than-or-equals '>='.#Operator: less-than-or-equals '<='.Operator: exponential '**'.Operator: binary-or '|'.Operator: binary-xor '^'.Operator: binary-and '&'.!Operator: binary-shift-left '<<'."Operator: binary-shift-right '>>'.Operator: modulus '%'.Operator: floor-divide '//'.Operator: tilde '~'.Operator: not-equals '!='.*Operator: not-equals '<>'. Version 2 only. End of file ^Produce a string from a token containing detailed information. Mainly intended for debugging. 1Test if a token contains its literal source text.YProduce a string from a token which is suitable for printing as Python concrete syntax.  Invisible tokens yield an empty string.u23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~it23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~=>@ABCEFGHIKLNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~?????D?D?D?D?D?DJ?DJ?DM?DM???????????????????????????????????????????????????????????????????????????????????23456789:;<2 3456789:;<=>@ABCEFGHIKLNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~?????D?D?D?D?D?DJ?DJ?DM?DM???????????????????????????????????????????????????????????????????????????????????i(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcSafe+-35Augmented assignment operators.'+=''-=''*=''/=''%=''*=''&=''|=''^=' '<<=''>>=''//=' Operators.'and''or''not''**''<''>''==''>=''<=''!=''<>'. Version 2 only.'in''is''is not''not in''|''^''&''<<''>>''*''+''-''/''//'/'~' (bitwise inversion of its integer argument)'%'Slice compenent.'Yield from a generator (Version 3 only)Yield value of an expression Expressions. Version 2.6  8http://www.python.org/doc/2.6/reference/expressions.html. Version 3.1  8http://www.python.org/doc/3.1/reference/expressions.html. Variable.Literal integer.Long literal integer. Version 2 only.Literal floating point number.Literal imaginary number.Literal boolean.Literal 'None' value.Ellipsis '...'.Literal byte string./Literal strings (to be concatentated together).GUnicode literal strings (to be concatentated together). Version 2 only.Function call. ;Expression yielding a callable object (such as a function).Call arguments.#Subscription, for example 'x [y]'. "Slicing, for example 'w [x:y:z]'. Conditional expresison. ,Expression to evaluate if condition is True.Boolean condition.-Expression to evaluate if condition is False.Binary operator application. Unary operator application.(Anonymous function definition (lambda). Tuple. Can be empty. Generator yield. Optional Yield argument. Generator. List comprehension. List.  Dictionary.  Dictionary comprehension. Version 3 only. "Set. $Set comprehension. Version 3 only. &Starred expression. Version 3 only.(Parenthesised expression.*;String conversion (backquoted expression). Version 2 only. .4Comprehension iterator (either a 'for' or an 'if'). 5Comprehension guard. ;Comprehension 'for' component. FyComprehension. In version 3.x this can be used for lists, sets, dictionaries and generators. data Comprehension e annotLException clause. QException handler. W?Arguments to function calls, class declarations and decorators.XOrdinary argument expression.YArgument expression.[Excess positional argument.\Excess keyword argument.]Keyword argument.^ Keyword name.`Tuple unpack parameter. Version 2 only.aA variable name.d$A (possibly nested) tuple parameter.g@Formal parameter of function definitions and lambda expressions. Version 2.6:  Phttp://www.python.org/doc/2.6/reference/compound_stmts.html#function-definitions >http://www.python.org/doc/2.6/reference/expressions.html#calls Version 3.1:  Phttp://www.python.org/doc/3.1/reference/compound_stmts.html#function-definitions >http://www.python.org/doc/3.1/reference/expressions.html#callshOrdinary named parameter.iParameter name.jOptional annotation.kOptional default value.mVExcess positional parameter (single asterisk before its name in the concrete syntax). nRExcess keyword parameter (double asterisk before its name in the concrete syntax).oEMarker for the end of positional parameters (not a parameter itself).pTuple unpack. Version 2 only.qThe tuple to unpack.s Decorator.uDecorator name.vDecorator arguments.yThe argument for a raise statement.z=Optional expression to evaluate, and optional 'from' clause. Version 3 only.{Version 2 only.} Statements.Simple statements: Version 2.6 9http://www.python.org/doc/2.6/reference/simple_stmts.html Version 3.1 9http://www.python.org/doc/3.1/reference/simple_stmts.htmlCompound statements: Version 2.6 ;http://www.python.org/doc/2.6/reference/compound_stmts.html Version 3.1 ;http://www.python.org/doc/3.1/reference/compound_stmts.html~Import statement.Items to import.From ... import statement.Module to import from.Items to import. While loop. Loop condition. Loop body. Else clause. For loop. Loop variables.Loop generator.  Loop body Else clause.Function definition. Function name.Function parameter list.Optional result annotation.Function body.Class definition.  Class name.;Class argument list. In version 2.x this is only ArgExprs.  Class body.&Conditional statement (if-elif-else). (Sequence of if-elif conditional clauses.)Possibly empty unconditional else clause.Assignment statement. Entity to assign to. Expression to evaluate. Augmented assignment statement. Entity to assign to.'Assignment operator (for example '+=').Expression to evaluate.,Decorated definition of a function or class. Decorators.-Function or class definition to be decorated.QReturn statement (may only occur syntactically nested in a function definition). 5Optional expression to evaluate and return to caller.$Try statement (exception handling).  Try clause.Exception handlers.]Possibly empty else clause, executed if and when control flows off the end of the try clause.Possibly empty finally clause.&Raise statement (exception throwing). %With statement (context management). 1Context expression(s) (yields a context manager).Suite to be managed.!Pass statement (null operation). Break statement (may only occur syntactically nested in a for or while loop, but not nested in a function or class definition within that loop). Continue statement (may only occur syntactically nested in a for or while loop, but not nested in a function or class definition or finally clause within that loop). Del statement (delete). Items to delete.Expression statement. Global declaration. /Variables declared global in the current block.Nonlocal declaration. Version 3.x only. nVariables declared nonlocal in the current block (their binding comes from bound the nearest enclosing scope). Assertion. Expressions being asserted.Print statement. Version 2 only. Optional chevron (>>)Arguments to printDoes it end in a comma?Exec statement. Version 2 only. Expression to exec.@Global and local environments to evaluate the expression within.OA reference to the module to import from using the 'from ... import' construct.5Items imported using the 'from ... import' construct.+Import everything exported from the module.0Import a specific list of items from the module.9An entity imported using the 'from ... import' construct. Version 2.6 Nhttp://www.python.org/doc/2.6/reference/simple_stmts.html#the-import-statement Version 3.1 Nhttp://www.python.org/doc/3.1/reference/simple_stmts.html#the-import-statement!The name of the entity imported. 8An optional name to refer to the entity (the 'as' name)..An entity imported using the 'import' keyword. Version 2.6 Nhttp://www.python.org/doc/2.6/reference/simple_stmts.html#the-import-statement Version 3.1  Nhttp://www.python.org/doc/3.1/reference/simple_stmts.html#the-import-statement The name of module to import.9An optional name to refer to the entity (the 'as' name). 2A compound name constructed with the dot operator.sA block of statements. A suite is a group of statements controlled by a clause, for example, the body of a loop.  Version 2.6 ;http://www.python.org/doc/2.6/reference/compound_stmts.html Version 3.1 ;http://www.python.org/doc/3.1/reference/compound_stmts.htmlA module (Python source file).  Version 2.6 @http://www.python.org/doc/2.6/reference/toplevel_components.html Version 3.1  @http://www.python.org/doc/3.1/reference/toplevel_components.html 4A module is just a sequence of top-level statements. Identifier.5Convenient access to annotations in annotated types. :Given an annotated type, project out its annotation value.n      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~jklmnopqrstuvwxyz{|}~C      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~}~|ghmnopijklijlijllqklf`adbcec_stuvwr  "$&(*     !#%')+,WX[\]YZYZYZ^YZVQRSTUPLMNOKyz{xFGHIJEBCDA;<=>?@:567894./20131-b6 i  "$&(*     !#%')+,-./20131456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW X[\]YZYZYZ^YZ_`adbcecfghmnopijklijlijllqklrstuvwxyz{|}\~jklmnopqrstuvwxyz{|}~(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcSafe%%(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcSafe(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcSafeiAn error from the parser. Token found where it should not be. Note: tokens contain their own source span.@An error from the lexer. Character found where it should not be.@A generic error containing a string message. No source location.(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcSafe (c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcSafe)     +     +            (c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcSafe1/!  (c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcSafe%     %     #     (c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcNone<x !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~'()m !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ (c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcNoneAParse a string into a list of Python Tokens, or return an error. Try to lex the first token in an input string. Return either a parse error or a pair containing the next token and the rest of the input after the token.Lex a sequence of tokens.'The input stream (python source code). 9The name of the python source (filename or input device).An error or a list of tokens.&The input stream (python source code).9The name of the python source (filename or input device).FAn error or the next token and the rest of the input after the token. (c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcNone! *+-./0345679:;<=>@CDEGHIKLN      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F / 0 1      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F   (c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcNoneSParse a whole Python source file. Return comments in addition to the parsed module.Parse one compound statement, or a sequence of simple statements. Generally used for interactive input, such as from the command line of an interpreter. Return comments in addition to the parsed statements.|Parse an expression. Generally used as input for the 'eval' primitive. Return comments in addition to the parsed expression..The input stream (python module source code). :The name of the python source (filename or input device). SAn error or the abstract syntax tree (AST) of the python module and comment tokens.1The input stream (python statement source code). :The name of the python source (filename or input device). bAn error or maybe the abstract syntax tree (AST) of zero or more python statements, plus comments.1The input stream (python statement source code). :The name of the python source (filename or input device). _An error or maybe the abstract syntax tree (AST) of the python expression, plus comment tokens.(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcNone(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcNone< G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~   [ \ ]v G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  (c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcNoneAParse a string into a list of Python Tokens, or return an error. Try to lex the first token in an input string. Return either a parse error or a pair containing the next token and the rest of the input after the token.'The input stream (python source code). 9The name of the python source (filename or input device).An error or a list of tokens.&The input stream (python source code).9The name of the python source (filename or input device).FAn error or the next token and the rest of the input after the token.  (c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcNone! *+-./0345679:;<=>@CDEGHIKLN                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                               ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~   (c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcNoneSParse a whole Python source file. Return comments in addition to the parsed module. Parse one compound statement, or a sequence of simple statements. Generally used for interactive input, such as from the command line of an interpreter. Return comments in addition to the parsed statements.!|Parse an expression. Generally used as input for the 'eval' primitive. Return comments in addition to the parsed expression..The input stream (python module source code). :The name of the python source (filename or input device). SAn error or the abstract syntax tree (AST) of the python module and comment tokens. 1The input stream (python statement source code). :The name of the python source (filename or input device). bAn error or maybe the abstract syntax tree (AST) of zero or more python statements, plus comments.!1The input stream (python statement source code). :The name of the python source (filename or input device). _An error or maybe the abstract syntax tree (AST) of the python expression, plus comment tokens. ! ! !(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcNone !(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcSafe $%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQ#RSTUVWXYZ[\]^_  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLLMNOPQQRSTUVWWXYZZ[\]^__`abccdefghijklmnopqrstquvwxyz{|}~                                           ! " # $   " # $%&'(&')&'*&'+&',&'-&'.&'/&'0&'1&'2&'3&'4&'5&'6&'7&'8&'9&':&';&'<&'=&'>&'?&'@&'A&'B&'C&'D&'E&'F&'G&'H&'I&'J&'K&'L&'M&'N&'O&'P&'Q&'R&'S&'T&'U&'V&'W&'X&'Y&'Z&'[&'\&']&'^&'^&'_&'`&'a&'b&'cdefghijklmnopqrstuvwxyz{|}~        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ F G H I J K L M N !      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ O P Q R S T U V W X      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                  ! " # $ % & Y Z [ \ ] ^ _ ` a b c d ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E elangu_51W0palSnJlElHNAA0MSZn#Language.Python.Common.StringEscapeLanguage.Python.Common.Pretty"Language.Python.Common.SrcLocationLanguage.Python.Common.TokenLanguage.Python.Common.AST"Language.Python.Common.PrettyToken!Language.Python.Common.ParseError'Language.Python.Common.PrettyParseError"Language.Python.Common.ParserMonadLanguage.Python.Version3.LexerLanguage.Python.Version3.ParserLanguage.Python.Version2.LexerLanguage.Python.Version2.Parser Language.Python.Common.PrettyAST"Language.Python.Common.ParserUtils!Language.Python.Common.LexerUtils%Language.Python.Version3.Parser.Lexer&Language.Python.Version3.Parser.ParserLanguage.Python.Version3%Language.Python.Version2.Parser.Lexer&Language.Python.Version2.Parser.ParserLanguage.Python.Version2Language.Python.CommonunescapeStringunescapeRawString octalDigits hexDigitsPrettypretty prettyText prettyPrefixparensIfperhaps commaList $fPrettyMaybe $fPrettyBool$fPrettyDouble$fPrettyInteger $fPrettyInt $fPretty[]SrcSpan SpanCoLinear span_filenamespan_rowspan_start_columnspan_end_column SpanMultiLinespan_start_row span_end_row SpanPoint span_column SpanEmptySpangetSpan SrcLocationSloc sloc_filenamesloc_row sloc_column NoLocationspanninginitialSrcLocation decColumn incColumnincTabincLinespanStartPoint mkSrcSpancombineSrcSpansstartRowendRowstartColendCol TokenClassCommentNumber Identifier PunctuationBracketLayoutKeywordStringOperator AssignmentToken IndentToken token_span DedentToken NewlineToken LineJoinToken CommentToken token_literalIdentifierToken StringTokenByteStringTokenUnicodeStringToken IntegerToken token_integerLongIntegerToken FloatToken token_doubleImaginaryTokenDefToken WhileTokenIfToken TrueToken FalseToken ReturnTokenTryToken ExceptToken RaiseTokenInTokenIsToken LambdaToken ClassToken FinallyToken NoneTokenForToken FromToken GlobalToken WithTokenAsToken ElifToken YieldToken AssertToken ImportToken PassToken BreakToken ContinueToken DeleteToken ElseTokenNotTokenAndTokenOrToken NonLocalToken PrintToken ExecTokenAtTokenLeftRoundBracketTokenRightRoundBracketTokenLeftSquareBracketTokenRightSquareBracketTokenLeftBraceTokenRightBraceTokenDotToken CommaTokenSemiColonToken ColonToken EllipsisTokenRightArrowToken AssignTokenPlusAssignTokenMinusAssignTokenMultAssignTokenDivAssignTokenModAssignTokenPowAssignTokenBinAndAssignTokenBinOrAssignTokenBinXorAssignTokenLeftShiftAssignTokenRightShiftAssignTokenFloorDivAssignTokenBackQuoteToken PlusToken MinusToken MultTokenDivTokenGreaterThanToken LessThanToken EqualityTokenGreaterThanEqualsTokenLessThanEqualsToken ExponentToken BinaryOrTokenXorTokenBinaryAndTokenShiftLeftTokenShiftRightToken ModuloToken FloorDivToken TildeTokenNotEqualsTokenNotEqualsV2TokenEOFTokendebugTokenString hasLiteral classifyToken tokenString AssignOpSpanAssignOp PlusAssignassignOp_annot MinusAssign MultAssign DivAssign ModAssign PowAssign BinAndAssign BinOrAssign BinXorAssignLeftShiftAssignRightShiftAssignFloorDivAssignOpSpanOpAndop_annotOrNotExponentLessThan GreaterThanEqualityGreaterThanEqualsLessThanEquals NotEquals NotEqualsV2InIsIsNotNotInBinaryOrXor BinaryAnd ShiftLeft ShiftRightMultiplyPlusMinusDivide FloorDivideInvertModulo SliceSpanSlice SliceProper slice_lower slice_upper slice_stride slice_annot SliceExpr slice_expr SliceEllipsisDictMappingPairSpanDictMappingPair YieldArgSpanYieldArg YieldFrom YieldExprExprSpanExprVar var_ident expr_annotInt int_value expr_literalLongIntFloat float_value Imaginaryimaginary_valueBool bool_valueNoneEllipsis ByteStringsbyte_string_stringsStringsstrings_stringsUnicodeStringsunicodestrings_stringsCallcall_fun call_args Subscript subscripteesubscript_expr SlicedExprsliceeslicesCondExprce_true_branch ce_conditionce_false_branchBinaryOpoperator left_op_arg right_op_argUnaryOpop_argDotdot_expr dot_attributeLambda lambda_args lambda_bodyTuple tuple_exprsYield yield_arg Generatorgen_comprehensionListComplist_comprehensionList list_exprs Dictionary dict_mappingsDictCompdict_comprehensionSet set_exprsSetCompset_comprehensionStarred starred_exprParen paren_exprStringConversionbackquoted_expr expr_anot CompIterSpanCompIterIterFor comp_iter_forcomp_iter_annotIterIf comp_iter_if CompIfSpanCompIfcomp_if comp_if_iter comp_if_annot CompForSpanCompForcomp_for_exprs comp_in_expr comp_for_itercomp_for_annotComprehensionExprSpanComprehensionExprComprehensionDictComprehensionSpan Comprehensioncomprehension_exprcomprehension_forcomprehension_annotExceptClauseSpan ExceptClause except_clauseexcept_clause_annot HandlerSpanHandlerhandler_clause handler_suite handler_annot ArgumentSpanArgumentArgExprarg_expr arg_annot ArgVarArgsPosArgVarArgsKeyword ArgKeyword arg_keywordParamTupleSpan ParamTupleParamTupleNameparam_tuple_nameparam_tuple_annot param_tuple ParameterSpan ParameterParam param_nameparam_py_annotation param_default param_annot VarArgsPosVarArgsKeyword EndPositional UnPackTupleparam_unpack_tuple DecoratorSpan Decoratordecorator_namedecorator_argsdecorator_annot RaiseExprSpan RaiseExprRaiseV3RaiseV2 StatementSpan StatementImport import_items stmt_annot FromImport from_module from_itemsWhile while_cond while_body while_elseFor for_targets for_generatorfor_bodyfor_elseFunfun_namefun_argsfun_result_annotationfun_bodyClass class_name class_args class_body Conditional cond_guards cond_elseAssign assign_to assign_exprAugmentedAssign aug_assign_to aug_assign_opaug_assign_expr Decorateddecorated_decorators decorated_defReturn return_exprTrytry_body try_exceptstry_else try_finallyRaise raise_exprWith with_context with_bodyPassBreakContinueDelete del_exprsStmtExpr stmt_exprGlobal global_varsNonLocal nonLocal_varsAssert assert_exprsPrint print_chevron print_exprsprint_trailing_commaExec exec_exprexec_globals_localsImportRelativeSpanImportRelativeimport_relative_dotsimport_relative_moduleimport_relative_annot FromItemsSpan FromItemsImportEverythingfrom_items_annotfrom_items_items FromItemSpanFromItemfrom_item_name from_as_namefrom_item_annotImportItemSpan ImportItemimport_item_nameimport_as_nameimport_item_annotDottedNameSpan DottedName SuiteSpanSuite ModuleSpanModule IdentSpanIdent ident_string ident_annot Annotatedannot $fPrettyToken ParseErrorUnexpectedTokenUnexpectedCharStrError$fPrettyParseErrorP ParseStatelocationinput previousTokenstartCodeStack indentStack parenStacklastEOLcomments spanError initialState execParserexecParserKeepComments runParserreturnPthenP setLastEOL getLastEOL setLocation getLocationgetInputsetInput getLastToken setLastToken pushStartCode popStartCode getStartCode pushIndent popIndent getIndentgetIndentStackDepth pushParenpopParengetParengetParenStackDepth addComment getComments initLexStatelex lexOneTokenlexer parseModule parseStmt parseExprunescapeNumericprett_7UQTOB05U7lIYPkFOVraeRText.PrettyPrint.HughesPJDoc fullRender renderStylerenderstylefsepfcatcatsep<+><>$+$$$ punctuatehangnestvcathsephcatbracesbracketsparens doubleQuotesquotesrationaldoublefloatintegerintrbracelbracerbracklbrackrparenlparenequalsspacecoloncommasemiisEmptyempty zeroWidthText sizedTextptexttextcharPStrStrChr TextDetailsribbonsPerLine lineLengthmodeStyle OneLineModeLeftMode ZigZagModePageModeModeprettyMultiSpan$fSpanSrcLocation$fPrettySrcSpan $fSpanSrcSpan $fSpan(,) $fSpanEither $fSpanMaybe$fSpan[]$fPrettySrcLocation $fSpanToken$fAnnotatedAssignOp$fSpanAssignOp $fAnnotatedOp$fSpanOp$fAnnotatedSlice $fSpanSlice$fSpanDictMappingPair$fAnnotatedExpr$fSpanYieldArg $fSpanExpr$fAnnotatedCompIter$fSpanCompIter$fAnnotatedCompIf $fSpanCompIf$fAnnotatedCompFor $fSpanCompFor$fSpanComprehensionExpr$fAnnotatedComprehension$fSpanComprehension$fAnnotatedExceptClause$fSpanExceptClause$fAnnotatedHandler $fSpanHandler$fAnnotatedArgument$fSpanArgument$fAnnotatedParamTuple$fSpanParamTuple$fAnnotatedParameter$fSpanParameter$fAnnotatedDecorator$fSpanDecorator$fAnnotatedStatement$fSpanStatement$fAnnotatedImportRelative$fSpanImportRelative$fAnnotatedFromItems$fSpanFromItems$fAnnotatedFromItem$fSpanFromItem$fAnnotatedImportItem$fSpanImportItem$fAnnotatedIdent $fSpanIdentdotindent blankLine prettyStringprettyDottedName prettySuiteoptionalKeywordSuiteprettyParenListprettyOptionalList prettyGuardsprettyWithContextprettyHandlers$fPrettyAssignOp $fPrettyOp $fPrettySlice$fPrettyDictMappingPair$fPrettyYieldArg $fPrettyExpr$fPrettyCompIter$fPrettyCompIf$fPrettyCompFor$fPrettyComprehensionExpr$fPrettyComprehension$fPrettyArgument$fPrettyParamTuple$fPrettyParameter$fPrettyDecorator$fPrettyRaiseExpr$fPrettyExceptClause$fPrettyHandler$fPrettyStatement$fPrettyImportRelative$fPrettyFromItems$fPrettyFromItem$fPrettyImportItem $fPrettyIdent$fPrettyModule$fErrorParseError internalError initToken SubscriptExpr subscriptionsubscript_spanSubscriptSlicesubscript_slice_span1subscript_slice_span2subscript_slice_span3SubscriptSliceEllipsisTrailer TrailerCalltrailer_call_args trailer_spanTrailerSubscript trailer_subs TrailerDottrailer_dot_identdot_spanmakeConditionalExpr makeBinOp parseError isProperSlicesubscriptToSlicesubscriptToExprsubscriptsToExpr addTrailermakeTupleOrExprmakeAssignmentOrExprmakeTry makeParam makeStarParammakeStarStarParammakeTupleParammakeComprehension makeListFormmakeSetmakeDictionary fromEither makeDecorator makeDecoratedmakeFun makeReturnmakeParenOrGenerator makePrint makeRelativecheckArgumentscheckParameters$fSpanSubscript $fSpanTrailer AlexInputAction StartCodeBOBOFBOLBytelineJoin endOfLine bolEndOfLine dedentation indentation symbolTokentokenendOfFileToken dedentToken newlineToken atEOLorEOFnotEOF readBinary readFloat readFloatRestmkString stringTokenrawStringTokenbyteStringTokenunicodeStringTokenrawByteStringToken openParen closeParen matchParenalexInputPrevChar alexGetChar alexGetBytemoveChar lexicalError readOctNoOAlexAcc AlexAccNone AlexAccSkip AlexLastAccAlexNone AlexLastSkip AlexReturnAlexEOF AlexErrorAlexSkip AlexTokenAlexAddrAlexA# alex_base alex_table alex_check alex_deflt alex_acceptinitStartCodeStacklexTokenlexContkeywordOrIdentkeywords keywordNamesbofboldedent alex_action_0 alex_action_2 alex_action_3 alex_action_4 alex_action_5 alex_action_6 alex_action_7 alex_action_8 alex_action_9alex_action_10alex_action_11alex_action_12alex_action_13alex_action_14alex_action_15alex_action_16alex_action_17alex_action_18alex_action_19alex_action_20alex_action_21alex_action_22alex_action_23alex_action_24alex_action_25alex_action_26alex_action_27alex_action_28alex_action_29alex_action_30alex_action_31alex_action_32alex_action_33alex_action_34alex_action_35alex_action_36alex_action_37alex_action_38alex_action_39alex_action_40alex_action_41alex_action_42alex_action_43alex_action_44alex_action_45alex_action_46alex_action_47alex_action_48alex_action_49alex_action_50alex_action_51alex_action_52alex_action_53alex_action_54alex_action_55alex_action_56alex_action_57alex_action_58alex_action_59alex_action_60alex_action_61alex_action_62alex_action_63alex_action_64alex_action_65alex_action_66alex_action_67alex_action_68alex_action_69alex_action_70alex_action_71alex_action_72alex_action_73alex_action_74alex_action_75alex_action_76alex_action_77alex_action_78alex_action_79alex_action_80alex_action_81alex_action_82alex_action_83alexIndexInt16OffAddralexIndexInt32OffAddr quickIndexalexScan alexScanUser alex_scan_tkniUnbox$fFunctorAlexLastAcc HappyAddrHappyA#HappyStk Happy_IntList HappyConsHappyAny HappyAbsSynhappyIn6 happyOut6happyIn7 happyOut7happyIn8 happyOut8happyIn9 happyOut9 happyIn10 happyOut10 happyIn11 happyOut11 happyIn12 happyOut12 happyIn13 happyOut13 happyIn14 happyOut14 happyIn15 happyOut15 happyIn16 happyOut16 happyIn17 happyOut17 happyIn18 happyOut18 happyIn19 happyOut19 happyIn20 happyOut20 happyIn21 happyOut21 happyIn22 happyOut22 happyIn23 happyOut23 happyIn24 happyOut24 happyIn25 happyOut25 happyIn26 happyOut26 happyIn27 happyOut27 happyIn28 happyOut28 happyIn29 happyOut29 happyIn30 happyOut30 happyIn31 happyOut31 happyIn32 happyOut32 happyIn33 happyOut33 happyIn34 happyOut34 happyIn35 happyOut35 happyIn36 happyOut36 happyIn37 happyOut37 happyIn38 happyOut38 happyIn39 happyOut39 happyIn40 happyOut40 happyIn41 happyOut41 happyIn42 happyOut42 happyIn43 happyOut43 happyIn44 happyOut44 happyIn45 happyOut45 happyIn46 happyOut46 happyIn47 happyOut47 happyIn48 happyOut48 happyIn49 happyOut49 happyIn50 happyOut50 happyIn51 happyOut51 happyIn52 happyOut52 happyIn53 happyOut53 happyIn54 happyOut54 happyIn55 happyOut55 happyIn56 happyOut56 happyIn57 happyOut57 happyIn58 happyOut58 happyIn59 happyOut59 happyIn60 happyOut60 happyIn61 happyOut61 happyIn62 happyOut62 happyIn63 happyOut63 happyIn64 happyOut64 happyIn65 happyOut65 happyIn66 happyOut66 happyIn67 happyOut67 happyIn68 happyOut68 happyIn69 happyOut69 happyIn70 happyOut70 happyIn71 happyOut71 happyIn72 happyOut72 happyIn73 happyOut73 happyIn74 happyOut74 happyIn75 happyOut75 happyIn76 happyOut76 happyIn77 happyOut77 happyIn78 happyOut78 happyIn79 happyOut79 happyIn80 happyOut80 happyIn81 happyOut81 happyIn82 happyOut82 happyIn83 happyOut83 happyIn84 happyOut84 happyIn85 happyOut85 happyIn86 happyOut86 happyIn87 happyOut87 happyIn88 happyOut88 happyIn89 happyOut89 happyIn90 happyOut90 happyIn91 happyOut91 happyIn92 happyOut92 happyIn93 happyOut93 happyIn94 happyOut94 happyIn95 happyOut95 happyIn96 happyOut96 happyIn97 happyOut97 happyIn98 happyOut98 happyIn99 happyOut99 happyIn100 happyOut100 happyIn101 happyOut101 happyIn102 happyOut102 happyIn103 happyOut103 happyIn104 happyOut104 happyIn105 happyOut105 happyIn106 happyOut106 happyIn107 happyOut107 happyIn108 happyOut108 happyIn109 happyOut109 happyIn110 happyOut110 happyIn111 happyOut111 happyIn112 happyOut112 happyIn113 happyOut113 happyIn114 happyOut114 happyIn115 happyOut115 happyIn116 happyOut116 happyIn117 happyOut117 happyIn118 happyOut118 happyIn119 happyOut119 happyIn120 happyOut120 happyIn121 happyOut121 happyIn122 happyOut122 happyIn123 happyOut123 happyIn124 happyOut124 happyIn125 happyOut125 happyIn126 happyOut126 happyIn127 happyOut127 happyIn128 happyOut128 happyIn129 happyOut129 happyIn130 happyOut130 happyIn131 happyOut131 happyIn132 happyOut132 happyIn133 happyOut133 happyIn134 happyOut134 happyIn135 happyOut135 happyIn136 happyOut136 happyIn137 happyOut137 happyIn138 happyOut138 happyIn139 happyOut139 happyIn140 happyOut140 happyIn141 happyOut141 happyIn142 happyOut142 happyIn143 happyOut143 happyIn144 happyOut144 happyIn145 happyOut145 happyIn146 happyOut146 happyIn147 happyOut147 happyIn148 happyOut148 happyIn149 happyOut149 happyIn150 happyOut150 happyIn151 happyOut151 happyIn152 happyOut152 happyIn153 happyOut153 happyIn154 happyOut154 happyIn155 happyOut155 happyIn156 happyOut156 happyIn157 happyOut157 happyIn158 happyOut158 happyIn159 happyOut159 happyIn160 happyOut160 happyIn161 happyOut161 happyIn162 happyOut162 happyIn163 happyOut163 happyIn164 happyOut164 happyIn165 happyOut165 happyIn166 happyOut166 happyIn167 happyOut167 happyIn168 happyOut168 happyIn169 happyOut169 happyIn170 happyOut170 happyIn171 happyOut171 happyIn172 happyOut172 happyIn173 happyOut173 happyIn174 happyOut174 happyIn175 happyOut175 happyIn176 happyOut176 happyIn177 happyOut177 happyIn178 happyOut178 happyIn179 happyOut179 happyIn180 happyOut180 happyIn181 happyOut181 happyIn182 happyOut182 happyIn183 happyOut183 happyIn184 happyOut184 happyIn185 happyOut185 happyIn186 happyOut186 happyIn187 happyOut187 happyIn188 happyOut188 happyIn189 happyOut189 happyIn190 happyOut190 happyIn191 happyOut191 happyIn192 happyOut192 happyIn193 happyOut193 happyIn194 happyOut194 happyIn195 happyOut195 happyIn196 happyOut196 happyIn197 happyOut197 happyIn198 happyOut198 happyIn199 happyOut199 happyIn200 happyOut200 happyIn201 happyOut201 happyIn202 happyOut202 happyIn203 happyOut203 happyIn204 happyOut204 happyIn205 happyOut205 happyIn206 happyOut206 happyIn207 happyOut207 happyIn208 happyOut208 happyIn209 happyOut209 happyIn210 happyOut210 happyIn211 happyOut211 happyIn212 happyOut212 happyIn213 happyOut213 happyIn214 happyOut214 happyIn215 happyOut215 happyIn216 happyOut216 happyIn217 happyOut217 happyIn218 happyOut218 happyIn219 happyOut219 happyIn220 happyOut220 happyIn221 happyOut221 happyIn222 happyOut222 happyIn223 happyOut223 happyIn224 happyOut224 happyIn225 happyOut225 happyIn226 happyOut226 happyIn227 happyOut227 happyIn228 happyOut228 happyIn229 happyOut229 happyIn230 happyOut230 happyIn231 happyOut231 happyIn232 happyOut232 happyIn233 happyOut233 happyIn234 happyOut234 happyIn235 happyOut235 happyIn236 happyOut236 happyIn237 happyOut237 happyIn238 happyOut238 happyIn239 happyOut239 happyIn240 happyOut240 happyIn241 happyOut241 happyIn242 happyOut242 happyIn243 happyOut243 happyIn244 happyOut244 happyIn245 happyOut245 happyIn246 happyOut246 happyIn247 happyOut247 happyIn248 happyOut248 happyIn249 happyOut249 happyIn250 happyOut250 happyIn251 happyOut251 happyIn252 happyOut252 happyIn253 happyOut253 happyIn254 happyOut254 happyIn255 happyOut255 happyIn256 happyOut256 happyIn257 happyOut257 happyIn258 happyOut258 happyIn259 happyOut259 happyIn260 happyOut260 happyIn261 happyOut261 happyIn262 happyOut262 happyIn263 happyOut263 happyIn264 happyOut264 happyIn265 happyOut265 happyIn266 happyOut266 happyIn267 happyOut267 happyInTok happyOutTokhappyActOffsetshappyGotoOffsetshappyDefActions happyCheck happyTablehappyReduceArr happy_n_termshappy_n_nonterms happyReduce_3happyReduction_3 happyReduce_4happyReduction_4 happyReduce_5happyReduction_5 happyReduce_6happyReduction_6 happyReduce_7happyReduction_7 happyReduce_8happyReduction_8 happyReduce_9happyReduction_9happyReduce_10happyReduction_10happyReduce_11happyReduction_11happyReduce_12happyReduction_12happyReduce_13happyReduction_13happyReduce_14happyReduction_14happyReduce_15happyReduction_15happyReduce_16happyReduction_16happyReduce_17happyReduction_17happyReduce_18happyReduction_18happyReduce_19happyReduction_19happyReduce_20happyReduction_20happyReduce_21happyReduction_21happyReduce_22happyReduction_22happyReduce_23happyReduction_23happyReduce_24happyReduction_24happyReduce_25happyReduction_25happyReduce_26happyReduction_26happyReduce_27happyReduction_27happyReduce_28happyReduction_28happyReduce_29happyReduction_29happyReduce_30happyReduction_30happyReduce_31happyReduction_31happyReduce_32happyReduction_32happyReduce_33happyReduction_33happyReduce_34happyReduction_34happyReduce_35happyReduction_35happyReduce_36happyReduction_36happyReduce_37happyReduction_37happyReduce_38happyReduction_38happyReduce_39happyReduction_39happyReduce_40happyReduction_40happyReduce_41happyReduction_41happyReduce_42happyReduction_42happyReduce_43happyReduction_43happyReduce_44happyReduction_44happyReduce_45happyReduction_45happyReduce_46happyReduction_46happyReduce_47happyReduction_47happyReduce_48happyReduction_48happyReduce_49happyReduction_49happyReduce_50happyReduction_50happyReduce_51happyReduction_51happyReduce_52happyReduction_52happyReduce_53happyReduction_53happyReduce_54happyReduction_54happyReduce_55happyReduction_55happyReduce_56happyReduction_56happyReduce_57happyReduction_57happyReduce_58happyReduction_58happyReduce_59happyReduction_59happyReduce_60happyReduction_60happyReduce_61happyReduction_61happyReduce_62happyReduction_62happyReduce_63happyReduction_63happyReduce_64happyReduction_64happyReduce_65happyReduction_65happyReduce_66happyReduction_66happyReduce_67happyReduction_67happyReduce_68happyReduction_68happyReduce_69happyReduction_69happyReduce_70happyReduction_70happyReduce_71happyReduction_71happyReduce_72happyReduction_72happyReduce_73happyReduction_73happyReduce_74happyReduction_74happyReduce_75happyReduction_75happyReduce_76happyReduction_76happyReduce_77happyReduction_77happyReduce_78happyReduction_78happyReduce_79happyReduction_79happyReduce_80happyReduction_80happyReduce_81happyReduction_81happyReduce_82happyReduction_82happyReduce_83happyReduction_83happyReduce_84happyReduction_84happyReduce_85happyReduction_85happyReduce_86happyReduction_86happyReduce_87happyReduction_87happyReduce_88happyReduction_88happyReduce_89happyReduction_89happyReduce_90happyReduction_90happyReduce_91happyReduction_91happyReduce_92happyReduction_92happyReduce_93happyReduction_93happyReduce_94happyReduction_94happyReduce_95happyReduction_95happyReduce_96happyReduction_96happyReduce_97happyReduction_97happyReduce_98happyReduction_98happyReduce_99happyReduction_99happyReduce_100happyReduction_100happyReduce_101happyReduction_101happyReduce_102happyReduction_102happyReduce_103happyReduction_103happyReduce_104happyReduction_104happyReduce_105happyReduction_105happyReduce_106happyReduction_106happyReduce_107happyReduction_107happyReduce_108happyReduction_108happyReduce_109happyReduction_109happyReduce_110happyReduction_110happyReduce_111happyReduction_111happyReduce_112happyReduction_112happyReduce_113happyReduction_113happyReduce_114happyReduction_114happyReduce_115happyReduction_115happyReduce_116happyReduction_116happyReduce_117happyReduction_117happyReduce_118happyReduction_118happyReduce_119happyReduction_119happyReduce_120happyReduction_120happyReduce_121happyReduction_121happyReduce_122happyReduction_122happyReduce_123happyReduction_123happyReduce_124happyReduction_124happyReduce_125happyReduction_125happyReduce_126happyReduction_126happyReduce_127happyReduction_127happyReduce_128happyReduction_128happyReduce_129happyReduction_129happyReduce_130happyReduction_130happyReduce_131happyReduction_131happyReduce_132happyReduction_132happyReduce_133happyReduction_133happyReduce_134happyReduction_134happyReduce_135happyReduction_135happyReduce_136happyReduction_136happyReduce_137happyReduction_137happyReduce_138happyReduction_138happyReduce_139happyReduction_139happyReduce_140happyReduction_140happyReduce_141happyReduction_141happyReduce_142happyReduction_142happyReduce_143happyReduction_143happyReduce_144happyReduction_144happyReduce_145happyReduction_145happyReduce_146happyReduction_146happyReduce_147happyReduction_147happyReduce_148happyReduction_148happyReduce_149happyReduction_149happyReduce_150happyReduction_150happyReduce_151happyReduction_151happyReduce_152happyReduction_152happyReduce_153happyReduction_153happyReduce_154happyReduction_154happyReduce_155happyReduction_155happyReduce_156happyReduction_156happyReduce_157happyReduction_157happyReduce_158happyReduction_158happyReduce_159happyReduction_159happyReduce_160happyReduction_160happyReduce_161happyReduction_161happyReduce_162happyReduction_162happyReduce_163happyReduction_163happyReduce_164happyReduction_164happyReduce_165happyReduction_165happyReduce_166happyReduction_166happyReduce_167happyReduction_167happyReduce_168happyReduction_168happyReduce_169happyReduction_169happyReduce_170happyReduction_170happyReduce_171happyReduction_171happyReduce_172happyReduction_172happyReduce_173happyReduction_173happyReduce_174happyReduction_174happyReduce_175happyReduction_175happyReduce_176happyReduction_176happyReduce_177happyReduction_177happyReduce_178happyReduction_178happyReduce_179happyReduction_179happyReduce_180happyReduction_180happyReduce_181happyReduction_181happyReduce_182happyReduction_182happyReduce_183happyReduction_183happyReduce_184happyReduction_184happyReduce_185happyReduction_185happyReduce_186happyReduction_186happyReduce_187happyReduction_187happyReduce_188happyReduction_188happyReduce_189happyReduction_189happyReduce_190happyReduction_190happyReduce_191happyReduction_191happyReduce_192happyReduction_192happyReduce_193happyReduction_193happyReduce_194happyReduction_194happyReduce_195happyReduction_195happyReduce_196happyReduction_196happyReduce_197happyReduction_197happyReduce_198happyReduction_198happyReduce_199happyReduction_199happyReduce_200happyReduction_200happyReduce_201happyReduction_201happyReduce_202happyReduction_202happyReduce_203happyReduction_203happyReduce_204happyReduction_204happyReduce_205happyReduction_205happyReduce_206happyReduction_206happyReduce_207happyReduction_207happyReduce_208happyReduction_208happyReduce_209happyReduction_209happyReduce_210happyReduction_210happyReduce_211happyReduction_211happyReduce_212happyReduction_212happyReduce_213happyReduction_213happyReduce_214happyReduction_214happyReduce_215happyReduction_215happyReduce_216happyReduction_216happyReduce_217happyReduction_217happyReduce_218happyReduction_218happyReduce_219happyReduction_219happyReduce_220happyReduction_220happyReduce_221happyReduction_221happyReduce_222happyReduction_222happyReduce_223happyReduction_223happyReduce_224happyReduction_224happyReduce_225happyReduction_225happyReduce_226happyReduction_226happyReduce_227happyReduction_227happyReduce_228happyReduction_228happyReduce_229happyReduction_229happyReduce_230happyReduction_230happyReduce_231happyReduction_231happyReduce_232happyReduction_232happyReduce_233happyReduction_233happyReduce_234happyReduction_234happyReduce_235happyReduction_235happyReduce_236happyReduction_236happyReduce_237happyReduction_237happyReduce_238happyReduction_238happyReduce_239happyReduction_239happyReduce_240happyReduction_240happyReduce_241happyReduction_241happyReduce_242happyReduction_242happyReduce_243happyReduction_243happyReduce_244happyReduction_244happyReduce_245happyReduction_245happyReduce_246happyReduction_246happyReduce_247happyReduction_247happyReduce_248happyReduction_248happyReduce_249happyReduction_249happyReduce_250happyReduction_250happyReduce_251happyReduction_251happyReduce_252happyReduction_252happyReduce_253happyReduction_253happyReduce_254happyReduction_254happyReduce_255happyReduction_255happyReduce_256happyReduction_256happyReduce_257happyReduction_257happyReduce_258happyReduction_258happyReduce_259happyReduction_259happyReduce_260happyReduction_260happyReduce_261happyReduction_261happyReduce_262happyReduction_262happyReduce_263happyReduction_263happyReduce_264happyReduction_264happyReduce_265happyReduction_265happyReduce_266happyReduction_266happyReduce_267happyReduction_267happyReduce_268happyReduction_268happyReduce_269happyReduction_269happyReduce_270happyReduction_270happyReduce_271happyReduction_271happyReduce_272happyReduction_272happyReduce_273happyReduction_273happyReduce_274happyReduction_274happyReduce_275happyReduction_275happyReduce_276happyReduction_276happyReduce_277happyReduction_277happyReduce_278happyReduction_278happyReduce_279happyReduction_279happyReduce_280happyReduction_280happyReduce_281happyReduction_281happyReduce_282happyReduction_282happyReduce_283happyReduction_283happyReduce_284happyReduction_284happyReduce_285happyReduction_285happyReduce_286happyReduction_286happyReduce_287happyReduction_287happyReduce_288happyReduction_288happyReduce_289happyReduction_289happyReduce_290happyReduction_290happyReduce_291happyReduction_291happyReduce_292happyReduction_292happyReduce_293happyReduction_293happyReduce_294happyReduction_294happyReduce_295happyReduction_295happyReduce_296happyReduction_296happyReduce_297happyReduction_297happyReduce_298happyReduction_298happyReduce_299happyReduction_299happyReduce_300happyReduction_300happyReduce_301happyReduction_301happyReduce_302happyReduction_302happyReduce_303happyReduction_303happyReduce_304happyReduction_304happyReduce_305happyReduction_305happyReduce_306happyReduction_306happyReduce_307happyReduction_307happyReduce_308happyReduction_308happyReduce_309happyReduction_309happyReduce_310happyReduction_310happyReduce_311happyReduction_311happyReduce_312happyReduction_312happyReduce_313happyReduction_313happyReduce_314happyReduction_314happyReduce_315happyReduction_315happyReduce_316happyReduction_316happyReduce_317happyReduction_317happyReduce_318happyReduction_318happyReduce_319happyReduction_319happyReduce_320happyReduction_320happyReduce_321happyReduction_321happyReduce_322happyReduction_322happyReduce_323happyReduction_323happyReduce_324happyReduction_324happyReduce_325happyReduction_325happyReduce_326happyReduction_326happyReduce_327happyReduction_327happyReduce_328happyReduction_328happyReduce_329happyReduction_329happyReduce_330happyReduction_330happyReduce_331happyReduction_331happyReduce_332happyReduction_332happyReduce_333happyReduction_333happyReduce_334happyReduction_334happyReduce_335happyReduction_335happyReduce_336happyReduction_336happyReduce_337happyReduction_337happyReduce_338happyReduction_338happyReduce_339happyReduction_339happyReduce_340happyReduction_340happyReduce_341happyReduction_341happyReduce_342happyReduction_342happyReduce_343happyReduction_343happyReduce_344happyReduction_344happyReduce_345happyReduction_345happyReduce_346happyReduction_346happyReduce_347happyReduction_347happyReduce_348happyReduction_348happyReduce_349happyReduction_349happyReduce_350happyReduction_350happyReduce_351happyReduction_351happyReduce_352happyReduction_352happyReduce_353happyReduction_353happyReduce_354happyReduction_354happyReduce_355happyReduction_355happyReduce_356happyReduction_356happyReduce_357happyReduction_357happyReduce_358happyReduction_358happyReduce_359happyReduction_359happyReduce_360happyReduction_360happyReduce_361happyReduction_361happyReduce_362happyReduction_362happyReduce_363happyReduction_363happyReduce_364happyReduction_364happyReduce_365happyReduction_365happyReduce_366happyReduction_366happyReduce_367happyReduction_367happyReduce_368happyReduction_368happyReduce_369happyReduction_369happyReduce_370happyReduction_370happyReduce_371happyReduction_371happyReduce_372happyReduction_372happyReduce_373happyReduction_373happyReduce_374happyReduction_374happyReduce_375happyReduction_375happyReduce_376happyReduction_376happyReduce_377happyReduction_377happyReduce_378happyReduction_378happyReduce_379happyReduction_379happyReduce_380happyReduction_380happyReduce_381happyReduction_381happyReduce_382happyReduction_382happyReduce_383happyReduction_383happyReduce_384happyReduction_384happyReduce_385happyReduction_385happyReduce_386happyReduction_386happyReduce_387happyReduction_387happyReduce_388happyReduction_388happyReduce_389happyReduction_389happyReduce_390happyReduction_390happyReduce_391happyReduction_391happyReduce_392happyReduction_392happyReduce_393happyReduction_393happyReduce_394happyReduction_394happyReduce_395happyReduction_395happyReduce_396happyReduction_396happyReduce_397happyReduction_397happyReduce_398happyReduction_398happyReduce_399happyReduction_399happyReduce_400happyReduction_400happyReduce_401happyReduction_401happyReduce_402happyReduction_402happyReduce_403happyReduction_403happyReduce_404happyReduction_404happyReduce_405happyReduction_405happyReduce_406happyReduction_406happyReduce_407happyReduction_407happyReduce_408happyReduction_408happyReduce_409happyReduction_409happyReduce_410happyReduction_410happyReduce_411happyReduction_411happyReduce_412happyReduction_412happyReduce_413happyReduction_413happyReduce_414happyReduction_414happyReduce_415happyReduction_415happyReduce_416happyReduction_416happyReduce_417happyReduction_417happyReduce_418happyReduction_418happyReduce_419happyReduction_419happyReduce_420happyReduction_420happyReduce_421happyReduction_421happyReduce_422happyReduction_422happyReduce_423happyReduction_423happyReduce_424happyReduction_424happyReduce_425happyReduction_425happyReduce_426happyReduction_426happyReduce_427happyReduction_427happyReduce_428happyReduction_428happyReduce_429happyReduction_429happyReduce_430happyReduction_430happyReduce_431happyReduction_431happyReduce_432happyReduction_432happyReduce_433happyReduction_433happyReduce_434happyReduction_434happyReduce_435happyReduction_435happyReduce_436happyReduction_436happyReduce_437happyReduction_437happyReduce_438happyReduction_438happyReduce_439happyReduction_439happyReduce_440happyReduction_440happyReduce_441happyReduction_441happyReduce_442happyReduction_442happyReduce_443happyReduction_443happyReduce_444happyReduction_444happyReduce_445happyReduction_445happyReduce_446happyReduction_446happyReduce_447happyReduction_447happyReduce_448happyReduction_448happyReduce_449happyReduction_449 happyNewToken happyError_ happyThen happyReturn happyThen1 happyReturn1 happyError'parseFileInputparseSingleInput parseEvalhappySeq happyParse happyAccept happyDoActionindexShortOffAddr happyShifthappySpecReduce_0happySpecReduce_1happySpecReduce_2happySpecReduce_3 happyReducehappyMonadReducehappyMonad2Reduce happyDrop happyDropStk happyGoto happyFail notHappyAtAll happyTcHack happyDoSeq happyDontSeqalex_action_84alex_action_85alex_action_86alex_action_87alex_action_88alex_action_89alex_action_90alex_action_91alex_action_92 happyIn268 happyOut268 happyIn269 happyOut269 happyIn270 happyOut270 happyIn271 happyOut271 happyIn272 happyOut272happyReduce_450happyReduction_450happyReduce_451happyReduction_451happyReduce_452happyReduction_452happyReduce_453happyReduction_453happyReduce_454happyReduction_454happyReduce_455happyReduction_455